sitemap

RSS地图

收藏本站

设为首页

Oracle研究中心

当前位置:Oracle研究中心 > 故障案例 >

【案例】Oracle报错ORA-00600 [kdsgrp1]产生原因和MOS官方解决办法

时间:2016-11-13 20:03   来源:Oracle研究中心   作者:网络   点击:

天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle 11.2.0.3 RAC FOR ASM数据库一节点出现报错ORA-00600 [kdsgrp1],结合官方文档分析为index异常导致。

Fri Jun 24 09:06:49 2011
Thread 1 advanced to log sequence 7331
  Current log# 2 seq# 7331 mem# 0: +DG_DATA/cmsdb1/onlinelog/redo02_1.log
  Current log# 2 seq# 7331 mem# 1: +DG_DATA/cmsdb1/onlinelog/redo02_2.log
Fri Jun 24 10:32:58 2011
Errors in file /oracle/admin/cmsdb1/udump/cmsdb11_ora_2083.trc:
ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []
Fri Jun 24 10:33:05 2011
Trace dumping is performing id=[cdmp_20110624103305]
Fri Jun 24 10:33:18 2011
###### 省略部分内容 ######
Fri Jun 24 15:09:28 2011
Errors in file /oracle/admin/cmsdb1/udump/cmsdb11_ora_8188.trc:
ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []
Fri Jun 24 15:09:29 2011
Trace dumping is performing id=[cdmp_20110624150929]

分析某个trace文件:

*** 2011-06-24 10:33:20.755
*** SERVICE NAME:(cmsdb1) 2011-06-24 10:33:20.731
*** SESSION ID:(173.17308) 2011-06-24 10:33:20.731
            row 02099eae.1 continuation at
            file# 8 block# 630446 slot 2 not found
**************************************************
KDSTABN_GET: 0 ….. ntab: 1
curSlot: 2 ….. nrows: 8
**************************************************
*** 2011-06-24 10:33:20.755
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []
Current SQL statement for this session:
SELECT m.url,p.pubtime  FROM mastersite m, pagelayout p  WHERE m.nodeid = p.nodeid and m.articleid=p.articleid  AND p.pubtime BETWEEN SYSDATE – (:”SYS_B_0″ / :”SYS_B_1″) AND SYSDATE  AND m.url IS NOT NULL  AND m.url not like :”SYS_B_2″  order by p.pubtime
—– Call Stack Trace —–
calling              call     entry                argument values in hex    
location             type     point                (  means dubious value)   
——————– ——– ——————– —————————-
ksedmp()+744         CALL     ksedst()             000000840 
                                                   FFFFFFFF7FFF915C 
                                                   000000000 
                                                   FFFFFFFF7FFF5C50 
                                                   FFFFFFFF7FFF49B8 
                                                   FFFFFFFF7FFF53B8 
kgerinv()+200        PTR_CALL 0000000000000000     000106400   10652C964 
                                                   10652C000   00010652C 
                                                   000106400   10652C964 
kgeasnmierr()+28     CALL     kgerinv()            106527318   000000000 
                                                   10610F130   000000000 
                                                   FFFFFFFF7FFF9600 
                                                   000001430 
kdsgrp()+1252        CALL     kgeasnmierr()        106527318 
                                                   FFFFFFFF7CF26270 
                                                   10610F130   000000000 
                                                   10610F000   00010610F 
kdsfbr()+240         CALL     kdsgrp()             FFFFFFFF7CF575E0 
                                                   000000000   000106000 
                                                   10610F130   000000000 
                                                   10652C958 
qertbFetchByRowID()  CALL     kdsfbr()             FFFFFFFF7CF575E0 
+996                                               FFFFFFFF7CF57CCC 
                                                   FFFFFFFF7CF575E0 
                                                   000106529   800137DC0 
                                                   106529DB0 
qergiFetch()+344     PTR_CALL 0000000000000000     1056DA000   0000010E4 
                                                   000000000   000000001 
                                                   FFFFFFFF7CF57548 
                                                   FFFFFFFF7CF57CC8 
qerjoFetch()+580     PTR_CALL 0000000000000000     47A4819D0   000000000 
                                                   000000000 
                                                   FFFFFFFF7CF57738 
                                                   000000027   000000800 
qertbFetchByRowID()  PTR_CALL 0000000000000000     000000000   1031FF060 
+556                                               FFFFFFFF7CF57C60 
                                                   47A4815E0   47A4813F8 
                                                   000008000 
rwsfcd()+120         PTR_CALL 0000000000000000     FFFFFFFF7CF5AC78 
                                                   000000040   47A481140 
                                                   000007FFF   47A4810D0 
                                                   00000013C 
qerflFetch()+172     PTR_CALL 0000000000000000     47A480B30   10320D5A0 
                                                   FFFFFFFF7FFFA908 
                                                   000007FFF   0000003C0 
                                                   105A287B0 
qersoFetch()+720     PTR_CALL 0000000000000000     FFFFFFFF7CF5C260 
                                                   103291C80   47A4806E0 
                                                   000007FFF   10320D000 
                                                   103290B40 
opifch2()+8092       CALL     kpofrws()            105A287B0   1024D8940 
                                                   105A28000 
                                                   FFFFFFFF7CF5C278 
                                                   000000020   47A4809B8 
kpoal8()+4196        CALL     opifch2()            000000020 
                                                   FFFFFFFF7CF3A830 
                                                   000000000   000106400 
                                                   000000001   47A4861E8 
opiodr()+1548        PTR_CALL 0000000000000000     000000020   000000000 
                                                   000105800   000000004 
                                                   000000000   106534460 
ttcpip()+1284        PTR_CALL 0000000000000000     10576A380   00000005E 
                                                   106527200   000000001 
                                                   FFFFFFFF7CF3A830 
                                                   000106529 
opitsk()+1432        CALL     ttcpip()             0000001AF 
                                                   FFFFFFFF7FFFD220 
                                                   1056C06EC   1056BDED0 
                                                   000000000   106527318 
opiino()+1128        CALL     opitsk()             106534468   000000001 
                                                   000000000   106534460 
                                                   105884B38   0FFFFFFFD 
opiodr()+1548        PTR_CALL 0000000000000000     000106400   106529D98 
                                                   000106400   106529000 
                                                   000106400   106534460 
opidrv()+896         CALL     opiodr()             1065335D8   00000003C 
                                                   000106400   1065343E0 
                                                   000106534   000106529 
sou2o()+80           CALL     opidrv()             106536B60   000000000 
                                                   00000003C   106533898 
                                                   00000003C   000000000 
opimai_real()+124    CALL     sou2o()              FFFFFFFF7FFFF978 
                                                   00000003C   000000004 
                                                   FFFFFFFF7FFFF9A0 
                                                   105E0E000   000105E0E 
main()+152           CALL     opimai_real()        000000002 
                                                   FFFFFFFF7FFFFA78 
                                                   104051BEC   1064CF450 
                                                   00247D764   000014800 
_start()+380         CALL     main()               000000002   000000008 
                                                   000000000 
                                                   FFFFFFFF7FFFFA88 
                                                   FFFFFFFF7FFFFB98 
                                                   FFFFFFFF7D500200 

其中找了MOS两篇比较有价值而且比较靠谱的文章,如下:

Getting Ora-600 [kdsgrp1] On A Select [ID 429746.1]
After Upgrade To 10203 ,Select * From Gv$Aq Returns Ora-00600[kdsgrp1] Or [Qertbfetchbyrowid] [ID 603095.1]

最开始看ORA-600 [kdsgrp1] [ID 285586.1] 这篇文档的时候,我感觉这个问题很可能就是bug,然而看了上面2篇文章以后,
感觉不见得一定就是bug,另外还看了好几篇文档,都是与index相关或CR相关的,所以我断定这个问题是index和table之间
的数据不一致导致
的。

其中Getting Ora-600 [kdsgrp1] On A Select [ID 429746.1] 这篇是最有价值的,提供了一个解决思路:

首先根据ora-600错误提到的file和block号,定位到具体的对象:

SELECT tablespace_name, segment_type, owner, segment_name
FROM dba_extents
WHERE file_id = 8
AND 630446 BETWEEN block_id AND block_id + blocks - 1;


然后从trace中搜索 Plan Table,找到执行计划,根据前面查到的对象,然后确定到具体的index名称。

============
Plan Table
============
------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                               | Name                   | Rows  | Bytes | Cost  | Time      | Pstart| Pstop |
------------------------------------------------------------------------------------------------------------------------------
| 0   | SELECT STATEMENT                        |                        |       |       |  1230 |           |       |       |
| 1   |  COUNT STOPKEY                          |                        |       |       |       |           |       |       |
| 2   |   VIEW                                  |                        |   113 |  867K |  1230 |  00:00:15 |       |       |
| 3   |    SORT ORDER BY STOPKEY                |                        |   113 |  155K |  1230 |  00:00:15 |       |       |
| 4   |     NESTED LOOPS OUTER                  |                        |   113 |  155K |  1229 |  00:00:15 |       |       |
| 5   |      PARTITION RANGE SINGLE             |                        |   113 |  149K |  1228 |  00:00:15 | KEY   | KEY   |
| 6   |       TABLE ACCESS BY LOCAL INDEX ROWID | PAGELAYOUT             |   113 |  149K |  1228 |  00:00:15 | KEY   | KEY   |
| 7   |        INDEX RANGE SCAN                 | IDX_PAGELAYOUT_T_NODEID|   214 |       |     7 |  00:00:01 | KEY   | KEY   |
| 8   |      TABLE ACCESS BY INDEX ROWID        | DATASNIPARTICLE        |     1 |    57 |     1 |  00:00:01 |       |       |
| 9   |       INDEX UNIQUE SCAN                 | SYS_C0034918           |     1 |       |     0 |           |       |       |
------------------------------------------------------------------------------------------------------------------------------

最后drop和recreate该index即可解决该问题。
补充:从别的trace中,还发现了update语句出现该错误,如下:

*** 2011-06-24 10:33:18.007
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []
Current SQL statement for this session:
update pagelayout set publishstate=:1 where articleid = :2 and (masterid = :3 or nodeid = :4)

从而我确定是表pagelayout上的某个index出现问题。

--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【案例】Oracle报错ORA-00600 [kdsgrp1]产生原因和MOS官方解决办法

本文由大师惜分飞原创分享,网址:http://www.oracleplus.net/arch/1255.html

Oracle研究中心

关键词:

ORA-00600

ORA-00600 [kdsgrp1]

Oracle rac(asm)节点报ORA-00600错误