联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
数据库版本信息
SQL> select * from gv$version; INST_ID BANNER ---------- ---------------------------------------------------------------- 1 Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production 1 PL/SQL Release 9.2.0.8.0 - Production 1 CORE 9.2.0.8.0 Production 1 TNS for IBM/AIX RISC System/6000: Version 9.2.0.8.0 - Production 1 NLSRTL Version 9.2.0.8.0 - Production 2 Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production 2 PL/SQL Release 9.2.0.8.0 - Production 2 CORE 9.2.0.8.0 Production 2 TNS for IBM/AIX RISC System/6000: Version 9.2.0.8.0 - Production 2 NLSRTL Version 9.2.0.8.0 - Production 10 rows selected.
早上检查某运营商的结算数据库时发现
Mon Feb 6 16:03:23 2012 Errors in file /oracle9/app/admin/settl/udump/settl1_ora_1355948.trc: ORA-00600: internal error code, arguments: [4454], [], [], [], [], [], [], [] Mon Feb 6 16:03:23 2012 Errors in file /oracle9/app/admin/settl/udump/settl1_ora_1355948.trc: ORA-00600: internal error code, arguments: [4454], [], [], [], [], [], [], []
trace文件信息
*** SESSION ID:(100.35758) 2012-02-06 16:03:23.223 *** 2012-02-06 16:03:23.223 ksedmp: internal or fatal error ORA-00600: internal error code, arguments: [4454], [], [], [], [], [], [], [] Current SQL statement for this session: select trim(operator_id) into :b1 from b_sys_proc where program_name=:b2 ----- Call Stack Trace ----- calling call entry argument values in hex location type point (? means dubious value) -------------------- -------- -------------------- ---------------------------- ksedmp+0148 bl ksedst 1029746CC ? ksfdmp+0018 bl 01FD4010 kgeriv+0118 bl _ptrgl kgeasi+00cc bl kgeriv 1101FAF48 ? 110248038 ? 00000000C ? 110235978 ? 000000040 ? ktcsptg+00c4 bl kgeasi 1100062D8 ? 110389E88 ? 116600001166 ? 200000002 ? 000000000 ? 70000010738F0E8 ? 0FFFFFFFF ? 0FFFFFFFF ? opiexe+0524 bl ktcsptg 000000000 ? 000000000 ? opiefn0+01c0 bl opiexe 49FFFFA640 ? 4900000001 ? FFFFFFFFFFFA5C8 ? opiefn+0100 bl opiefn0 01000CF60 ? 1029C61B0 ? 000000002 ? FFFFFFFFFFFC1BC ? 000000001 ? 00000000C ? 00000000B ? 110061F50 ? opiodr+08cc bl _ptrgl ttcpip+0cc4 bl _ptrgl opitsk+0d60 bl ttcpip 11000CF60 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? opiino+0758 bl opitsk 000000000 ? 000000000 ? opiodr+08cc bl _ptrgl opidrv+032c bl opiodr 3C00000018 ? 4101FAF48 ? FFFFFFFFFFFF790 ? 0A000EEA8 ? sou2o+0028 bl opidrv 3C0C000000 ? 4A0147B50 ? FFFFFFFFFFFF790 ? main+0138 bl 01FD3A28 __start+0098 bl main 000000000 ? 000000000 ? ……………… SO: 70000010738f0e8, type: 4, owner: 7000001043acd90, flag: INIT/-/-/0x00 (session) trans: 70000010dde1dd8, creator: 7000001043acd90, flag: (100041) USR/- BSY/-/-/-/-/- DID: 0001-0064-7625733A, short-term DID: 0000-0000-00000000 txn branch: 7000001147dbed8 oct: 0, prv: 0, sql: 700000117b7f778, psql: 0, user: 24/SETTLE O/S info: user: settle, term: , ospid: 1400836, machine: zwq_jies2 program: /settlement/pkg01/bin/long/long_app@zwq_jies2 (T application name: /settlement/pkg01/bin/long/long_app@zwq_jies2 (T, hash value=0 last wait for 'SQL*Net message from client' blocking sess=0x0 seq=483 wait_time=240 driver id=54435000, #bytes=1, =0
查询MOS,发现是Bug# 1402161(虽然在mos中声明该bug是在9.2.0.1中已经被修复,但是这里的trace文件中的Call Stack Trace和mos中记录一致,而且网络上也存在很多9.2.0.8中关于该bug的情况),trace文件最后一段可以看出是在节点2上(zwq_jies2)运行/settlement/pkg01/bin/long/long_app程序导致出现该错误
产生该错误原因:
This exception is signalled because the savepoint number is not what was expected. The current transaction savepoint is less than the beginning savepoint of the transaction.
解决方法:
把/settlement/pkg01/bin/long/long_app中的需要运行的程序分割成几个小程序运行。
Break the job into smaller chunks and reconnect for each part of the job to reset the savepoint number.