在Oracle 11.2.0.2数据库中通过NETWORK_LINK方式导出或导入10.2.0.3数据库中的表,出现了这个错误。
详细错误如下:
[oracle@Oracle112 dmp]$ impdp system/password noLOGFILE=y tables=xyyzone.TAB_COMM_DISCOVERY_QAHISTORY,xyyzone.TAB_COMM_DISCOVERY_VOTEHISTORY,xyyzone.TAB_COMM_DISCOVERY_CONSUMER,xyyzone.TAB_COMM_DISCOVERY_SHOPPING network_link=dblink2_112_107;
Import: Release 11.2.0.2.0 - Production on Wed Mar 16 04:44:36 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_IMPORT_TABLE_01": system/******** noLOGFILE=y tables=xyyzone.TAB_COMM_DISCOVERY_QAHISTORY,xyyzone.TAB_COMM_DISCOVERY_VOTEHISTORY,xyyzone.TAB_COMM_DISCOVERY_CONSUMER,xyyzone.TAB_COMM_DISCOVERY_SHOPPING network_link=dblink2_112_107
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.GET_TABLE_DATA_OBJECTS []
ORA-00920: invalid relational operator
ORA-06512: at "SYS.DBMS_METADATA", line 1546
ORA-06512: at "SYS.DBMS_METADATA", line 1583
ORA-06512: at "SYS.DBMS_METADATA", line 1891
ORA-06512: at "SYS.DBMS_METADATA", line 3956
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.KUPW$WORKER", line 8353
----- PL/SQL Call Stack -----
object line object
handle number name
0x136b50808 19208 package body SYS.KUPW$WORKER
0x136b50808 8385 package body SYS.KUPW$WORKER
0x136b50808 12748 package body SYS.KUPW$WORKER
0x136b50808 4742 package body SYS.KUPW$WORKER
0x136b50808 9110 package body SYS.KUPW$WORKER
0x136b50808 1688 package body SYS.KUPW$WORKER
0x137e37d68 2 anonymous block
Job "SYSTEM"."SYS_IMPORT_TABLE_01" stopped due to fatal error at 04:44:38
[oracle@Oracle112 dmp]$ expdp system/password directory=dmp dumpfile=xyyzone_table_110316.dp noLOGFILE=y tables=xyyzone.TAB_COMM_DISCOVERY_QAHISTORY,xyyzone.TAB_COMM_DISCOVERY_VOTEHISTORY,xyyzone.TAB_COMM_DISCOVERY_CONSUMER,xyyzone.TAB_COMM_DISCOVERY_SHOPPING network_link=dblink2_112_107
Export: Release 11.2.0.2.0 - Production on Wed Mar 16 04:46:21 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_TABLE_01": system/******** directory=dmp dumpfile=xyyzone_table_110316.dp noLOGFILE=y tables=xyyzone.TAB_COMM_DISCOVERY_QAHISTORY,xyyzone.TAB_COMM_DISCOVERY_VOTEHISTORY,xyyzone.TAB_COMM_DISCOVERY_CONSUMER,xyyzone.TAB_COMM_DISCOVERY_SHOPPING network_link=dblink2_112_107
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 11.56 MB
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.UNLOAD_METADATA [TABLE_DATA:"XYYZONE"."TAB_COMM_POINTS_HISTORY":"YMAX"]
ORA-00920: invalid relational operator
ORA-06512: at "SYS.DBMS_METADATA", line 1546
ORA-06512: at "SYS.DBMS_METADATA", line 1583
ORA-06512: at "SYS.DBMS_METADATA", line 1891
ORA-06512: at "SYS.DBMS_METADATA", line 3956
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPW$WORKER", line 8358
----- PL/SQL Call Stack -----
object line object
handle number name
0x136b50808 19208 package body SYS.KUPW$WORKER
0x136b50808 8385 package body SYS.KUPW$WORKER
0x136b50808 2935 package body SYS.KUPW$WORKER
0x136b50808 9054 package body SYS.KUPW$WORKER
0x136b50808 1688 package body SYS.KUPW$WORKER
0x1358a19a0 2 anonymous block
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 11.56 MB
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.UNLOAD_METADATA [TABLE_DATA:"XYYZONE"."TAB_COMM_POINTS_HISTORY":"YMAX"]
ORA-00920: invalid relational operator
ORA-06512: at "SYS.DBMS_METADATA", line 1546
ORA-06512: at "SYS.DBMS_METADATA", line 1583
ORA-06512: at "SYS.DBMS_METADATA", line 1891
ORA-06512: at "SYS.DBMS_METADATA", line 3956
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPW$WORKER", line 8358
----- PL/SQL Call Stack -----
object line object
handle number name
0x136b50808 19208 package body SYS.KUPW$WORKER
0x136b50808 8385 package body SYS.KUPW$WORKER
0x136b50808 2935 package body SYS.KUPW$WORKER
0x136b50808 9054 package body SYS.KUPW$WORKER
0x136b50808 1688 package body SYS.KUPW$WORKER
0x1358a19a0 2 anonymous block
Job "SYSTEM"."SYS_EXPORT_TABLE_01" stopped due to fatal error at 04:46:52
[oracle@Oracle112 dmp]$ expdp system/password directory=dmp dumpfile=xyyzone_table_110316.dp noLOGFILE=y tables=xyyzone.TAB_COMM_DISCOVERY_QAHISTORY,xyyzone.TAB_COMM_DISCOVERY_VOTEHISTORY,xyyzone.TAB_COMM_DISCOVERY_CONSUMER,xyyzone.TAB_COMM_DISCOVERY_SHOPPING network_link=dblink2_112_107 version=10.2.0.3
Export: Release 11.2.0.2.0 - Production on Wed Mar 16 04:52:55 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_TABLE_02": system/******** directory=dmp dumpfile=xyyzone_table_110316.dp noLOGFILE=y tables=xyyzone.TAB_COMM_DISCOVERY_QAHISTORY,xyyzone.TAB_COMM_DISCOVERY_VOTEHISTORY,xyyzone.TAB_COMM_DISCOVERY_CONSUMER,xyyzone.TAB_COMM_DISCOVERY_SHOPPING network_link=dblink2_112_107 version=10.2.0.3
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 11.56 MB
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.UNLOAD_METADATA [TABLE_DATA:"XYYZONE"."TAB_COMM_POINTS_HISTORY":"YMAX"]
ORA-00920: invalid relational operator
ORA-06512: at "SYS.DBMS_METADATA", line 1546
ORA-06512: at "SYS.DBMS_METADATA", line 1583
ORA-06512: at "SYS.DBMS_METADATA", line 1891
ORA-06512: at "SYS.DBMS_METADATA", line 3956
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPW$WORKER", line 8358
----- PL/SQL Call Stack -----
object line object
handle number name
0x136b50808 19208 package body SYS.KUPW$WORKER
0x136b50808 8385 package body SYS.KUPW$WORKER
0x136b50808 2935 package body SYS.KUPW$WORKER
0x136b50808 9054 package body SYS.KUPW$WORKER
0x136b50808 1688 package body SYS.KUPW$WORKER
0x15b980c98 2 anonymous block
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 11.56 MB
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.UNLOAD_METADATA [TABLE_DATA:"XYYZONE"."TAB_COMM_POINTS_HISTORY":"YMAX"]
ORA-00920: invalid relational operator
ORA-06512: at "SYS.DBMS_METADATA", line 1546
ORA-06512: at "SYS.DBMS_METADATA", line 1583
ORA-06512: at "SYS.DBMS_METADATA", line 1891
ORA-06512: at "SYS.DBMS_METADATA", line 3956
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPW$WORKER", line 8358
----- PL/SQL Call Stack -----
object line object
handle number name
0x136b50808 19208 package body SYS.KUPW$WORKER
0x136b50808 8385 package body SYS.KUPW$WORKER
0x136b50808 2935 package body SYS.KUPW$WORKER
0x136b50808 9054 package body SYS.KUPW$WORKER
0x136b50808 1688 package body SYS.KUPW$WORKER
0x15b980c98 2 anonymous block
Job "SYSTEM"."SYS_EXPORT_TABLE_02" stopped due to fatal error at 04:53:25
可以看到,无论是尝试IMPDP直接导入,还是尝试利用EXPDP进行远端的导出,都会碰到ORA-39126和ORA-920错误。尝试导出时指定版本10.2.0.3,问题依旧。
检查metalink,确认是Bug 10115400。当执行NETWORK_LINK方式的导入或导出时,如果远端数据库是10.2版本,且通过TABLES参数指定了多个表,就会引发这个问题。11.2的各个版本都可能出现这个问题。Oracle计划在12.1解决这个问题。
这个错误的影响倒是不大,只不过就是麻烦一些,需要在源数据库导出对应的表,然后ftp到本地,然后通过impdp导入。