怎么解决Oracle的ORA-00600错误
这篇文章主要讲解了“怎么解决Oracle的ORA-00600错误”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决Oracle的ORA-00600错误”吧!
Oracle 12.2.0.1最近出现了ORA--0600错误,其详细信息如下:
ORA-00600:内部错误代码,参数:[qosdExpStatRead:expcntmismatch],[],[],[],[],[],[],[],[],[],[],[]ORA-06512:在"SYS.DBMS_STATS",line1976ORA-06512:在"SYS.DBMS_STATS",line46935ORA-06512:在"SYS.DBMS_STATS",line47168ORA-00600:内部错误代码,参数:[qosdExpStatRead:expcntmismatch],[],[],[],[],[],[],[],[],[],[],[]ORA-06512:在"SYS.DBMS_STATS",line1976ORA-06512:在"SYS.DBMS_STATS",line46935ORA-06512:在"SYS.DBMS_STATS",line47168
根据Oracle官方给出的检查SQL语句,其执行结果如下:
引起访问题的原因是由于sys.exp_obj$.exp_cnt与sys.exp_stat$的行数据不匹配所造成的
解决方案
1.备份数据库涉及到修改数据字典
2. 修复问题
SQL>updatesys.exp_obj$asetexp_cnt=(selectcount(*)fromsys.exp_stat$bwherea.objn=b.objnanda.snapshot_id=b.snapshot_id)wherea.objn=124789;SQL>commit;
3. 修改后,执行如下SQL确认是否还有记录,如果没有记录,说明已经修改成功,提交。
SQL>Withbas(selectcount(*)cnt,objn,snapshot_idfromsys.exp_stat$esgroupbyobjn,snapshot_id)select*fromsys.exp_obj$a,bwherea.objn=b.objnanda.snapshot_id=b.snapshot_idanda.EXP_CNT<>b.CNT;
修复后,通过一天的观察没有出现该问题了。
感谢各位的阅读,以上就是“怎么解决Oracle的ORA-00600错误”的内容了,经过本文的学习后,相信大家对怎么解决Oracle的ORA-00600错误这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。