通过数据库链导出遇到ORA-39126错误

来源:互联网 发布:javzoo2016最新域名 编辑:程序博客网 时间:2024/05/16 15:35

问题现像:
使用dblink直接用impdp的network_link从远程导入数据时,出现下面的问题:
本地数据库是11.2.0.3,远程数据库是10.2.05

但开始用同样的命令导入时,不会出现这个问题,当尝试再导入时就会报这个错。

[oracle@nticket1 ~]$ impdp nticket/nplane231 directory=DIR_1 network_link=link_5118 PARALLEL=4 logfile=imp118.log EXCLUDE=INDEX:"%" tables=nticket.BL_AGENT_INFO_DT,nticket.BL_BALANCE_FEE_DT

Import: Release 11.2.0.3.0 - Production on 星期一 6月 25 17:32:10 2012

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
启动 "NTICKET"."SYS_IMPORT_TABLE_02":  nticket/******** directory=DIR_1 network_link=link_5118 PARALLEL=4 logfile=imp118.log EXCLUDE=INDEX:% tables=nticket.BL_AGENT_INFO_DT,nticket.BL_BALANCE_FEE_DT
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 4.187 MB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
ORA-39126: 在 KUPW$WORKER.FETCH_XML_OBJECTS [TABLE:"NTICKET"."BL_BALANCE_FEE_DT"] 中 Worker 发生意外致命错误
ORA-00911: 无效字符
ORA-06512: 在 "SYS.DBMS_METADATA", line 1886
ORA-06512: 在 "SYS.DBMS_METADATA", line 1923
ORA-06512: 在 "SYS.DBMS_METADATA", line 2230
ORA-06512: 在 "SYS.DBMS_METADATA", line 4410

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: 在 "SYS.KUPW$WORKER", line 9001

----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name
0x50b4e1830     20462  package body SYS.KUPW$WORKER
0x50b4e1830      9028  package body SYS.KUPW$WORKER
0x50b4e1830     10935  package body SYS.KUPW$WORKER
0x50b4e1830      2728  package body SYS.KUPW$WORKER
0x50b4e1830      9697  package body SYS.KUPW$WORKER
0x50b4e1830      1775  package body SYS.KUPW$WORKER
0x5176f6938         2  anonymous block

ORA-39126: 在 KUPW$WORKER.FETCH_XML_OBJECTS [TABLE:"NTICKET"."BL_BALANCE_FEE_DT"] 中 Worker 发生意外致命错误
ORA-00911: 无效字符
ORA-06512: 在 "SYS.DBMS_METADATA", line 1886
ORA-06512: 在 "SYS.DBMS_METADATA", line 1923
ORA-06512: 在 "SYS.DBMS_METADATA", line 2230
ORA-06512: 在 "SYS.DBMS_METADATA", line 4410

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: 在 "SYS.KUPW$WORKER", line 9001

----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name
0x50b4e1830     20462  package body SYS.KUPW$WORKER
0x50b4e1830      9028  package body SYS.KUPW$WORKER
0x50b4e1830     10935  package body SYS.KUPW$WORKER
0x50b4e1830      2728  package body SYS.KUPW$WORKER
0x50b4e1830      9697  package body SYS.KUPW$WORKER
0x50b4e1830      1775  package body SYS.KUPW$WORKER
0x5176f6938         2  anonymous block

作业 "NTICKET"."SYS_IMPORT_TABLE_02" 因致命错误于 17:32:13 停止

原因:Bug 10115400
当执行NETWORK_LINK方式的导入或导出时,如果远端数据库是10.2版本,且通过TABLES参数指定了多个表,就会引发这个问题。11.2的各个版本都可能出现这个问题。Oracle计划在12.1解决这个问题。

解决办法:
需要在源数据库导出对应的表,然后ftp到本地,然后通过impdp导入

参考:
http://yangtingkun.itpub.net/post/468/515097