EXPDP导出含有LOB字段的大表报错ORA-01555 snapshot too old

一,近期对数据库里面100G大小的单表进行expdp备份,备份的过程中报错ORA-01555

二,因为该表是个历史数据表,没有任何DML操作,因此怀疑快照过旧和撤销段关系不大。在MOS上搜索相关文档发现可能是由于错误lob字段导致,执行下述脚本,排查是否有错误的lob字段:

create table corrupted_lob_data (corrupted_rowid rowid);  

set concat off  
declare  
  error_1555 exception;  
  pragma exception_init(error_1555,-1555);  
  num number;  
begin  
  for cursor_lob in (select rowid r, MEMO from scqerp.TB_SYS_OPLOGINFO20180623) loop  
    begin  
      num := dbms_lob.instr (cursor_lob.MEMO, hextoraw ('889911')) ;  
    exception  
      when error_1555 then  
        insert into corrupted_lob_data values (cursor_lob.r);  
        commit;  
    end;  
  end loop;  
end;  
/  

执行完成后发现确实有error的lob字段:

将问题的JOB字段置空处理:

三、重新尝试导出,可正常导出

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值