用expdp导出报错求教ORA-39126,ORA-01555

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用expdp导出报错求教ORA-39126,ORA-01555相关的知识,希望对你有一定的参考价值。

你好。

这个是回滚段太小,
之后又大量事务重用回滚段,导致延迟块清除的数据被覆盖
短期解决:
alter system set "_offline_rollback_segments"=\'_SYSSMU8_1682283174$\' scope=spfile;
alter system set "_corrupted_rollback_segments"=\'_SYSSMU8_1682283174$\' scope=spfile;

长期解决
增加undo_tableapace的大小,
增加undo_retention的时间,

如果我的回答没能帮助您,请继续追问。
参考技术A Oracle 11.2.0.3
导出命令:expdp system directory=jy schemas=zjy content=metadata_only exclude=statistics dumpfile=zjy_meta.dmp logfile=zjy_meta.log
过程中报错如下:
Processing object type SCHEMA_EXPORT/TABLE/TABLE
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.FETCH_XML_OBJECTS [TABLE:"ZJY"."T_NAME_1"]
ORA-01555: snapshot too old: rollback segment number 9 with name "_SYSSMU9_187408238$" too small
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPW$WORKER", line 9001
----- PL/SQL Call Stack -----
object line object
handle number name
0x64b605f00 20462 package body SYS.KUPW$WORKER
0x64b605f00 9028 package body SYS.KUPW$WORKER
0x64b605f00 10935 package body SYS.KUPW$WORKER
0x64b605f00 2728 package body SYS.KUPW$WORKER
0x64b605f00 9697 package body SYS.KUPW$WORKER
0x64b605f00 1775 package body SYS.KUPW$WORKER
0xc46dfe398 2 anonymous block
Job "SYSTEM"."SYS_EXPORT_SCHEMA_02" stopped due to fatal error at 08:16:49

其中数据库的undo空间
TABLESPACE_NAME SUM_SPACE(M) SUM_BLOCKS USED_SPACE(M) USED_RATE(%) FREE_SPACE(M)
------------------------- -------------------- ---------- -------------------- -------------------- --------------------
UNDOTBS2 46080M 5898240 43161M 93.67% 2919M

查到的相关报错说明如下:
39126, 00000, "Worker unexpected fatal error in %s [%s] \n%s"
// *Cause: An unhandled exception was detected internally within the worker
// process for the Data Pump job. This is an internal error.
// Additional information may be supplied.
// *Action: If problem persists, contact Oracle Customer Support.

01555, 00000, "snapshot too old: rollback segment number %s with name \"%s\" too small"
// *Cause: rollback records needed by a reader for consistent read are
// overwritten by other writers
// *Action: If in Automatic Undo Management mode, increase undo_retention
// setting. Otherwise, use larger rollback segments

06512, 00000, "at %sline %s"
// *Cause: Backtrace message as the stack is unwound by unhandled
// exceptions.
// *Action: Fix the problem causing the exception or write an exception
// handler for this condition. Or you may need to contact your
// application administrator or DBA.
短期解决:
alter system set "_offline_rollback_segments"='_SYSSMU8_1682283174$' scope=spfile;
alter system set "_corrupted_rollback_segments"='_SYSSMU8_1682283174$' scope=spfile;

长期解决
增加undo_tableapace的大小,
增加undo_retention的时间,

诊断:expdp导出时遇到错误ORA-31693和ORA-00922

11.2.0.1使用数据泵expdp导出时,如果使用parallel,可能会遇到

ORA-31693: Table data object "OWNER"."TABLE" failed to load/unload and is being skipped due to error:
ORA-00922: missing or invalid option

 

不适用parallel时正常。

这是个bug。
Bug:8734963 - ORA-31693 AND ORA-922 OCCURS IN EXPDP WITH PARALLEL PARAMETER.
同样的
Bug:9243068 - EXPDP RETURNS ORA-00922: MISSING OR INVALID OPTION WHEN USING CONSISTENT=TRUE

解决办法:
1、Upgrade to 12.1 in which Bug:9243068 is fixed.

2、Apply patchset release 11.2.0.4 in which Bug:9243068 is fixed.

3、Download and apply interim Patch:9243068, if available for your platform and RDBMS release. To check for conflicting patches, please use the MOS Patch Planner Tool. If no patch is available, file a Service Request through My Oracle Support for your specific Oracle version and platform.

4、Do not use the PARALLEL command line option.

以上是关于用expdp导出报错求教ORA-39126,ORA-01555的主要内容,如果未能解决你的问题,请参考以下文章

oracle 导入报错ORA-39126,ORA-06502,LPX-00230

Oracle全库导入表报错 ORA-39126

ORACLE10G expdp 导出数据报错,大神看下

expdp导出报错ORA-39002ORA-39070解决办法

记oracle使用expdp将数据导出到asm报错

ORA-25153: 临时表空间为空