说明:
在ORACLE 10G 数据库数据迁移到ORACLE 11G RAC环境时,遇到了"ORA-31640: unable to open dump file "的错误.
导入的命令如下:
nohup impdp \'/ as sysdba\' directory=dump_dir dumpfile=ORCLEFULL01.DMP logfile=full.log full=y PARALLEL=3 &
ORA-31693: Table data object "zjhis"."xxxxxx" failed to load/unload and is being skipped due to error:
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-31640: unable to open dump file "/oracle/ORCLEFULL01.DMP" for read
ORA-19505: failed to identify file "/oracle/ORCLEFULL01.DMP"
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
大表才会报这个错,小的表可以顺利地导入进去。
二. 问题分析
2.1 因为报的错误是不可以读dump文件,仔细检查了文件及其目录的访问权限,发现没有任何问题.
2.2 11g R2的IMPDP 增加了一个参数设置:CLUSTER,在设置了parallel>1进行导入的情况下, CLUSTER参数默认为Y,即默认为多个节点同时进行导入工作.
但是这边实际的情况是,另外一个节点无法访问到dump文件,所以需要关闭这个选项.需指定CLUSTER=N
三. 问题解决
修改导入的命令,设置cluster=N,再次进行导入
nohup impdp \'/ as sysdba\' directory=dump_dir dumpfile=ORCLEFULL01.DMP logfile=full.log full=y PARALLEL=3 cluster=N &;
参考MOS:
DataPump Import With PARALLEL > 1 In RAC Environment Fails With Errors ORA-29913 ORA-31640 ORA-19505 ORA-27037 (Doc ID 1173765.1)