ORA-00600: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], []

博客详细记录了Oracle数据库12.2.0.1版本在执行统计信息收集时遇到的ORA-00600错误。错误出现在SYS.DBMS_STATS包中,导致数据库内部状态不一致。解决方案是通过SQL更新sys.exp_obj$表来修复数据字典的不匹配问题。执行修复SQL并验证后,问题得到解决。
摘要由CSDN通过智能技术生成

ORA-00600: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], []

ORA-00600: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], []

ORA-00600: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], []

问题

-rw-r----- 1 oracle asmadmin 147096 Aug 31 07:58 claimdb1_ora_37048.trm
-rw-r----- 1^C
-rw-r----- 1 oracle asmadmin 226534 Aug 31 07:47 claimdb1_ora_37131.trc
[oracle@phqlipeirac1 trace]$ tail -100f alert_claimdb.log
tail: cannot open ‘alert_claimdb.log’ for reading: No such file or directory
tail: no files remaining
[oracle@phqlipeirac1 trace]$ tail -100f alert_claimdb1.log
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file /u01/app/oracle/diag/rdbms/claimdb/claimdb1/trace/claimdb1_j000_59012.trc (incident=733859):
ORA-00600: ▒ڲ▒▒▒▒▒▒▒▒, ▒▒▒▒: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], []
ORA-06512: ▒▒ “SYS.DBMS_STATS”, line 1976
ORA-06512: ▒▒ “SYS.DBMS_STATS”, line 39108
ORA-06512: ▒▒ line 1
Incident details in: /u01/app/oracle/diag/rdbms/claimdb/claimdb1/incident/incdir_733859/claimdb1_j000_59012_i733859.trc
2021-08-31T05:27:59.444921+08:00
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
SYS_AUTO_SQL_TUNING_TASK exiting with error “600” for execution “EXEC_255494”. See DBA_ADVISOR_EXECUTIONS for more details.
End automatic SQL Tuning Advisor run for special tuning task “SYS_AUTO_SQL_TUNING_TASK”
Errors in file /u01/app/oracle/diag/rdbms/claimdb/claimdb1/trace/claimdb1_j000_59012.trc (incident=733860):
ORA-00600: ▒ڲ▒▒▒▒▒▒▒▒, ▒▒▒▒: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], []
ORA-06512: ▒▒ “SYS.DBMS_STATS”, line 1976
ORA-06512: ▒▒ “SYS.DBMS_STATS”, line 39108
ORA-06512: ▒▒ line 1
ORA-06512: ▒▒ “SYS.DBMS_SQLTUNE_INTERNAL”, line 13887
ORA-06512: ▒▒ “SYS.DBMS_SQLTUNE_INTERNAL”, line 13907
ORA-06512: ▒▒ “SYS.WRI A D V S Q L T U N E " , l i n e 8 O R A − 06512 : ▒ ▒ " S Y S . P R V T A D V I S O R " , l i n e 739 O R A − 06512 : ▒ ▒ " S Y S . P R V T A D V I S O R " , l i n e 3238 O R A − 06512 : ▒ ▒ " S Y S . D B M S A D V I S O R " , l i n e 262 O R A − 06512 : ▒ ▒ " S Y S . D B M S S Q L T U N E " , l i n e 1186 O R A − 06512 : ▒ ▒ l i n e 19 U s e A D R C I o r S u p p o r t W o r k b e n c h t o p a c k a g e t h e i n c i d e n t . S e e N o t e 411.1 a t M y O r a c l e S u p p o r t f o r e r r o r a n d p a c k a g i n g d e t a i l s . 2021 − 08 − 31 T 05 : 27 : 59.486607 + 08 : 00 E r r o r s i n f i l e / u 01 / a p p / o r a c l e / d i a g / r d b m s / c l a i m d b / c l a i m d b 1 / t r a c e / c l a i m d b 1 j 00 0 5 9012. t r c : O R A − 00600 : ▒ ڲ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ , ▒ ▒ ▒ ▒ : [ q o s d E x p S t a t R e a d : e x p c n t m i s m a t c h ] , [ ] , [ ] , [ ] , [ ] , [ ] , [ ] , [ ] , [ ] , [ ] , [ ] , [ ] O R A − 06512 : ▒ ▒ " S Y S . D B M S S T A T S " , l i n e 1976 O R A − 06512 : ▒ ▒ " S Y S . D B M S S T A T S " , l i n e 39108 O R A − 06512 : ▒ ▒ l i n e 1 O R A − 06512 : ▒ ▒ " S Y S . D B M S S Q L T U N E I N T E R N A L " , l i n e 13887 O R A − 06512 : ▒ ▒ " S Y S . D B M S S Q L T U N E I N T E R N A L " , l i n e 13907 O R A − 06512 : ▒ ▒ " S Y S . W R I _ADV_SQLTUNE", line 8 ORA-06512: ▒▒ "SYS.PRVT_ADVISOR", line 739 ORA-06512: ▒▒ "SYS.PRVT_ADVISOR", line 3238 ORA-06512: ▒▒ "SYS.DBMS_ADVISOR", line 262 ORA-06512: ▒▒ "SYS.DBMS_SQLTUNE", line 1186 ORA-06512: ▒▒ line 19 Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. 2021-08-31T05:27:59.486607+08:00 Errors in file /u01/app/oracle/diag/rdbms/claimdb/claimdb1/trace/claimdb1_j000_59012.trc: ORA-00600: ▒ڲ▒▒▒▒▒▒▒▒, ▒▒▒▒: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], [] ORA-06512: ▒▒ "SYS.DBMS_STATS", line 1976 ORA-06512: ▒▒ "SYS.DBMS_STATS", line 39108 ORA-06512: ▒▒ line 1 ORA-06512: ▒▒ "SYS.DBMS_SQLTUNE_INTERNAL", line 13887 ORA-06512: ▒▒ "SYS.DBMS_SQLTUNE_INTERNAL", line 13907 ORA-06512: ▒▒ "SYS.WRI ADVSQLTUNE",line8ORA06512:"SYS.PRVTADVISOR",line739ORA06512:"SYS.PRVTADVISOR",line3238ORA06512:"SYS.DBMSADVISOR",line262ORA06512:"SYS.DBMSSQLTUNE",line1186ORA06512:line19UseADRCIorSupportWorkbenchtopackagetheincident.SeeNote411.1atMyOracleSupportforerrorandpackagingdetails.20210831T05:27:59.486607+08:00Errorsinfile/u01/app/oracle/diag/rdbms/claimdb/claimdb1/trace/claimdb1j00059012.trc:ORA00600:ڲ,:[qosdExpStatRead:expcntmismatch],[],[],[],[],[],[],[],[],[],[],[]ORA06512:"SYS.DBMSSTATS",line1976ORA06512:"SYS.DBMSSTATS",line39108ORA06512:line1ORA06512:"SYS.DBMSSQLTUNEINTERNAL",line13887ORA06512:"SYS.DBMSSQLTUNEINTERNAL",line13907ORA06512:"SYS.WRI_ADV_SQLTUNE”, line 8
ORA-06512: ▒▒ “SYS.PRVT_ADVISOR”, line 739
ORA-06512: ▒▒ “SYS.PRVT_ADVISOR”, line 3238
ORA-06512: ▒▒ “SYS.DBMS_ADVISOR”, line 262
ORA-06512: ▒▒ “SYS.DBMS_SQLTUNE”, line 1186
ORA-06512: ▒▒ line 19
2021-08-31T05:27:59.488652+08:00
opidrv aborting process J000 ospid (59012) as a result of ORA-600
2021-08-31T05:27:59.795301+08:00
Dumping diagnostic data in directory=[cdmp_20210831052759], requested by (instance=1, osid=59012 (J000)), summary=[incident=733859].
2021-08-31T05:37:04.537044+08:00
Dumping diagnostic data in directory=[cdmp_20210831053704], requested by (instance=2, osid=17305 (J001)), summary=[incident=206016].
2021-08-31T05:37:13.621573+08:00
Dumping diagnostic data in directory=[cdmp_20210831053713], requested by (instance=2, osid=17520 (J002)), summary=[incident=205482].
2021-08-31T06:00:00.432145+08:00
Closing Resource Manager plan via scheduler window
Clearing Resource Manager plan via parameter
2021-08-31T06:10:26.924989+08:00
LOGMINER: End mining logfile for session 5 thread 2 sequence 51593, +DATADG/CLAIMDB/ONLINELOG/group_10.36888.986209193
2021-08-31T06:10:26.939778+08:00
LOGMINER: Begin mining logfile for session 5 thread 2 sequence 51594, +DATADG/CLAIMDB/ONLINELOG/group_8.36894.986209163
2021-08-31T06:10:27.439287+08:00
LOGMINER: End mining logfile for session 3 thread 2 sequence 51593, +DATADG/CLAIMDB/ONLINELOG/group_10.36888.986209193
2021-08-31T06:10:27.452213+08:00
LOGMINER: Begin mining logfile for session 3 thread 2 sequence 51594, +DATADG/CLAIMDB/ONLINELOG/group_8.36894.986209163
2021-08-31T06:14:55.071704+08:00
Thread 1 advanced to log sequence 64909 (LGWR switch)
Current log# 6 seq# 64909 mem# 0: +DATADG/CLAIMDB/ONLINELOG/group_6.36902.986209065
2021-08-31T06:14:55.312959+08:00
TT02: Standby redo logfile selected for thread 1 sequence 64909 for destination LOG_ARCHIVE_DEST_4
TT02: Standby redo logfile selected for thread 1 sequence 64909 for destination LOG_ARCHIVE_DEST_2
2021-08-31T06:14:57.084353+08:00
Archived Log entry 225682 added for T-1.S-64908 ID 0x54b61165 LAD:1
2021-08-31T06:14:58.334094+08:00
LOGMINER: End mining logfile for session 5 thread 1 sequence 64908, +DATADG/CLAIMDB/ONLINELOG/group_2.260.986210291
2021-08-31T06:14:58.345755+08:00
LOGMINER: Begin mining logfile for session 5 thread 1 sequence 64909, +DATADG/CLAIMDB/ONLINELOG/group_6.36902.986209065
2021-08-31T06:14:58.515287+08:00
LOGMINER: End mining logfile for session 3 thread 1 sequence 64908, +DATADG/CLAIMDB/ONLINELOG/group_2.260.986210291
2021-08-31T06:14:58.527255+08:00
LOGMINER: Begin mining logfile for session 3 thread 1 sequence 64909, +DATADG/CLAIMDB/ONLINELOG/group_6.36902.986209065
2021-08-31T07:52:22.380101+08:00
Thread 1 advanced to log sequence 64910 (LGWR switch)
Current log# 7 seq# 64910 mem# 0: +DATADG/CLAIMDB/ONLINELOG/group_7.36898.986209659
2021-08-31T07:52:22.622019+08:00
TT02: Standby redo logfile selected for thread 1 sequence 64910 for destination LOG_ARCHIVE_DEST_4
TT02: Standby redo logfile selected for thread 1 sequence 64910 for destination LOG_ARCHIVE_DEST_2
2021-08-31T07:52:24.607995+08:00
Archived Log entry 225685 added for T-1.S-64909 ID 0x54b61165 LAD:1
2021-08-31T07:52:25.895062+08:00
LOGMINER: End mining logfile for session 5 thread 1 sequence 64909, +DATADG/CLAIMDB/ONLINELOG/group_6.36902.986209065
2021-08-31T07:52:25.895655+08:00
LOGMINER: End mining logfile for session 3 thread 1 sequence 64909, +DATADG/CLAIMDB/ONLINELOG/group_6.36902.986209065
2021-08-31T07:52:25.908050+08:00
LOGMINER: Begin mining logfile for session 3 thread 1 sequence 64910, +DATADG/CLAIMDB/ONLINELOG/group_7.36898.986209659

解决

问题描述:数据库alert日志报ORA-00600错误,只在数据库收集统计信息的时候报这个错误。从trace文件可以看到就是在收集某一张表统计信息出现问题。在我的数据库环境中,单实例,RAC都出现了这个问题。在MOS提过SR后,Oracle给出了解决办法。12C很多数据库都会遇到该问题,这里记录一下解决过程。

数据库版本:12.2.0.1.0

系统:CentOS Linux release 7.5/Red Hat Enterprise Linux Server release 7.5

报错信息:

Errors in file /opt/app/oracle/diag/rdbms/prod/prod1/trace/prod1_j000_80466.trc (incident=1007661):
ORA-00600: internal error code, arguments: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], []
ORA-06512: at “SYS.DBMS_STATS”, line 1976
ORA-06512: at “SYS.DBMS_STATS”, line 46935
ORA-06512: at “SYS.DBMS_STATS”, line 47168
Incident details in: /opt/app/oracle/diag/rdbms/prod/prod1/incident/incdir_1007661/prod1_j000_80466_i1007661.trc

prod1_j000_80466_i1007661.trc

Dump file /opt/app/oracle/diag/rdbms/prod/prod1/incident/incdir_1007661/prod1_j000_80466_i1007661.trc
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Build label: RDBMS_12.2.0.1.0_LINUX.X64_170125
ORACLE_HOME: /opt/app/oracle/product/12.2.0/db_1
System name: Linux
Node name: prodblsg51
Release: 4.1.12-112.16.4.el7uek.x86_64
Version: #2 SMP Mon Mar 12 23:57:12 PDT 2018
Machine: x86_64
Instance name: prod1
Redo thread mounted by this instance: 1
Oracle process number: 357
Unix process pid: 80466, image: oracle@prodblsg51 (J000)

*** 2019-01-26T19:34:42.282056+08:00
*** SESSION ID:(574.16808) 2019-01-26T19:34:42.282084+08:00
*** CLIENT ID:() 2019-01-26T19:34:42.282089+08:00
*** SERVICE NAME:(SYS U S E R S ) 2019 − 01 − 26 T 19 : 34 : 42.282094 + 08 : 00 ∗ ∗ ∗ M O D U L E N A M E : ( D B M S S C H E D U L E R ) 2019 − 01 − 26 T 19 : 34 : 42.282099 + 08 : 00 ∗ ∗ ∗ A C T I O N N A M E : ( O R A USERS) 2019-01-26T19:34:42.282094+08:00 *** MODULE NAME:(DBMS_SCHEDULER) 2019-01-26T19:34:42.282099+08:00 *** ACTION NAME:(ORA USERS)20190126T19:34:42.282094+08:00MODULENAME:(DBMSSCHEDULER)20190126T19:34:42.282099+08:00ACTIONNAME:(ORAAT_OS_OPT_SY_4192) 2019-01-26T19:34:42.282104+08:00
*** CLIENT DRIVER:() 2019-01-26T19:34:42.282109+08:00

[TOC00000]
Jump to table of contents
Dump continued from file: /opt/app/oracle/diag/rdbms/prod/prod1/trace/prod1_j000_80466.trc
[TOC00001]
ORA-00600: internal error code, arguments: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [], []
ORA-06512: at “SYS.DBMS_STATS”, line 1976
ORA-06512: at “SYS.DBMS_STATS”, line 46935
ORA-06512: at “SYS.DBMS_STATS”, line 47168

[TOC00001-END]
[TOC00002]
========= Dump for incident 1007661 (ORA 600 [ORA-00600: internal error code, arguments: [qosdExpStatRead: expcnt mismatch], [], [], [], [], [], [], [], [], [], [],]) ========

*** 2019-01-26T19:34:42.282600+08:00
dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
[TOC00003]
----- SQL Statement (None) -----
Current SQL information unavailable - no cursor.
[TOC00003-END]
根据Oracle给出的检查SQL,执行结果如下:

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

OBJN SNAPSHOT_ID EXP_CNT CNT OBJN SNAPSHOT_ID


587745 1 5 65541 587745 1  
该问的引起原因:
============
由于 sys.exp_obj . E X P C N T 与 s y s . e x p s t a t . EXP_CNT与sys.exp_stat .EXPCNTsys.expstat的行数不匹配引起。

解决方案:
=============
1.备份数据库<<<<<<<<<涉及到修改数据字典,我们还是要备份一下数据库的。

  1. 修复问题
    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=587745;

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

----如果没有记录,执行提交

commit;
————————————————
版权声明:本文为CSDN博主「perfeader」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012987186/article/details/87865190

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值