IMP命令如何把对象导入用户的默认表空间

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IMP 命令如何把对象导入用户的默认表空间,而不是对象

(2010-07-14 17:46:29)

转载

分类: OracleDba

标签:

杂谈

1.sqlplus system/sys

2.创建数据库用户

SQL> create user newuser identified by newpass

2 default tablespace newspace

3 temporary tablespace temp

4 /

3.授予权限给用户

SQL> grant connect,resource to newuser;

SQL> grant dba to newuser;

4.移除无限表空间权限

SQL> revoke unlimited tablespace from newuser;

5.取消用户在原表空间的配额

SQL> alter user newuser quota 0 on users;

6.授予用户在默认表空间的无限配额

SQL> alter user newuser quota unlimited on newspace;

7.SQL> exit

8.执行导入

3。使用TOAD

TOAD是强大的Oracle数据库管理软件,是Quest出品的第三方软件,我们可以使用其中的Rebuild Multi Objects工具来实现将多个Object转移到指定的表空间。

于是我们可以不管三七二十一,先IMP,然后再用TOAD作事后的修改。

关于TOAD的使用,此处不作具体说明。

EXP,IMP命令下表空间不同的数据迁移

数据库2010-10-23 00:54:24 阅读32 评论1 字号:大中小订阅

存在两种情况,一是不包含大字段,一是包含大字段

不包含大字段的处理方法:

创建完用户后做如下操作

revoke unlimited tablespace from xxx;

alter user xxx quota unlimited on 目标表空间;

再做IMP导入

包含大字段的处理方法:

以下转自/xiaomi_8266/blog/static/72076427201022911636478/

EXP,IMP命令下表空间不同的数据迁移(含有大字段)

1.导出表

EXP username/password@db_server FILE=c:\exp_filename.dmp LOG=c:\exp_logname.LOG TABLES=( TEST)

2.删除表和表空间

3.采用导出参数indexfile 导入表

IMP username/password@db_server FILE=c:\exp_filename.dmp LOG=c:\imp_indexfile.LOG INDEXFILE=c:\altertablespace_table_index.SQL TABLES=(TEST)

这步的操作并不是要导入表和数据,真正的目的是获取创建表和索引的脚本。其中,指定参数INDEXFILE后,系统就将创建表和索引的语句写到一个文件,即指定的altertablespace_table_index.SQL 中。该文件中包含了所有创建索引(CREATE INDEX)语句和创建表(CREATETABLE)语句。但是这里所有创建表的语句均加了注释标志。在任何文本编辑器中打开并编辑该文件,去掉所有创建表语句的注释标志,将所有的表空间名称由A替换为B,同时对所有的创建索引语句加上注释标志。这些工作作完以后,在SQL/PLUS中运行该脚本文件,这些表就被创建,其表空间由A变为B(此时仅仅只是表结构而没有数据的)。

4.采用导入参数INDEXES=N 和IGNORE=Y 将数据导入表中

IMP username/password@db_server INDEXES=N IGNORE=Y FILE=c:\exp_filename.dmp LOG=c:\imp_tabledata.LOG TABLES=(TEST)

根据情况是否加参数CONSTRAINTS=N

其中,参数INDEXES=N是指将数据导入数据库中时不加索引。IGNORE=Y是指在导入数据过程中,忽略表已经存在(table already exists)的错误。CONSTRAINTS :导入限制(Y)。这样Oralce就将数

据和一些约束条件导入到第3步创建的表中。

5. 创建索引

在文本编辑器中重新打开在第3步中创建的altertablespace_table_index.SQL 脚本文件,这次,将所有创建表(CREATE TABLE)的语句加上注释标志,然后将所有的创建索引(CREATE INDEX)语句去掉注释标志。在SQL/PLUS中再次运行该脚本文件。

这里我们可能在创建索引的过程中会报ORA-00955: 名称已由现有对象使用错误,这是由于虽然我们在上一步中虽然用了INDEXES=N参数,但是主键对应的唯一索引将无条件恢复,这是oracle为了保证数据的完整性。

至此,我们就成功完成了将数据表从表空间A转换到表空间B的工作。

相关文档
最新文档