ORA-00600 qosdExpStatRead expcnt mismatch

简介: Oracle 12.2.0.1最近出现了ORA--0600错误,其详细信息如下:ORA-00600: 内部错误代码, 参数: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], []ORA-06512: 在 "SYS.

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.备份数据库涉及到修改数据字典

  1. 修复问题

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;

  1. 修改后,执行如下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;

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

目录
相关文章
|
消息中间件 NoSQL Cloud Native
对Confluent一些解读
对Kafka母公司Confluent IPO、产品、技术一些看法
5474 0
对Confluent一些解读
|
安全 Linux Apache
Apache代理服务器搭建和配置
Apache代理服务器搭建和配置
|
5月前
|
存储 SQL 关系型数据库
mysql中max_allowed_packet的解释说明
max_allowed_packet 是 MySQL 配置项之一,用于控制单个包(数据包)能够传输的最大字节数。这个参数限制了 MySQL 在执行某些操作时可以接收或发送的最大数据量,尤其是在处理 大查询、二进制数据(如大 BLOB、TEXT 数据) 时。通过设置合适的 max_allowed_packet 值,可以避免在传输大数据时遇到错误。
458 0
|
Oracle 关系型数据库 数据库
手把手教你Oracle DataGuard主备切换(switchover)
手把手教你Oracle DataGuard主备切换(switchover)
1742 4
|
SQL 存储 缓存
ORACLE常用性能监控SQL【二】(下)
ORACLE常用性能监控SQL【二】(下)
959 0
|
存储 NoSQL Java
如何使用Spring Boot与Redis集成
2月更文挑战第12天】
612 0
|
运维 安全 Linux
开源堡垒机JumpServer本地安装并配置公网访问地址
开源堡垒机JumpServer本地安装并配置公网访问地址
1479 0
SVN服务器地址变更,本地如何更新同步
SVN服务器地址变更,本地如何更新同步
678 0