联系:手机/微信(+86 17813235971) QQ(107644445)
标题:使用bbed解决ORA-00607/ORA-00600[4194]故障
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
ORA-00607/ORA-00600[4194]错误
数据库启动因为出现ORA-00607/ORA-00600[4194],导致数据库不能正常open
Fri Nov 4 23:10:37 2011 SMON: enabling cache recovery Fri Nov 4 23:10:37 2011 ARC2: Archival started ARC0: STARTING ARCH PROCESSES COMPLETE ARC0: Becoming the heartbeat ARCH ARC2 started with pid=18, OS id=21535 Fri Nov 4 23:10:38 2011 Errors in file /u01/oracle/admin/XFF/udump/xff_ora_21529.trc: ORA-00600: internal error code, arguments: [4194], [35], [6], [], [], [], [], [] Fri Nov 4 23:10:41 2011 Doing block recovery for file 1 block 18 Block recovery from logseq 2, block 48668 to scn 458453 Fri Nov 4 23:10:41 2011 Recovery of Online Redo Log: Thread 1 Group 1 Seq 2 Reading mem 0 Mem# 0 errs 0: /u01/oracle/oradata/XFF/redo01.log Block recovery stopped at EOT rba 2.48670.16 Block recovery completed at rba 2.48670.16, scn 0.458451 Doing block recovery for file 1 block 9 Block recovery from logseq 2, block 48668 to scn 458450 Fri Nov 4 23:10:41 2011 Recovery of Online Redo Log: Thread 1 Group 1 Seq 2 Reading mem 0 Mem# 0 errs 0: /u01/oracle/oradata/XFF/redo01.log Block recovery completed at rba 2.48670.16, scn 0.458451 Fri Nov 4 23:10:41 2011 Errors in file /u01/oracle/admin/XFF/udump/xff_ora_21529.trc: ORA-00604: error occurred at recursive SQL level 1 ORA-00607: Internal error occurred while making a change to a data block ORA-00600: internal error code, arguments: [4194], [35], [6], [], [], [], [], [] Error 604 happened during db open, shutting down database USER: terminating instance due to error 604 Instance terminated by USER, pid = 21529 ORA-1092 signalled during: ALTER DATABASE OPEN...
分析trace文件
*** SESSION ID:(159.3) 2011-11-04 23:10:37.648 tkcrrsarc: (WARN) Failed to find ARCH for message (message:0x1) tkcrrpa: (WARN) Failed initial attempt to send ARCH message (message:0x1) *** ktuc_diag_dmp: dump of current change vector ktudb redo: siz: 252 spc: 7200 flg: 0x0012 seq: 0x0037 rec: 0x06 xid: 0x0000.022.00000028 ktubl redo: slt: 34 rci: 0 opc: 11.1 objn: 15 objd: 15 tsn: 0 Undo type: Regular undo Begin trans Last buffer split: No Temp Object: No Tablespace Undo: No 0x00000000 prev ctl uba: 0x00400012.0037.1f prev ctl max cmt scn: 0x0000.0006c75b prev tx cmt scn: 0x0000.0006c75d txn start scn: 0xffff.ffffffff logon user: 0 prev brb: 4194318 prev bcl: 0 KDO undo record: KTB Redo op: 0x04 ver: 0x01 op: L itl: xid: 0x0000.020.00000029 uba: 0x00400013.0037.05 flg: C--- lkc: 0 scn: 0x0000.0006fecb KDO Op code: URP row dependencies Disabled xtype: XA flags: 0x00000000 bdba: 0x0040006a hdba: 0x00400069 itli: 1 ispac: 0 maxfr: 4863 tabn: 0 slot: 1(0x1) flag: 0x2c lock: 0 ckix: 191 ncol: 17 nnew: 12 size: 0 col 1: [ 9] 5f 53 59 53 53 4d 55 31 24 col 2: [ 2] c1 02 col 3: [ 2] c1 03 col 4: [ 2] c1 0a col 5: [ 4] c3 2e 55 0a col 6: [ 1] 80 col 7: [ 3] c2 02 59 col 8: [ 3] c2 02 02 col 9: [ 1] 80 col 10: [ 2] c1 03 col 11: [ 2] c1 02 col 16: [ 2] c1 02 *** 2011-11-04 23:10:38.086 ksedmp: internal or fatal error ORA-00600: internal error code, arguments: [4194], [35], [6], [], [], [], [], [] Current SQL statement for this session: update undo$ set name=:2,file#=:3,block#=:4,status$=:5,user#=:6,undosqn=:7,xactsqn=:8,scnbas=:9, scnwrp=:10,inst#=:11,ts#=:12,spare1=:13 where us#=:1 ----- Call Stack Trace ----- calling call entry argument values in hex location type point (? means dubious value) -------------------- -------- -------------------- ---------------------------- ksedst()+27 call ksedst1() 0 ? 1 ? ksedmp()+557 call ksedst() 0 ? 0 ? 0 ? 0 ? 0 ? 0 ? ksfdmp()+19 call ksedmp() 3 ? BFFA8C28 ? AC152C0 ? CBD2DA0 ? 3 ? BFFA9764 ? kgeriv()+188 call 00000000 CBD2DA0 ? 3 ? kseipre()+42 call kgeriv() CBD2DA0 ? B6A50020 ? 1062 ? 2 ? BFFA8C68 ? BFFA8C5C ? ksesic2()+21 call kseipre() 1062 ? 2 ? BFFA8C68 ? 32B36940 ? BFFA8D38 ? 8C4A3A9 ? kturdb()+1757 call ksesic2() 1062 ? 0 ? 23 ? 0 ? 0 ? 6 ? 0 ? kco_issue_callback( call 00000000 B6A09FA4 ? B6A0A01E ? 11 ? )+176 2D306014 ? B6A387C0 ? kcoapl()+2440 call kco_issue_callback( B6A09FA0 ? 2D306000 ? ) B6A387C0 ? kcbapl()+322 call kcoapl() B6A09FA0 ? 2D306000 ? 1 ? 0 ? 2000 ? 0 ? B6A387C0 ? kcrfw_redo_gen()+94 call kcbapl() B6A09FA0 ? 2D3F6A1C ? 10 CBE3AE8 ? 0 ? B6A387C0 ? kcbchg1_main()+8669 call kcrfw_redo_gen() 3 ? BFFA9358 ? BFFA9370 ? CBE3AE8 ? 0 ? BFFA9390 ? kcbchg1()+63 call kcbchg1_main() 0 ? 3 ? BFFA97B0 ? BFFA9798 ? 0 ? 0 ? ktuchg()+3344 call kcbchg1() 0 ? 3 ? BFFA97B0 ? BFFA9798 ? 0 ? 0 ? ktbchg2()+493 call ktuchg() 2 ? 2F9EEF8C ? 3 ? B6A0CA98 ? B6A0CAA0 ? B6A09FA0 ? B6A387C0 ? B6A0C7A0 ? 0 ? 0 ? kddchg()+1661 call ktbchg2() 0 ? 2F9EEF8C ? B6A0CA98 ? B6A0CAA0 ? B6A09FA0 ? B6A387B8 ? B6A0C7A0 ? 0 ? 0 ? kduovw()+7960 call kddchg() B6A3877C ? B6A0CA98 ? B6A0CAA0 ? B6A09FA0 ? B6A0C7A0 ? 0 ? 0 ? BFFA9C58 ? kduurp()+2316 call kduovw() B6A3877C ? 0 ? 10 ? B6A357A4 ? 0 ? B6A3877C ? kdusru()+4339 call kduurp() B6A3877C ? 958412D ? CBDC720 ? BFFA9FEC ? B8 ? B6A40380 ? kauupd()+366 call kdusru() B6A357A4 ? 2F9EEFF8 ? B6A3877C ? 0 ? updrow()+5889 call kauupd() B6A357A0 ? 2F9EEFF8 ? B6A3877C ? 0 ? 2FA479FC ? E ? F ? 2F9EF31C ? 12 ? BFFB0544 ? BFFB04E4 ? qerupRowProcedure() call updrow() 2F9E5B64 ? 7FFF ? DB4 ? 48 ? +62 2F9EFBF4 ? BFFB08B4 ? qerupFetch()+1187 call 00000000 2F9EF4B0 ? 7FFF ? updaul()+3474 call 00000000 2F9EF4B0 ? 0 ? 2F9EF370 ? 7FFF ? updThreePhaseExe()+ call updaul() 2F9E5B64 ? BFFB0D2C ? 0 ? 3470 updexe()+813 call updThreePhaseExe() 2F9E5B64 ? 0 ? B6A3877C ? BFFB0E00 ? 2F9E5B64 ? 1 ? BFFB0E00 ? 0 ? opiexe()+17967 call updexe() 2F9E5B64 ? BFFB1074 ? opiodr()+2347 call 00000000 4 ? 4 ? BFFB25A8 ? rpidrus()+434 call opiodr() 4 ? 4 ? BFFB25A8 ? 2 ? skgmstack()+210 call 00000000 BFFB2004 ? 97492FE ? CBD2E9C ? BFFB1FE8 ? BFFB24EC ? BFFB2004 ? rpidru()+98 call skgmstack() BFFB1FE8 ? CBD2B60 ? F618 ? 9749546 ? BFFB2004 ? rpiswu2()+1061 call 00000000 BFFB24EC ? BFFB25E8 ? BFFB2500 ? 2 ? BFFB24B0 ? 5953 ? rpidrv()+1915 call rpiswu2() 32F0A1D4 ? 0 ? BFFB24B0 ? 2 ? BFFB2528 ? 0 ? BFFB24B0 ? 0 ? 9749800 ? 97498DC ? BFFB24EC ? 8 ? rpiexe()+65 call rpidrv() 2 ? 4 ? BFFB25A8 ? 8 ? ktuscu()+697 call rpiexe() 2 ? 1C ? 2A ? 32FF3404 ? 0 ? BFFB2710 ? kqrcmt()+945 call 00000000 32AFA70C ? 3 ? ktcrcm()+945 call kqrcmt() 31A2B84C ? 1 ? 0 ? ktuswr()+1855 call ktcrcm() 31A2B84C ? 0 ? 0 ? 0 ? 0 ? 1 ? 0 ? 0 ? ktusmous_online_und call ktuswr() 1 ? 0 ? 0 ? 0 ? 0 ? 0 ? oseg()+951 ktusmout_online_ut( call ktusmous_online_und 1 ? A ? 0 ? 3 ? )+737 oseg() ktusmiut_init_ut()+ call ktusmout_online_ut( 1 ? 0 ? 0 ? 1084 ) ktuini()+688 call ktusmiut_init_ut() 0 ? BFFB4744 ? CBD2E9C ? CBD2E9C ? CBD2DA0 ? 7 ? adbdrv()+5699 call ktuini() 0 ? 0 ? 0 ? 0 ? 64000000 ? 3 ? opiexe()+18301 call adbdrv() 59D4 ? 0 ? 9EE16E2F ? 494C4 ? 32B33CD0 ? 0 ? opiosq0()+3918 call opiexe() 4 ? 0 ? BFFB8988 ? kpooprx()+250 call opiosq0() 3 ? E ? BFFB8B90 ? A4 ? kpoal8()+867 call kpooprx() BFFBAD68 ? BFFB990C ? 13 ? 1 ? 0 ? A4 ? opiodr()+2347 call 00000000 5E ? 17 ? BFFBAD64 ? ttcpip()+4227 call 00000000 5E ? 17 ? BFFBAD64 ? 0 ? DABCA66 ? 93 ? opitsk()+1991 call ttcpip() CBDA5A0 ? 5E ? BFFBAD64 ? 0 ? BFFBA244 ? BFFBAE88 ? opiino()+1387 call opitsk() 0 ? 0 ? opiodr()+2347 call 00000000 3C ? 4 ? BFFBB950 ? opidrv()+915 call opiodr() 3C ? 4 ? BFFBB950 ? 0 ? sou2o()+113 call opidrv() 3C ? 4 ? BFFBB950 ? opimai_real()+212 call sou2o() BFFBB934 ? 3C ? 4 ? BFFBB950 ? main()+111 call opimai_real() 2 ? BFFBB980 ? __libc_start_main() call 00000000 2 ? BFFBBA44 ? BFFBBA50 ? +220 47D9A828 ? 0 ? 1 ? --------------------- Binary Stack Dump ---------------------
数据库在open的时候,需要去修改undo$对象的状态,从2该为3(offline->online)这个时候需要使用到系统回滚段,但是在使用系统回滚段的时候,使用uba=0x00400012的时候发生异常,导致数据库不能正常open,从而出现了ORA-00600[4194]的错误.而出现这个故障的原因,很可能是由于file 1 block 18块的异常导致.我们需要做的,就是让数据库启动的时候不使用file 1 block 18的block,而让数据库去另外的分配一个undo块.
bbed清除rollback分配块信息
[oracle@xifenfei ~]$ bbed listfile=list mode=edit password=blockedit BBED: Release 2.0.0.0.0 - Limited Production on Sat Nov 5 01:11:49 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> set file 1 block 9 FILE# 1 BLOCK# 9 BBED> map File: /u01/oracle/oradata/XFF/system01.dbf (1) Block: 9 Dba:0x00400009 ------------------------------------------------------------ Unlimited Undo Segment Header struct kcbh, 20 bytes @0 struct ktech, 72 bytes @20 struct ktemh, 16 bytes @92 struct ktetb[6], 48 bytes @108 struct ktuxc, 104 bytes @4148 struct ktuxe[255], 10200 bytes @4252 ub4 tailchk @8188 BBED> p ktuxc struct ktuxc, 104 bytes @4148 struct ktuxcscn, 8 bytes @4148 ub4 kscnbas @4148 0x0006c75b ub2 kscnwrp @4152 0x0000 struct ktuxcuba, 8 bytes @4156 ub4 kubadba @4156 0x00400012 ub2 kubaseq @4160 0x0037 ub1 kubarec @4162 0x1f sb2 ktuxcflg @4164 1 (KTUXCFSK) ub2 ktuxcseq @4166 0x0037 sb2 ktuxcnfb @4168 1 ub4 ktuxcinc @4172 0x00000000 sb2 ktuxcchd @4176 34 sb2 ktuxcctl @4178 32 ub2 ktuxcmgc @4180 0x8002 ub4 ktuxcopt @4188 0x7ffffffe struct ktuxcfbp[0], 12 bytes @4192 struct ktufbuba, 8 bytes @4192 ub4 kubadba @4192 0x00400012 ub2 kubaseq @4196 0x0037 ub1 kubarec @4198 0x05 sb2 ktufbext @4200 1 sb2 ktufbspc @4202 7200 struct ktuxcfbp[1], 12 bytes @4204 struct ktufbuba, 8 bytes @4204 ub4 kubadba @4204 0x00000000 ub2 kubaseq @4208 0x0035 ub1 kubarec @4210 0x2a sb2 ktufbext @4212 5 sb2 ktufbspc @4214 3446 struct ktuxcfbp[2], 12 bytes @4216 struct ktufbuba, 8 bytes @4216 ub4 kubadba @4216 0x00000000 ub2 kubaseq @4220 0x0035 ub1 kubarec @4222 0x37 sb2 ktufbext @4224 5 sb2 ktufbspc @4226 1336 struct ktuxcfbp[3], 12 bytes @4228 struct ktufbuba, 8 bytes @4228 ub4 kubadba @4228 0x00000000 ub2 kubaseq @4232 0x0000 ub1 kubarec @4234 0x00 sb2 ktufbext @4236 0 sb2 ktufbspc @4238 0 struct ktuxcfbp[4], 12 bytes @4240 struct ktufbuba, 8 bytes @4240 ub4 kubadba @4240 0x00000000 ub2 kubaseq @4244 0x0000 ub1 kubarec @4246 0x00 sb2 ktufbext @4248 0 sb2 ktufbspc @4250 0 BBED> set count 16 COUNT 16 ######################################################## 使用bbed修改相关参数 ########################################################
启动数据库
SQL> startup ORACLE instance started. Total System Global Area 318767104 bytes Fixed Size 1219160 bytes Variable Size 96470440 bytes Database Buffers 213909504 bytes Redo Buffers 7168000 bytes Database mounted. Database opened. SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for Linux: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 - Production