测试环境一套ORACLE 10.2.0.3 RAC环境数据库使用impdp导入数据时报错,报错内容如下:
ORA-31693: Table data object "LINC"."VIPDB_ACCT" failed to load/unload and is being skipped due to error:
ORA-44002: invalid object name
ORA-06512: at "SYS.DBMS_ASSERT", line 283
ORA-06512: at "SYS.KUPD$DATA", line 1336
ORA-12801: error signaled in parallel query server P002, instance sunvs-b:U2 (2)
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-31626: job does not exist
ORA-06512: at "SYS.ORACLE_DATAPUMP", line 19
此为RAC环境数据库,同事在导入的时候指定了并行度(PARALLEL=5)。
在10.2.0.3版本上存在一个已知的Bug 5472417 EXPDP on RAC fails with ORA-39014 / ORA-12801 (error signaled in parallel query server),和此现象类似。
导致报错的主要原因是由于导入使用了external table方式,且指定的directory对象未放在共享存储上。
在RAC环境下指定parallel参数后,使用数据泵导入数据时,需要确认指定的directory对象在共享存储上,所有RAC集群的实例均可访问。
impdp导入有direct path和external table方式,一般direct path的效率较高。
当导入的分区或表>250M且使用parallel参数时,impdp会使用外部表方式导入数据。(Data could also have been loaded in "Direct Path" mode, but the table or partition is relatively large (> 250 Mb) and parallel SQL can be used to speed up the load even more)
取消了parallel参数后,导入正常完成。
目前可行的解决方案:
1. 将directory对象创建在共享存储上
2. 导入时取消parallel参数(即PARALLEL=1,这个已经证实了可以正常完成导入)
3. 强制direct path方式导入(使用未公开的access_method参数强制指定),这个方法不建议使用
4. 在仅单个实例启动时使用数据泵
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20750200/viewspace-704390/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20750200/viewspace-704390/