某省电信行业公司数据库ORA-00600 [15160]处理
系统:HP-UX B.11.31
是否RAC:YES
数据库详细版本:10.2.0.4
1. 问题背景
2014-02-26上午10:13:39dbrac库节点2,在alert日志中发现很多ORA-600错误,经分析是表test_wait的统计信息出错导致,重新分析该表的统计信息,错误消除。
2. DBRAC库错误处理过程
1、查看alert日志如下:
Wed Feb 26 10:11:18 2014
Errors in file /Oracle/admin/dbrac/udump/dbrac2_ora_14794.trc:
ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], []
Wed Feb 26 10:12:29 2014
Errors in file /oracle/admin/dbrac/udump/dbrac2_ora_14794.trc:
ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], []
Wed Feb 26 10:13:39 2014
Errors in file /oracle/admin/dbrac/udump/dbrac2_ora_29891.trc:
ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], []
2、继续分析trace日志如下:
/oracle/admin/dbrac/udump/dbrac2_ora_29891.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/product/10.2.0/db
System name: HP-UX
Node name: dbrac2
Release: B.11.31
Version: U
Machine: ia64
Instance name: dbrac2
Redo thread mounted by this instance: 2
Oracle process number: 121
Unix process pid: 29891, image: oracle@dbrac2
*** ACTION NAME:() 2014-02-26 10:13:39.698
*** MODULE NAME:(BusiMonitor@ccjkp1 (TNS V1-V3)) 2014-02-26 10:13:39.698
*** SERVICE NAME:(dbrac) 2014-02-26 10:13:39.698
*** SESSION ID:(1491.11581) 2014-02-26 10:13:39.698
*** 2014-02-26 10:13:39.698
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], []
Current SQL statement for this session:
select 'M-6M-LM-PM-EM-IM-OM-PM-PM-JM-}M->M-]test_waitM-SM-P'||count(1)||'M-LM-uM-<M-GM-BM-<M-QM-OM-VM-XM-3M-,M-JM-1M-#M-,M-NM-4M-<M-0M-JM-1M-GM-eM-@M-mM-#M-!' fr
om test_wait where recvtime < sysdate -10/1440 and stepnow=0 having
count(1) >=1
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedst()+64 call ksedst1() 000000000 ? 000000001 ?
ksedmp()+2176 call ksedst() 000000000 ?
C000000000000C9F ?
4000000003ECA500 ?
000000000 ? 000000000 ?
000000000 ?
ksfdmp()+48 call ksedmp() 000000003 ?
kgeriv()+336 call ksfdmp() C000000000000695 ?
000000003 ?
4000000009382BA0 ?
000020127 ? 000000000 ?
000000000 ? 000000000 ?
000000000 ?
kgesiv()+192 call kgeriv() 6000000000031370 ?
6000000000032428 ?
40000000018D14C0 ?
000000000 ?
9FFFFFFFFFFEE7E8 ?
3、进一步分析是有以下SQL触发ORA-600
select 'M-6M-LM-PM-EM-IM-OM-PM-PM-JM-}M->M-]test_waitM-SM-P'||count(1)||'M-LM-uM-<M-GM-BM-<M-QM-OM-VM-XM-3M-,M-JM-1M-#M-,M-NM-4M-<M-0M-JM-1M-GM-eM-@M-mM-#M-!' fr
om test_wait where recvtime < sysdate -10/1440 and stepnow=0 having count(1) >=1
--------------------------------------分割线 --------------------------------------
--------------------------------------分割线 --------------------------------------