ORA-00600: 内部错误代码, 参数: [qosdDirRead: dircnt mismatch], [809], [808],

问题描述:

        上午一套RAC实例频繁报警ORA-00600: 内部错误代码, 参数: [qosdDirRead: dircnt mismatch], [809], [808]。经过MOS查询只发现在12.1中存在bug,但在12.2中已经被修复了。

数据库的版本:12.2.0.1

服务器OS版本:redhat 7.3

处理过程:

        无奈只能提交SR,通过SR的指示操作,问题解决。下面是操作过程

SQL> col dir_own# for 9999999999999999
SQL> with aa as (select count(*) aa_cnt,dir_own# from opt_directive$ group by dir_own#)
select * from aa,opt_directive_own$ bb
where aa.dir_own#(+)=bb.dir_own#
and dir_cnt<>aa.aa_cnt;
    AA_CNT        DIR_OWN#          DIR_OWN#      DIR_CNT
---------- ----------------- ----------------- ----------
       809 ################# #################          808
SQL> col dir_own# for 99999999999999999999
SQL> /
    AA_CNT        DIR_OWN#          DIR_OWN#      DIR_CNT
---------- --------------------- --------------------- ----------
       809  11352894694518622562  11352894694518622562          808
SQL> update opt_directive_own$ a set dir_cnt=(select count(*) from opt_directive$ b where a.dir_own#=b.dir_own#)
where dir_own#=11352894694518622562;
  2  
1 row updated.
SQL> commit;
Commit complete.
SQL>  with aa as (select count(*) aa_cnt,dir_own# from opt_directive$ group by dir_own#)
select * from aa,opt_directive_own$ bb
where aa.dir_own#(+)=bb.dir_own#
and dir_cnt<>aa.aa_cnt;
  2    3    4  
no rows selected
SQL>
SQL> with aa as (select count(*) aa_cnt,dir_own# from opt_directive$ group by dir_own#)
select * from aa,opt_directive_own$ bb
where aa.dir_own#(+)=bb.dir_own#
and aa.dir_own#=11352894694518622562;
  2    3    4  
    AA_CNT        DIR_OWN#          DIR_OWN#      DIR_CNT
---------- --------------------- --------------------- ----------
       809  11352894694518622562  11352894694518622562          809