联系:手机(13429648788) 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
