ORA-600(17281)(1001)错误(二)

和第一次碰到这个错误不同,这次是在10.2环境中出现的。
ORA-600(17281)(1001)错误:http://yangtingkun.itpub.net/post/468/514806
告警日志中错误信息为:

Tue Jan 31 15:55:55 2012
Errors IN file /oracle/admin/ORCL/udump/orcl_ora_6225970.trc:
ORA-00600: internal error code, arguments: [17281], [1001], [0x70000059AB9BE38], [], [], [], [], []
ORA-01001: invalid cursor

详细TRACE信息如下:

Dump file /oracle/admin/ORCL/udump/orcl_ora_6225970.trc
Oracle DATABASE 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
WITH the Partitioning, OLAP AND DATA Mining options
ORACLE_HOME = /oracle/orcl/10.2.0
System name:	AIX
Node name:	porcl2
Release:	1
Version:	6
Machine:	00F67AD94C00
Instance name: ORCL
Redo thread mounted BY this instance: 1
Oracle process NUMBER: 503
Unix process pid: 6225970, image: oracleORCL@porcl2
*** SERVICE NAME:(SYS$USERS) 2012-01-31 15:55:55.419
*** SESSION ID:(4136.11880) 2012-01-31 15:55:55.419
*** 2012-01-31 15:55:55.419
ksedmp: internal OR fatal error
ORA-00600: internal error code, arguments: [17281], [1001], [0x70000059AB9BE38], [], [], [], [], []
ORA-01001: invalid cursor
CURRENT SQL statement FOR this SESSION:
DECLARE  cursor NlsParamsCursor IS    SELECT * FROM nls_session_parameters;BEGIN  SELECT Nvl(Lengthb(Chr(65536)), Nvl(Lengthb(Chr(256)), 1))    INTO :CharLength FROM dual;  FOR NlsRecord IN NlsParamsCursor loop    IF NlsRecord.parameter = 'NLS_DATE_LANGUAGE' THEN      :NlsDateLanguage := NlsRecord.value;    elsif NlsRecord.parameter = 'NLS_DATE_FORMAT' THEN      :NlsDateFormat := NlsRecord.value;    elsif NlsRecord.parameter = 'NLS_NUMERIC_CHARACTERS' THEN      :NlsNumericCharacters := NlsRecord.value;    elsif NlsRecord.parameter = 'NLS_TIMESTAMP_FORMAT' THEN      :NlsTimeStampFormat := NlsRecord.value;    elsif NlsRecord.parameter = 'NLS_TIMESTAMP_TZ_FORMAT' THEN      :NlsTimeStampTZFormat := NlsRecord.value;    END IF;  END loop;END;
----- Call Stack Trace -----
calling              CALL     entry                argument VALUES IN hex      
location             TYPE     point                (? means dubious VALUE)     
-------------------- -------- -------------------- ----------------------------
ksedst+001c          bl       ksedst1              000000008 ? 000000000 ?
ksedmp+0290          bl       ksedst               1048E2120 ?
ksfdmp+0018          bl       03F34B6C             
kgeriv+0108          bl       _ptrgl               
kgeasi+0118          bl       kgeriv               11046CD88 ? 1101B37C0 ?
                                                   104A364BC ? 7000000100067F8 ?
                                                   000000000 ?
kgicli+0188          bl       kgeasi               110190630 ? 1104AE040 ?
                                                   438100004381 ? 200000002 ?
                                                   200000002 ? 000000000 ?
                                                   0000003E9 ? 000000002 ?
kgidlt+0398          bl       kgicli               000000800 ? 000000001 ?
kgidel+0018          bl       kgidlt               FFFFFFFFFFF91A8 ? 000000000 ?
                                                   000000001 ? 000000000 ?
                                                   FFFFFFFFFFF9558 ?
perabo+00ac          bl       kgidel               FFFFFFFFFFF90E8 ? 1102247F0 ?
perdcs+0034          bl       perabo               FFFFFFFFFFF9440 ? 110190630 ?
                                                   FFFFFFFFFFF91A0 ?
peidcs+01dc          bl       perdcs               FFFFFFFFFFF92F0 ? 110190630 ?
kkxcls+00a4          bl       peidcs               FFFFFFFFFFF9558 ? 11046A640 ?
kxsClean+0044        bl       kkxcls               1100C99F8 ?
kxsCloseXsc+0444     bl       kxsClean             FFFFFFFFFFF9850 ?
kksCloseCursor+031c  bl       kxsCloseXsc          11046D038 ? 000000000 ?
opicca+00c4          bl       kksCloseCursor       104A503C0 ?
opiclo+0098          bl       opicca               1001376F0 ?
kpoclsa+0050         bl       03F35D58             
opiodr+0adc          bl       _ptrgl               
ttcpip+1020          bl       _ptrgl               
opitsk+10b0          bl       ttcpip               1100C99F8 ? 90000000063A614 ?
                                                   FFFFFFFFFFFB680 ?
                                                   2842288400000001 ?
                                                   9000000007307A8 ? 000000001 ?
                                                   11062EAF8 ? FFFFFFFFFFFB820 ?
opiino+0990          bl       opitsk               000010860 ? 000000000 ?
opiodr+0adc          bl       _ptrgl               
opidrv+0474          bl       opiodr               3C1028E590 ? 4102909B0 ?
                                                   FFFFFFFFFFFF490 ? 0A0082608 ?
sou2o+0090           bl       opidrv               3C02AB579C ? 4A0071248 ?
                                                   FFFFFFFFFFFF490 ?
opimai_real+01bc     bl       01FA4A34             
main+0098            bl       opimai_real          000000000 ? 000000000 ?
__start+0070         bl       main                 000000000 ? 000000000 ?
--------------------- Binary Stack Dump ---------------------

查询MOS发现这是JDBC THIN CLIENT导致的,具体文档参考Intermittent ORA-600 [17281], ORA[1001] With JDBC Thin Client [ID 436914.1],这个问题与Bug 4359111非常类似,但是这个bug已经在10.2.0.2中被FIXED,而当前数据库的版本是10.2.0.3,而当前的问题影响的版本就包含10.2.0.3,且堆栈中的错误函数可以完全对应到文档给出的错误信息。
这个问题在10.2.0.4以后被修正,11g中同样修正了这个问题。如果短期数据库不会升级,且错误频繁发生,可以考虑替换客户端的ojdbc14.jar文件为10.2.0.4版,因为这个问题的解决是在JDBC客户端,因此客户端的驱动更新后,这个问题就可以被修正,而不需要升级数据库本身的版本。

This entry was posted in BUG and tagged , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *