发表于: 2011.03.10 21:48
分类: ORACLE , Bug
出处: http://yangtingkun.itpub.net/post/468/514806
---------------------------------------------------------------
在客户的9.2.0.8 RAC环境的数据库中,发现了这个错误。
在alert中的错误信息为:
Fri Feb 11 11:14:11 2011
Errors in file /u01/product/admin/RAC/udump/rac2_ora_1437816.trc:
ORA-00600: internal error code, arguments: [17281], [1001], [0x7000000F9917C90], [], [], [], [], []
ORA-01001: invalid cursor
Fri Feb 11 11:14:11 2011
Errors in file /u01/product/admin/RAC/udump/rac2_ora_1437816.trc:
ORA-00600: internal error code, arguments: [17281], [1001], [0x7000000F9917C90], [], [], [], [], []
ORA-01001: invalid cursor
Fri Feb 11 11:14:12 2011
Errors in file /u01/product/admin/RAC/udump/rac2_ora_1437816.trc:
ORA-00600: internal error code, arguments: [17281], [1001], [0x7000000F9917C90], [], [], [], [], []
ORA-01001: invalid cursor
ORA-00600: internal error code, arguments: [17281], [1001], [0x7000000F9917C90], [], [], [], [], []
ORA-01001: invalid cursor
Fri Feb 11 11:14:12 2011
Trace dumping is performing id=[cdmp_20110211111412]
对应的trace文件信息为:
p55a2$more /u01/product/admin/RAC/udump/rac2_ora_1437816.trc
/u01/product/admin/RAC/udump/rac2_ora_1437816.trc
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
ORACLE_HOME = /u01/product/oracle/9.2.0
System name: AIX
Node name: p55a2
Release: 3
Version: 5
Machine: 0001CFDDD600
Instance name: RAC2
Redo thread mounted by this instance: 2
Oracle process number: 211
Unix process pid: 1437816, image: oracle@p55a2 (TNS V1-V3)
*** SESSION ID:(170.50190) 2011-02-11 11:14:11.260
*** 2011-02-11 11:14:11.260
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [17281], [1001], [0x7000000F9917C90], [], [], [], [], []
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(65536)), 1)) INTO :CharL
ength FROM dual; for NlsRecord in NlsParamsCursor loop if NlsRecord.parameter = 'NLS_DATE_LANGUAGE' then :NlsDateLanguage := NlsRecord.value; els
if NlsRecord.parameter = 'NLS_DATE_FORMAT' then :NlsDateFormat := NlsRecord.value; elsif NlsRecord.parameter = 'NLS_NUMERIC_CHARACTERS' then :Nl
sNumericCharacters := NlsRecord.value; elsif NlsRecord.parameter = 'NLS_TIMESTAMP_FORMAT' then :NlsTimeStampFormat := NlsRecord.value; elsif NlsRe
cord.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)
-------------------- -------- -------------------- ----------------------------
ksedmp+0148 bl ksedst 102974684 ?
ksfdmp+0018 bl 01FD3FC8
kgeriv+0118 bl _ptrgl
kgeasi+00cc bl kgeriv 000000000 ? 110339570 ?
1101A1690 ? 11035E270 ?
11035E580 ?
kgicli+0164 bl kgeasi 110006288 ? 110356E28 ?
438100004381 ? 200000002 ?
200000002 ? 000000000 ?
0000003E9 ? 000000002 ?
kgidlt+03a0 bl kgicli 110279C20 ? 110279948 ?
kgidel+0018 bl kgidlt 11003DC88 ? 1100620B8 ?
000000069 ? 000000000 ?
000000000 ?
perabo+00cc bl kgidel 7000000FE7C91C0 ?
7000000F37CCF38 ?
perdcs+0038 bl perabo 7000000FCAA7290 ? 110006288 ?
1100029A0 ?
peidcs+00ac bl perdcs 7000000FCAA7290 ? 110006288 ?
kkxcls+00bc bl peidcs FFFFFFFFFFFA468 ? 11033B198 ?
kxscln+0048 bl kkxcls 103162830 ?
kkscls+0268 bl kxscln 11033B9A8 ?
opicca+00f0 bl kkscls 1009E7FEC ? FFFFFFFFFFFA690 ?
opiclo+0020 bl opicca FFFFFFFFFFFA9E0 ?
kpoclsa+004c bl opiclo 000000002 ?
opiodr+08cc bl _ptrgl
ttcpip+0cc4 bl _ptrgl
opitsk+0d60 bl ttcpip 11000CF10 ? 000000000 ?
000000000 ? 000000000 ?
000000000 ? 000000000 ?
000000000 ? 000000000 ?
opiino+0758 bl opitsk 000000000 ? 000000000 ?
opiodr+08cc bl _ptrgl
opidrv+032c bl opiodr 3C00000018 ? 4101FAED0 ?
FFFFFFFFFFFF970 ? 0A00F8D18 ?
sou2o+0028 bl opidrv 3C0C000000 ? 4A0142C60 ?
FFFFFFFFFFFF970 ?
main+0138 bl 01FD39E0
__start+0098 bl main 000000000 ? 000000000 ?
查询了一下metalink,发现问题是由于open_cursors参数设置偏小造成的,Oracle在文档[ID 793061.1]中描述了这个问题。Oracle给出的解决方案是增加初始化参数open_cursors的值。
检查数据库发现这个值是默认值300,确实比较小,看来问题多半就是由于这个参数引起的。
SQL> show parameter open_cursors
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_cursors integer 300
根据Oracle的建议,增大了参数值。











