暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ORA-600: [13013]

老杨 2019-04-18
367

问题描述

客户环境中出现ORA-600(13013)错误。
错误信息如下:

Mon DEC 26 23:13:00 2011 
Errors IN file /oracle/admin/htzback/udump/htzback_ora_32522.trc:
ORA-00600: 内部错误代码, 参数: [13013], [5001], [52828], [625368235], [67], [629556358], [17], []


专家解答

查询MOS发现,对于13013错误而言,随后的6个参数含义如下:

Arg [a] Passcount 
Arg [b] DATA Object NUMBER 
Arg [c] Tablespace Relative DBA OF block containing the ROW TO be updated 
Arg [d] ROW Slot NUMBER 
Arg [e] Relative DBA OF block being updated (should be same AS [c]) 
Arg [f] Code

可以根据DATA OBJECT ID在DBA_OBJECTS视图中找到对应的对象,如果是表,可以使用ANALYZE TABLE TABLENAME VALIDATE STRUCTURE CASCADE的方式来验证表结构,如果是索引,可以用ANALYZE INDEX INDEXNAME VALIDATE STRUCTURE的方式验证索引结构。
根据参数C可以计算出问题出现的相对文件号和BLOCK号:

SQL> SELECT dbms_utility.data_block_address_file(625368235) rfile, 
  2 dbms_utility.data_block_address_block(625368235) blocks
  3 FROM dual;
RFILE     BLOCKS
---------- ----------
       149     416939

根据找到的文件号,可以使用dbv对指定的文件进行检查。
如果确实发现逻辑损害,且错误发生在索引上,那么最简单的办法莫过于利用DBMS_METADATA获取索引的源数据,然后将索引删除后重建。
如果错误发生在表上,且存在备份,可以直接利用BLOCKRECOVER命令进行恢复。
如果备份不存在,可以利用DBMS_REPAIR包,或者使用EVENTS 10231的LEVEL 10,跳过坏块。当然也完全可以通过ROWID方式来手工跳过这个错误。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论