Oracle dmp文件导入(还原)到不同的表空间和不同的用户下
从生产环境拷贝一个dmp备份文件,在另外一台电脑上搭建测试环境,用imp命令导入dmp文件时提示如下错误:
问题描述:
IMP-00038:无法转换为环境字符集句柄
IMP-00000:未成功终止导入
解决方法:
使用impdp命令进行导入。
参考导入命令
impdp onlinecolzs/onlinecozs dumpfile=XXX.dmp directory=dpdata1 remap_schema=onlinecol:onlinecolzs remap_tablespace=ts_onlinecol_prod:zaixianzs_data
参数说明
dumpfile:需要导入的dmp文件名称
directory:dmp文件所在的目录文件夹
REMAP_SCHEMA: 该选项用于将源方案的所有对象装载到目标方案中。 REMAP_SCHEMA=source_schema:target_schema
REMAP_TABLESPACE: 将源表空间的所有对象导入到目标表空间中。 REMAP_TABLESPACE=source_tablespace:target:tablespace
-----------------------------------------
具体步骤:
1、创建表空间和用户。
2、创建目录
create directory dpdata1 as 'D:\tempdmp'
把dmp文件复制到刚才创建的目录文件夹下(D:\tempdmp),这个文件夹需要自己手动创建。
3、执行impdp导入命令:
impdp onlinecolzs/onlinecozs dumpfile=XXX.dmp directory=dpdata1 remap_schema=onlinecol:onlinecolzs remap_tablespace=ts_onlinecol_prod:zaixianzs_data
其中:ts_onlinecol_prod:原先dmp文件的表空间名称,如果不知道原先的表空间名称是什么,先随便写个,到时候导入的时候会提示表空间不存在,把提示不存在的表空间名称写上去就可以。
zaixianzs_data:需要导入到的表空间的名称(第一步创建的表空间名称)