LOB segment corruption
admin
2023-06-10 13:23:50
0

今天用expdp导数据出现ORA-01555: snapshot too old 错误,表中有clob字段,增加retention time和增加undo表空间都没有用,最后发现是有LOB segment corruption。


ORA-31693: Table data object "NEWCMS"."ARTICLE" failed to load/unload and is being skipped due to error:

ORA-02354: error in exporting/importing data

ORA-01555: snapshot too old: rollback segment number  with name "" too small

ORA-22924: snapshot too old

create table corrupted_data (corrupted_rowid rowid);
 

检查坏块
set concat off
declare
  error_1555 exception;
  pragma exception_init(error_1555,-1555);
  v_lob NCLOB;
  n number;
begin
   for cursor_lob in (select rowid r  from article.html_context) loop
   begin
     select  PT_DESC into v_lob  from   article.html_context  where rowid=cursor_lob.r;
     n:=dbms_lob.instr(v_lob,hextoraw('889911')) ;
   exception
     when error_1555 then
       
insert into corrupted_data values (cursor_lob.r);
       commit;
   end;
  end loop;
end;

PL/SQL procedure successfully completed.


SQL> select * from corrupted_data;


CORRUPTED_ROWID

------------------

AAAS6HAAKAAB++3AAA


发现有一条数据损坏


导出时过滤掉该条记录

expdp newcms/********* schemas=newcms dumpfile=newcms_20160509.dmp query=\"where rowid not in \(\'AAAS6HAAKAAB++3AAA\'\)\" version=10.2.0.4.0

成功导出


在导入时报错

ORA-39083: Object type REF_CONSTRAINT failed to create with error:

ORA-02298: cannot validate (NEWCMS.FK_ARTICLE__REFERENCE_ARTICLE) - parent keys not found

Failing sql is:

ALTER TABLE "NEWCMS"."ARTICLE_TO_COLUMN" ADD CONSTRAINT "FK_ARTICLE__REFERENCE_ARTICLE" FOREIGN KEY ("ARTICLE_CODE") REFERENCES "NEWCMS"."ARTICLE" ("ID") ENABLE

Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

Job "NEWCMS"."SYS_IMPORT_FULL_01" completed with 2 error(s) at 14:45:36


原因:

你要插入的表A里,有外键连接到另一个表B的主键, 你在表A的外键列插入的值 在表B的主键列找不到就不能插入。

解决方法:

如果可以删除主表中的多余记录,保证主表和子表一致

下面的语句根据索引关联信息表生成删除语句


SELECT ' delete from '

 ||a.table_name

 ||' a  where not exists ( select 1 from '

 ||c_pk.table_name

 || ' b  where b.'

 || b.column_name

 ||'=a.'

 ||a.column_name

 ||');'

FROM user_cons_columns a

JOIN user_constraints c

ON a.constraint_name = c.constraint_name

JOIN user_constraints c_pk

ON c.r_constraint_name = c_pk.constraint_name

JOIN user_cons_columns b

ON c_pk.constraint_name = b.constraint_name

WHERE c.constraint_type = 'R'

AND a.table_name        = '&Table_Name'

AND a.constraint_name   ='&FK_NAME';


'DELETEFROM'||A.TABLE_NAME||'AWHERENOTEXISTS(SELECT1FROM'||C_PK.TABLE_NAME||'BWH

--------------------------------------------------------------------------------

 delete from ARTICLE_TO_COLUMN a  where not exists ( select 1 from ARTICLE b  wh

ere b.ID=a.ARTICLE_CODE);

执行该语句

然后执行

alter table "ARTICLE_TO_COLUMN" enable constraint "FK_ARTICLE__REFERENCE_ARTICLE"; 

成功!

相关内容

热门资讯

李在明向山西煤矿爆炸事故遇难者... 据凤凰卫视报道,韩国总统李在明5月24日就中国山西省煤矿爆炸事故造成多人遇难表示,向遇难者家属和中国...
华为正式发表半导体领域新定律 人民日报客户端 华为正式发表半导体领域新定律 晶体管密度与系统性能通过逻辑折叠技术实现新突破 202...
武契奇向人民英雄纪念碑敬献花圈 5月25日上午,塞尔维亚总统武契奇前往天安门广场,向人民英雄纪念碑敬献花圈。
重庆多个景区受强降雨影响临时闭... 澎湃新闻记者 廖艳 实习生 林霄近日,受持续强降雨的影响,重庆多个景区出现水位上涨、多处塌方等情况,...
视频丨随迁子女教育保障、异地参... 昨天(22日),《国务院关于推行常住地提供基本公共服务的实施意见》对外发布。文件明确提出,促进未落户...
打造生态链 创新再加速 本报讯 (记者 翁云骞 通讯员 虞昌胜 高博雯) 研发整体效率提升30%,其中代码编写效率提升50%...
前DeepMind华人研究员离... 新智元报道 【新智元导读】前谷歌DeepMind研究员离职并发表长文指出AI行业当前最被低估的瓶颈...
以人工智能应用场景推进数实深度... (来源:天津日报) 转自:天津日报 “十五五”规划纲要提出“全面实施‘人工智能+’行动”,并对构建高...
3名青少年强奸犯免于监禁引众怒... 【文/观察者网 陈思佳】“三名青少年强奸犯免于监禁,引发英国全国争议。”据《国际商业时报》5月24日...
河南省“十五五”规划纲要全文发... 【大河财立方消息】5月25日,河南省国民经济和社会发展第十五个五年规划纲要全文发布。其中提到,提振汽...