Oracle系统表对象损坏导致DOWN机的分析

问题现象
归档库于3月30日凌晨4点14分多异常DOWN机,次日早上手工启动成功,目前该库的版本较低11.2.0.1,偶尔有ORA-600触发,但这次是首次直接让实例DOWN机。

故障分析
查看当时alert警告日志:在这里插入图片描述
从这里可看出,30日的凌晨:02:00启动的清理资源维护计划中(每天22点到次日2点结束,如统计信息收集,sql tunning advisor这种,2点启动PMON清理进程作业),PMON在清理过程中遇到错误,经过反复重试后,PMON终止后,实例异常关闭。

查看跟踪文件j000_6452.trc:
在这里插入图片描述
跟踪文件的current sql segment部分并没有追踪到触发的SQL语句,而下面则出现了一个逻辑损坏现象,根据网上的描述,这种逻辑损坏一般为BUG引起,下面根据ORA-600的报错号8450145查询报错对象信息:
在这里插入图片描述
这里查出来是2,61537,这个从PMON的跟踪文件也得到证实:
在这里插入图片描述
再看该OBJECT_ID对应的对象:
在这里插入图片描述
这里描述是一个系统内部的表,属于SYSMAN用户的IOT系统表!

解决方案
这个情况跟ORACLE官方467439.1文档有类似之处
ORA-600 [6749] Occurring on SYSMAN.MGMT_METRICS_RAW (文档 ID 467439.1):

该BUG描述:
在这里插入图片描述
回忆上次归档库出现过一次ORA-20011: Approximate NDV failed: ORA-08103: 对象不再存在,也是由于自动维护计划收集统计信息卡住报错,后来直接将该表MOVE解决,从这次的错误日志来看,很可能也是系统内部的对象逻辑错误引起,目前可观察一段时间,如频繁出现类似的维护任务错误,可按上述方法临时处理,或者直接把自动维护任务关闭。而从长远角度来看,还是直接升级数据库至11.2.0.2以上比较好。

PS:由于该库为静态的只读归档库,已禁用自动维护任务,目前ALERT 日志已无600错误触发。


更多DBA案例更新,请关注我们CSDN博客!
https://topdbs.blog.csdn.net