ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ora-600 [6033] 错误解决

ora-600 [6033] 错误解决

原创 Linux操作系统 作者:hanson 时间:2019-05-26 09:36:06 0 删除 编辑

今天一个收取物流数据的程序在运行过程中,突然弹出错误:ORA-600 [6033] [] [] [] []。

在通知我以后,查看alter.log文件:

tail -n 50 alert_cms.log

上面记录了具体错误信息位于:$ORACLE_HOME/admin/cms/udump/cms_ora_774646.trc。

于是查看该文件:

more $ORACLE_HOME/admin/cms/udump/cms_ora_774646.trc

看到该文件太长,一行行看不出名堂。遂放弃。


转而登录metalink,并直接进入有关600的错误页面:

https://metalink.oracle.com/metalink/plsql/f?p=130:14:2049713596356994802::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,153788.1,1,0,0,helvetica

我输入6033后,点击lookup error按钮,查询有关6033的具体说明部分:

ORA-600 [6033] "null value retrieved from index leaf lookup"。

ok,这说明索引的叶子节点出了问题。按照提示,我先找出cms_ora_774646.trc里记录的所有表:

grep -i 'from' $ORACLE_HOME/admin/cms/udump/cms_ora_774646.trc

然后把所有的表都运行一遍:

ANALYZE TABLE VALIDATE STRUCTURE CASCADE;

并把这些表对应的索引全部重建一遍。这里面有一个是global temporary table,则该临时表对应的索引是不能重建的,否则要报错的。

然后,再次运行程序,依然报错。

想了一下,这个错误应该就是索引叶子有问题。但是重建索引依然没解决,那看来就是临时表的索引问题了。

检查了一下程序,与该临时表有关的sql语句就一句,而且确实走了fast full index scan。于是,改程序,添加/* full(tbname)*/,同时重建该临时表以及索引。问题解决。

初步认为,添加/* full(tbname)*/和重建该临时表以及索引只要做其中之一就应该能解决问题。不过没有测试环境,不好测试了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9842/viewspace-156317/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2002-04-14

  • 博文量
    54
  • 访问量
    52805