expdp 中cluster=no的参数 导致ORA-31693 ORA-31617 ORA-19505 ORA-27037

                                           cluster=no 的适用场景


这是一个同事的问题,觉得不错,所以贴出来

我也做相类似的操作没有出现报错。不过可能是我的rac环境只开启了一个节点。


expdp 中cluster=no的参数 导致ORA-31693 ORA-31617 ORA-19505 ORA-27037_第1张图片

刚开始一度怀疑是dir_dp的物理目录权限不够

给了775权限

但是还不行

官方文档这样写道

UsingPARALLEL During An Export In An Oracle RAC Environment

In an Oracle Real Application Clusters(Oracle RAC) environment, if an export operation has PARALLEL=1, then all Data Pump processes reside on the instance where the job isstarted. Therefore, the directory object can point to local storage for thatinstance.

If the export operation has PARALLEL set to a value greater than 1, then Data Pump processes can resideon instances other than the one where the job was started. Therefore, the directoryobject must point to shared storage that is accessible by all instances of theOracle RAC.

 

看来是导出文件的目录不是两个节点共享的原因,/backup只在节点1上挂载,节点2上没有。如果/backup在两个节点共享,就不会出现这样的错误。但是现在只能在单实例上操作。查看expdp的help,发现有个参数cluster。这个参数可以控制是否采用多实例导出。设置cluster=n后,即:

expdp test02/test_1 tablespaces=testparallel=4 cluster=n directory=expdp_dirdumpfile=TEST_20140307.dmp logfile=TEST_20140307.log

执行后导出正常。没有报错!


你可能感兴趣的:(expdp 中cluster=no的参数 导致ORA-31693 ORA-31617 ORA-19505 ORA-27037)