impdp导入文件失败问题解决(ORA-39001/ORA-39000/ORA-39143)
测试环境
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;