联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
alert日志报ORA-00600[17281]
Thu Aug 2 01:49:39 2012 Errors in file /oracle9/app/admin/acc/udump/acc2_ora_647350.trc: ORA-00600: internal error code, arguments: [17281], [1001], [0x7000007AB9F0A30], [], [], [], [], [] ORA-01001: invalid cursor Thu Aug 2 01:49:39 2012 Errors in file /oracle9/app/admin/acc/udump/acc2_ora_647350.trc: ORA-00600: internal error code, arguments: [17281], [1001], [0x7000007AB9F0A30], [], [], [], [], [] ORA-01001: invalid cursor ORA-00600: internal error code, arguments: [17281], [1001], [0x7000007AB9F0A30], [], [], [], [], [] ORA-01001: invalid cursor
分析trace文件
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 = /oracle9/app/product/9.2.0 System name: AIX Node name: zwq_acc2 Release: 3 Version: 5 Machine: 00CFFB554C00 Instance name: acc2 Redo thread mounted by this instance: 2 Oracle process number: 1598 Unix process pid: 647350, image: oracle@zwq_acc2 (TNS V1-V3) *** SESSION ID:(1643.29233) 2012-08-02 00:01:44.423 *** 2012-08-02 00:01:44.423 ksedmp: internal or fatal error ORA-00600: internal error code, arguments: [17281], [1001], [0x7000007AB9F0A30], [], [], [], [], [] 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 :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) -------------------- -------- -------------------- ---------------------------- ksedmp+0148 bl ksedst 1029746FC ? ksfdmp+0018 bl 01FD4014 kgeriv+0118 bl _ptrgl kgeasi+00cc bl kgeriv 000000000 ? 110347AE0 ? 1101A1738 ? 110380110 ? 110380420 ? kgicli+0164 bl kgeasi 110006308 ? 110386088 ? 438100004381 ? 200000002 ? 200000002 ? 000000000 ? 0000003E9 ? 000000002 ? kgidlt+03a0 bl kgicli 110287AA0 ? 000000168 ? kgidel+0018 bl kgidlt 11003DD08 ? 110062138 ? 000000069 ? 000000000 ? 000000000 ? perabo+00cc bl kgidel 000000000 ? 000000000 ? perdcs+0038 bl perabo 000000120 ? 000000012 ? 70000000005C390 ? peidcs+00ac bl perdcs 110002A20 ? 70000000007A450 ? kkxcls+00bc bl peidcs FFFFFFFFFFFA298 ? 110349708 ? kxscln+0048 bl kkxcls 1031628A8 ? kkscls+0268 bl kxscln 110349F60 ? opicca+00f0 bl kkscls 1009E8034 ? FFFFFFFFFFFA4C0 ? opiclo+0020 bl opicca FFFFFFFFFFFA810 ? kpoclsa+004c bl opiclo 000000002 ? opiodr+08cc bl _ptrgl ttcpip+0cc4 bl _ptrgl opitsk+0d60 bl ttcpip 11000CF90 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? opiino+0758 bl opitsk 000000000 ? 000000000 ? opiodr+08cc bl _ptrgl opidrv+032c bl opiodr 3C00000018 ? 4101FAF78 ? FFFFFFFFFFFF7A0 ? 0A000F000 ? sou2o+0028 bl opidrv 3C0C000000 ? 4A02C3B50 ? FFFFFFFFFFFF7A0 ? main+0138 bl 01FD3A28 __start+0098 bl main 000000000 ? 000000000 ? --------------------- Binary Stack Dump --------------------- SO: 70000067d802e90, type: 2, owner: 0, flag: INIT/-/-/0x00 (process) Oracle pid=1598, calls cur/top: 7000006f50c45f0/7000006f50c45f0, flag: (0) - int error: 0, call error: 0, sess error: 0, txn error 0 (post info) last post received: 0 0 0 last post received-location: No post last process to post me: 70000067d5eedf8 2 6 last post sent: 0 0 0 last post sent-location: No post last process posted by me: none (latch info) wait_event=0 bits=0 Process Group: DEFAULT, pseudo proc: 7000006815fe518 O/S info: user: oraacc, term: UNKNOWN, ospid: 647350 OSD pid info: Unix process pid: 647350, image: oracle@zwq_acc2 (TNS V1-V3) ---------------------------------------- SO: 70000068169e7b8, type: 4, owner: 70000067d802e90, flag: INIT/-/-/0x00 (session) trans: 0, creator: 70000067d802e90, flag: (41) USR/- BSY/-/-/-/-/- DID: 0000-0000-00000000, short-term DID: 0000-0000-00000000 txn branch: 0 oct: 0, prv: 0, sql: 700000980c32508, psql: 700000980c32508, user: 44/DBRPT O/S info: user: wusp9, term: AHMWUSP9, ospid: 2812:1900, machine: AH\AHMWUSP9 program: last wait for 'SQL*Net message from client' blocking sess=0x0 seq=13 wait_time=3647540 driver id=54435000, #bytes=1, =0 temporary object counter: 0
这里可以看出当前执行的sql是一种框架中发生,但是从PROCESS STATE未找到登录客户端名称,但是从machine中大概可以估算出来是windows机器.通过查询V$sql找出MODULE
SQL> select module,last_load_time from V$sql where sql_text like 'declare cursor NlsParamsCursor is%'; MODULE LAST_LOAD_TIME --------------- ---------------------------------- Toad.exe 2012-08-02/00:01:44
从这里可以确定,是因为TOAD登录数据库出现该错误,查询MOS发现相关内容ORA-600 [17281] using TOAD [ID 329531.1]
解决方法
You can also overcome this by patching the Oracle Client software as follows.: 1. Fix unpublished Bug 4359111, if the Oracle software is 10.1.0.4 or below. Patches for this bug can be found on My Oracle Support under Patch:4359111. 2. Fix unpublished bug 5910901 by applying Patch:5910901 if the Oracle software is 10.1.0.5 or above, 3. Apply the 10.2.0.4 patch set or above on the client. 4. You can change the non-Oracle client software being used, 5. You can just ignore the error as it is non-corruptive. 6. Run the queries directly through SQLPLUS instead of using TOAD. **Ensure that your version of TOAD is compatible with the version of the database as well. If the errors continue when using TOAD, but not with SQL*Plus, contact TOAD support to request a fix.**