阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ORA-00600(13013)错误解决方法

150次阅读
没有评论

共计 1121 个字符,预计需要花费 3 分钟才能阅读完成。

客户环境中出现 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 方式来手工跳过这个错误。

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-09/135242.htm

正文完
星哥说事-微信公众号
post-qrcode
 1
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1121字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中