执行expdp导出时报错-01555快照过旧

■表RESACTIVEINFO导出失败,提示01555快照过旧
ORA-31693: Table data object "XXX"."RESACTIVEINFO" failed to load/unload and is being skipped due to error:
ORA-29913: error in executing ODCIEXTTABLEPOPULATE callout
ORA-01555: snapshot too old: rollback segment number 10 with name "_SYSSMU10_3590435561$" too small

■表RESACTIVEINFO含有4个clob对象,查看dba_lobs视图,确认属性

注:LOB不支持undo的自动调整,对LOB字段undo保留值的调整默认基于UNDO_RETENTION参数
表的lob字段保存策略可以设置为retention/pctversion,默认是retention
alter table t modify lob(col1) (pctversion 10);
alter table t modify lob(col1) (retention);

■使用sysdba查询相关的clob字段使用什么保存策略

■数据库retention,默认15分钟

■数据库undotbs大小

■数据库retention,调整为1小时
alter system set undo_retention=3600 scope=both sid='*';
然后修改表的lob字段retention属性即可生效。
alter table RESACTIVEINFO modify lob(ACTIVEXML) (retention);
alter table RESACTIVEINFO modify lob(ACTIVERESPONSEXML) (retention);
alter table RESACTIVEINFO modify lob(RETURNXML) (retention);
alter table RESACTIVEINFO modify lob(RETURNRESPONSEXML) (retention);

■再次备份,完全成功
. . exported "XXX"."RESACTIVEINFO" 24.48 GB 43011846 rows
Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Sat Oct 12 00:03:48 2019 elapsed 0 00:58:45

《执行expdp导出时报错-01555快照过旧》有1个想法

  1. 注:前提是undo足够大,将保留时间调整为4倍大小即1小时,看看今晚自动备份的执行情况吧

发表评论

电子邮件地址不会被公开。 必填项已用*标注