首页 » ORACLE, ORACLE [C]系列 » Troubleshooting ORA-00600 [qosdExpStatRead: expcnt mismatch]

Troubleshooting ORA-00600 [qosdExpStatRead: expcnt mismatch]

ORA00600: internal error code, arguments:[qosdExpStatRead: expcnt mismatch]   , 19c (19.8 RAC env)

Cause 

This is due to sys.exp_obj$. EXP_CNT mismatch rows of sys.exp_stat$

Following SQL is used to check issue data of some objects. if there are some rows return, that means data issue.

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;

Solution 

1. Ensure that you have taken a backup of your system before applying the recommended solution.

2. fix issue data.

sqlplus / as sysdba
alter session set container=<container_name>;
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=<objn>;

commit;

3. Once the scripts complete, confirm that the data is corrected. (no issue data return)
You can use the same SQL to confirm:

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;

 

then you should  Apply Patch 28681153 if have. the Bug is fixed in 20.1.0

打赏

对不起,这篇文章暂时关闭评论。