[Oracle]ORA-600[kdBlkCheckError]LOB坏块处理

简介:
[Oracle]ORA-600[kdBlkCheckError]LOB坏块处理

客户环境报如下错误:

ORA - 00600: Internal error code, arguments: [kdBlkCheckError], [2], [10388], [63068], [], [], [], [], [], [], [], []

alert log 中有这样的信息:

Thu Sep 07 19:14:00 2017
Corrupt Block Found
        CONT = 0, TSN = 1, TSNAME = SYSAUX
        RFN = 2, BLK = 10123, RDBA = 7364815
        OBJN = 10388, OBJD = 10388, OBJECT = SYS_LOB0000010129C00001$$, SUBOBJECT =
        SEGMENT OWNER = SYS, SEGMENT TYPE = Lob Segment

查看Trace,看到关联的SQL问也是 OPATCH_XINV_TAB 表。

----- Current SQL Statement for this session (sql_id=20x4skym5bskj) -----
 INSERT INTO OPATCH_XINV_TAB(XML_INVENTORY) SELECT * FROM OPATCH_XML_INV

查询相关的情报,可以看到 OPATCH_XINV_TAB 的 XML_INVENTORY 列, 使用了 LOB字段。

 SQL> set pages 10000 line 200
 SQL> select * from dba_lobs where segment_name = 'SYS_LOB0000010129C00001$$';
 
 OWNER
 ----------------
 TABLE_NAME
 ----------------
 COLUMN_NAME
 --------------------------------
 SEGMENT_NAME                                          TABLESPACE_NAME ...
 ---------------- ------------------------------
 SYS
 OPATCH_XINV_TAB
 XML_INVENTORY
 SYS_LOB0000010129C00001$$                             SYSAUX

由于没有备份,只能考虑对LOB 进行清除处理。但是还是建议客户在清除处理之前,进行现场的备份。

然后,执行清理操作:

 alter table SYS.OPATCH_XINV_TAB move LOB(XML_INVENTORY) store as (tablespace SYSAUX);

这样清除之后,坏块就会变成不属于任何对象,知道被作为空闲块再次使用时,被再次格式化。

但是,在这个坏块被格式化之前,如果执行了rman 的坏块检查,或者dbv ,是会发现这个块并报错的。
如果对这个错不爽,可以尝试手工格式化。

具体做法需要参考文档:

  How to Format Corrupted Block Not Part of Any Segment (Doc ID 336133.1)








本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/p/3_15726948371.html,如需转载请自行联系原作者

目录
相关文章
|
Oracle 关系型数据库 数据库
实战篇:Oracle 数据坏块的 N 种修复方式
实战篇:Oracle 数据坏块的 N 种修复方式
实战篇:Oracle 数据坏块的 N 种修复方式
|
3月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
存储 网络协议 Oracle
Oracle 12c rman duplicate网卡offload引起文件坏块问题
Oracle 12c rman duplicate网卡offload引起文件坏块问题
263 0
|
存储 SQL 自然语言处理
Oracle lob介绍
Oracle lob介绍
345 0
|
Oracle 关系型数据库 数据库
|
Oracle 关系型数据库 数据库
|
SQL Oracle 关系型数据库
|
Oracle 关系型数据库 数据库管理