impdp导入文件失败问题解决(ORA-39001/ORA-39000/ORA-39143)

时间:2024-05-18 19:06:50

测试环境

SuSE11 + ORACLE11gR2

问题现象

执行 impdp导入现场导回的dmp文件,导入失败。错误提示如下

$impdp sysdb/oracle directory=imp_data_dump dumpfile=sysdb.dmp remap_schema=sysdb:sysdb logfile=impdp_sysdb.log
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-39143: dump file "/home/data/sysdb.dmp" may be an original export dump file

问题分析

sysdb.dmp文件是使用exp命令导出的,而使用impdp命令导入时无法识别exp命令导出的文件,需要使用imp命令进行导入

问题解决

执行imp sysdb/oracle file=sysdb.dmp log=imp_sysdb.log grants=no full=y

ps:不带grants=no参数执行报错如下(通常不带这个参数)

IMP-0017:following statement failed with oracle error 1917: "GRANT SELECT ON "REGION" TO "SYSROLE""
IMP-0003:ORACLE error 1917 encountered
ORACLE-0917:user or role 'SYSROLE' does not exist

相关命令

1、创建逻辑目录:create directory expdp_data as '/home/data/expdp_data';

2、查看管理员目录:select * from dba_directories;

参考资料

1、expdp/impdp用法详解