Oracle dmp文件导入(还原)到不同的表空间和不同的用户下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle dmp文件导入(还原)到不同的表空间和不同的用户下相关的知识,希望对你有一定的参考价值。

Oracle dmp文件导入(还原)到不同的表空间和不同的用户下


一、exp/imp解决方法:

1、可以用sed修改dmp文件,正常导入

sed -i 's/TEST_TS/USERS/g' a.dmp

2、dmp文件包含导出时候表空间的信息,导入时候如果没有创建相应的表空间会提示表空间不存在
3、如果几个表导出,导入时将错误忽略 ignore=y即可

4、用transport_tablespace参数,transport tablespace将一个表空间下的数据移到另一个表空间

4.1、使用transport_tablespace导出数据
    exp 用户名 transport_tablespace=y tablespaces=(TEST_TS) file=/opt/b.dmp
    exp test1 file=test1.dmp(导出不加transport_tablespace参数也可以的)

4.2、在另外一台服务器上将数据移到test1相同用户下
    imp test1 transport_tablespace=y file=a.dmp datafiles=/u01/app/oracle/
    oradata/gbksl/a01.dbf ignore=y full=y;

4.3、在另外一台服务器上将test1导出dmp文件数据移到test2用户下
    imp test1 transport_tablespace=y file=/opt/test1.dmp fromuser=test1 
    touser=test2 datafiles='/u01/app/oracle/oradata/gbksl/a01.dbf' 
    ignore=y full=y;


二、impdp解决办法:

 使用impdp命令进行导入

impdp test1/test123 dumpfile=XXX.dmp directory=dpdata1 
remap_schema=testl:test2 remap_tablespace=ts_test1_prod:test2_data

  参数说明

  dumpfile:需要导入的dmp文件名称

  directory:dmp文件所在的目录文件夹

  REMAP_SCHEMA: 该选项用于将源方案的所有对象装载到目标方案中。 REMAP_SCHEMA=source_schema:target_schema

  REMAP_TABLESPACE: 将源表空间的所有对象导入到目标表空间中。  REMAP_TABLESPACE=source_tablespace:target:tablespace 

  其中:ts_test1_prod:原先dmp文件的表空间名称

            test2_data:需要导入到的表空间的名称



以上是关于Oracle dmp文件导入(还原)到不同的表空间和不同的用户下的主要内容,如果未能解决你的问题,请参考以下文章

oracle导入dmp是不是表空间要一致?

oracle中怎样把表、表空间导入或导出?

Oracle11g 数据泵导入数据库dmp文件时,表空间和用户名与我的表空间和用户名不一样怎么处理?

Oracle如何备份还原DMP数据库(导入导出DMP)

请问oracle怎么从dmp文件只恢复一张表的数据,恢复到另一个用户中

oracle导入dmp 各种表空间不存在