联系:手机/微信(+86 17813235971) QQ(107644445)
标题:truncate table强制终止导致ORA-00600[ktspfundo-2]
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
朋友的金蝶erp系统异常abort,让我帮忙分析原因.
ORA-00600[ktspfundo-2]错误
Fri Jul 27 08:53:33 2012 Errors in file /u01/oracle/admin/finance/udump/finance_ora_7687.trc: ORA-00600: internal error code, arguments: [ktspfundo-2], [], [], [], [], [], [], [] ORA-01013: user requested cancel of current operation Fri Jul 27 08:53:33 2012 Errors in file /u01/oracle/admin/finance/udump/finance_ora_7687.trc: ORA-00600: internal error code, arguments: [ktspfundo-2], [], [], [], [], [], [], [] ORA-01013: user requested cancel of current operation Fri Jul 27 08:54:16 2012 Errors in file /u01/oracle/admin/finance/udump/finance_ora_7687.trc: ORA-00600: internal error code, arguments: [ktspfundo-2], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [ktspfundo-2], [], [], [], [], [], [], [] ORA-01013: user requested cancel of current operation Fri Jul 27 08:57:12 2012 Errors in file /u01/oracle/admin/finance/bdump/finance_smon_4156.trc: ORA-00600: internal error code, arguments: [ktspfundo-2], [], [], [], [], [], [], [] Fri Jul 27 08:57:20 2012 ORACLE Instance finance (pid = 15)-Error 600 encountered while recovering transaction (8, 3) on object 34294107. Fri Jul 27 08:57:20 2012 Errors in file /u01/oracle/admin/finance/bdump/finance_smon_4156.trc: ORA-00600: internal error code, arguments: [ktspfundo-2], [], [], [], [], [], [], [] Fri Jul 27 09:07:14 2012 Errors in file /u01/oracle/admin/finance/bdump/finance_smon_4156.trc: ORA-00600: internal error code, arguments: [ktspfundo-2], [], [], [], [], [], [], [] Fri Jul 27 09:07:15 2012 Errors in file /u01/oracle/admin/finance/bdump/finance_pmon_4130.trc: ORA-00474: SMON process terminated with error
从这里可以大概看出数据库在进行一个参数,然后用户终止该操作导致,导致ORA-00600[ktspfundo-2]错误,然后出现smon回滚,因为回滚失败从而使得数据块down掉
分析trace文件
*** 2012-07-27 08:53:33.293 ksedmp: internal or fatal error ORA-00600: internal error code, arguments: [ktspfundo-2], [], [], [], [], [], [], [] ORA-01013: user requested cancel of current operation Current SQL statement for this session: TRUNCATE TABLE VTC3B8DR2G7J926FWOBK839XOR ----- Call Stack Trace ----- calling call entry argument values in hex location type point (? means dubious value) -------------------- -------- -------------------- ---------------------------- ksedst()+31 call ksedst1() 000000000 ? 000000001 ? 7FFF41B0EE70 ? 7FFF41B0EED0 ? 7FFF41B0EE10 ? 000000000 ? ksedmp()+610 call ksedst() 000000000 ? 000000001 ? 7FFF41B0EE70 ? 7FFF41B0EED0 ? 7FFF41B0EE10 ? 000000000 ? ksfdmp()+21 call ksedmp() 000000003 ? 000000001 ? 7FFF41B0EE70 ? 7FFF41B0EED0 ? 7FFF41B0EE10 ? 000000000 ? kgerinv()+161 call ksfdmp() 000000003 ? 000000001 ? 7FFF41B0EE70 ? 7FFF41B0EED0 ? 7FFF41B0EE10 ? 000000000 ? kgeasnmierr()+163 call kgerinv() 0068966E0 ? 2AE87C6E1168 ? 7FFF41B0EED0 ? 7FFF41B0EE10 ? 000000000 ? 000000000 ? ktspfundo()+3902 call kgeasnmierr() 0068966E0 ? 2AE87C6E1168 ? 7FFF41B0EED0 ? 7FFF41B0EE10 ? 000000010 ? 00689C0C0 ? kcoubk()+351 call ktspfundo() 7FFF41B10810 ? 2AE80C800CFA ? 4D6EE6014 ? 000000002 ? 000000010 ? 7FFF41B11128 ? ktundo()+1208 call kcoubk() 7FFF41B111F8 ? 7FFF41B10810 ? 2AE87E384024 ? 000000002 ? 000000002 ? 000000000 ? ktubko()+499 call ktundo() 000000001 ? 010E5C341 ? 2AE87E384020 ? 000000058 ? 000008430 ? 7657E9990 ? ktuabt()+810 call ktubko() 7657E9990 ? 7FFF41B1188C ? 000000002 ? 7FFF41B11648 ? 7FFF41B11570 ? 7FFF41B11870 ? ktcrab()+292 call ktuabt() 7657E98F8 ? 000000002 ? 000000002 ? 7FFF41B11648 ? 7FFF41B11570 ? 7FFF41B11870 ? ktccle()+516 call ktcrab() 7657E98F8 ? 000000002 ? 000000002 ? 7FFF41B11648 ? 7FFF41B11570 ? 7FFF41B11870 ? ksepop()+384 call ktccle() 000000006 ? 000000002 ? 000000002 ? 7FFF41B11648 ? 7FFF41B11570 ? 7FFF41B11870 ? kgepop()+123 call ksepop() 0068966E0 ? 000000006 ? 000000002 ? 7FFF41B11648 ? 7FFF41B11570 ? 7FFF41B11870 ? kgesev()+315 call kgepop() 0068966E0 ? 2AE87C6E1168 ? 0000003F5 ? 7FFF41B11648 ? 7FFF41B11570 ? 7FFF41B11870 ? ksesec0()+186 call kgesev() 0068966E0 ? 2AE87C6E1168 ? 0000003F5 ? 000000000 ? 7FFF41B11B30 ? 7FFF41B11870 ? ksqcmi()+2322 call ksesec0() 000000000 ? 000000000 ? 000001000 ? 000000000 ? 000000013 ? 000000005 ? ksqcnv()+496 call ksqcmi() 77E586B88 ? 000000006 ? 00000FFFF ? 00147AE14 ? 7FFF41B126A0 ? 7FFF41B128A8 ? ksqcov()+44 call ksqcnv() 77E586B88 ? 000000006 ? 000000000 ? 00147AE14 ? 7FFF41B128A8 ? 000000004 ? kcbo_reuse_obj()+14 call ksqcov() 77E586B68 ? 000000006 ? 09 000000000 ? 00147AE14 ? 7FFF41B128A8 ? 000000004 ? kcbrbo()+1126 call kcbo_reuse_obj() 7FFF41B12F04 ? 7FFF41B12F0C ? 000000001 ? 00147AE14 ? 7FFF41B128A8 ? 000000004 ? ktsstrn_segment()+3 call kcbrbo() 7FFF41B12F04 ? 7FFF41B12F0C ? 941 000000001 ? 00147AE14 ? 7FFF41B128A8 ? 000000004 ? kkbtts_trunc_tbl_se call ktsstrn_segment() 7FFF41B13180 ? 000000000 ? g()+1018 0020C6444 ? 000000000 ? 7FFF41B14C00 ? 7FFF00000001 ? kkbtrn()+8156 call kkbtts_trunc_tbl_se 735ACA058 ? 77BC78D18 ? g() 000000000 ? 000000002 ? 000000000 ? 7FFF41B14C00 ? opiexe()+15805 call kkbtrn() 735ACA058 ? 000000000 ? 718831208 ? 000000000 ? 000000002 ? 7FFF00000000 ? opiosq0()+3316 call opiexe() 000000004 ? 000000000 ? 7FFF41B15F48 ? 00000000B ? 000000002 ? 7FFF00000000 ? kpooprx()+315 call opiosq0() 000000003 ? 00000000E ? 7FFF41B160B8 ? 0000000A4 ? 000000002 ? 7FFF00000000 ? kpoal8()+799 call kpooprx() 7FFF41B19264 ? 7FFF41B17280 ? 000000029 ? 000000001 ? 000000000 ? 7FFF00000000 ? opiodr()+984 call kpoal8() 00000005E ? 000000017 ? 7FFF41B19260 ? 000000001 ? 000000001 ? 7FFF00000000 ? ttcpip()+1012 call opiodr() 00000005E ? 000000017 ? 7FFF41B19260 ? 000000000 ? 0059C09B0 ? 7FFF00000000 ? opitsk()+1322 call ttcpip() 00689E3B0 ? 7FFF41B17248 ? 7FFF41B19260 ? 000000000 ? 7FFF41B18D58 ? 7FFF41B193C8 ? opiino()+1026 call opitsk() 000000003 ? 000000000 ? 7FFF41B19260 ? 000000001 ? 000000000 ? 4E58D8C00000001 ? opiodr()+984 call opiino() 00000003C ? 000000004 ? 7FFF41B1A428 ? 000000000 ? 000000000 ? 4E58D8C00000001 ? opidrv()+547 call opiodr() 00000003C ? 000000004 ? 7FFF41B1A428 ? 000000000 ? 0059C0460 ? 4E58D8C00000001 ? sou2o()+114 call opidrv() 00000003C ? 000000004 ? 7FFF41B1A428 ? 000000000 ? 0059C0460 ? 4E58D8C00000001 ? opimai_real()+163 call sou2o() 7FFF41B1A400 ? 00000003C ? 000000004 ? 7FFF41B1A428 ? 0059C0460 ? 4E58D8C00000001 ? main()+116 call opimai_real() 000000002 ? 7FFF41B1A490 ? 000000004 ? 7FFF41B1A428 ? 0059C0460 ? 4E58D8C00000001 ? __libc_start_main() call main() 000000002 ? 7FFF41B1A490 ? +244 000000004 ? 7FFF41B1A428 ? 0059C0460 ? 4E58D8C00000001 ? _start()+41 call __libc_start_main() 000723088 ? 000000002 ? 7FFF41B1A5E8 ? 000000000 ? 0059C0460 ? 000000002 ? --------------------- Binary Stack Dump ---------------------
这里可以得到更加准确的信息,数据库在truncate table的时候,有人异常终止程序,导致数据库出现ORA-00600[ktspfundo-2].查询mos未发现相关bug记录,从这些信息初步判断是因为oracle的bug导致在truncate表的时候异常终止,然后出现该对象上的回滚记录异常(当然truncate本身不需要回滚,但是可能记录一些附带的回滚信息),然后出现对象回滚异常是的数据库down.重启数据库,对象回滚段信息已经自动回滚完成,数据库正常.因为truncate表被异常终止的情况本身不多见,引发该bug更不常见,如果只是偶尔发生一次,建议忽略该错误.当然如果有时间和兴趣,可以提交sr
哦,应该是用EAS的朋友半天无反应就结束任务造成的