怎么解决Oracle的ORA

75次阅读
没有评论

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

这篇文章主要讲解了“怎么解决 Oracle 的 ORA-00600 错误”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“怎么解决 Oracle 的 ORA-00600 错误”吧!

Oracle 12.2.0.1 最近出现了 ORA–0600 错误,其详细信息如下:

ORA-00600:  内部错误代码,  参数: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], []
ORA-06512:  在   SYS.DBMS_STATS , line 1976
ORA-06512:  在   SYS.DBMS_STATS , line 46935
ORA-06512:  在   SYS.DBMS_STATS , line 47168
ORA-00600:  内部错误代码,  参数: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], []
ORA-06512:  在   SYS.DBMS_STATS , line 1976
ORA-06512:  在   SYS.DBMS_STATS , line 46935
ORA-06512:  在   SYS.DBMS_STATS , line 47168

根据 Oracle 官方给出的检查 SQL 语句,其执行结果如下:

引起访问题的原因是由于 sys.exp_obj$.exp_cnt 与 sys.exp_stat$ 的行数据不匹配所造成的

解决方案
1. 备份数据库涉及到修改数据字典

2. 修复问题

SQL update sys.exp_obj$ a set exp_cnt=(select count(*) from sys.exp_stat$ b where
a.objn=b.objn and a.snapshot_id=b.snapshot_id ) where a.objn=124789;
SQL commit;

3. 修改后,执行如下 SQL 确认是否还有记录,如果没有记录,说明已经修改成功,提交。

SQL With b as (select count(*) cnt,objn,snapshot_id from sys.exp_stat$ es group by objn,snapshot_id)
select * from sys.exp_obj$ a, b where a.objn=b.objn and a.snapshot_id=b.snapshot_id
and a.EXP_CNT b.CNT;

修复后,通过一天的观察没有出现该问题了。

感谢各位的阅读,以上就是“怎么解决 Oracle 的 ORA-00600 错误”的内容了,经过本文的学习后,相信大家对怎么解决 Oracle 的 ORA-00600 错误这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计1255字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)