Oracle 数据库启动报ORA-00600 [kkdlcob-objn-exists]的故障处理
原创作者:认真就输
联系电话:18081072613
微信、QQ:18081072613
转载就注明出处
1,故障现象
今天一个客户的数据库在启动时报ORA-00600 [kkdlcob-objn-exists], [37]错误,数据库不能打开,同时伴随着有ORA-00704的不错,请求紧急救援。
报错说明:
kkdlcob-objn-exists表示dataobj#已经存在。
37代表dataobj#的值。
如果在数据库启动阶段报错,同时伴随着有ORA-00704的错误,那么说明数据库在bootstrap阶段报错,也意识着在创建系统自带对象时报错。
报错的详细代码如下:
2,分析过程
2.1 查看trace文件
查看D:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\incident\incdir_39811\orcl_ora_6864_i39811.trc文件内容
在日志文件中,可以看到如下的信息:
*** 2020-05-06 15:47:40.272 dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0) ----- Current SQL Statement for this session (sql_id=8urmvm9u914ww) ----- CREATE UNIQUE INDEX I_OBJ2 ON OBJ$(OWNER#,NAME,NAMESPACE,REMOTEOWNER,LINKNAME,SUBNAME,TYPE#,SPARE3,OBJ#) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 16K NEXT 104K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 37 EXTENTS (FILE 1 BLOCK 344)) ----- Abridged Call Stack Trace ----- ksedsts()+585<-kjzdssdmp()+329<-kjzduptcctx()+288<-kjzdpcrshnfy()+77<-kstdmp()+364<-dbkedDefDump()+16515<-ksedmp()+43<-ksfdmp()+87<-dbgexPhaseII()+1819<-dbgexProcessError()+3008<-dbgeExecuteForError()+65<-dbgePostErrorKGE()+2269<-dbkePostKGE_kgsf()+77<-kgeadse()+349 <-kgerinv_internal()+76<-kgerinv()+49<-kgeasnmierr()+64<-kkdlcob()+2197<-kdicwpre()+2143<-kdicrws()+1062
此SQL语句就是出发ORA-00600 [kkdlcob-objn-exists], [37]报错的语句,通过关键字OBJNO 37也可以发现,也就是系统在启动时创建I_OBJ2时报错,系统中已经存储OBJNO 37的对象。
我们知道OBJNO 37是系统在启动过程中从bootstrap$表中读取出来的信息,并且这个表的内容是固定的。
所以我们猜测是有人故意修改bootstrap$内容导致的。
继续向下看日志内容:
继续分析trace,可以看到报错前访问的block,1/523属于bootstrap$
BH (0x00000009CFD3DAB0) file#: 1 rdba: 0x0040020b (1/523) class: 1 ba: 0x00000009CB5EC000 set: 37 pool: 3 bsz: 8192 bsi: 0 sflg: 2 pwc: 0,0 dbwrid: 0 obj: 59 objn: 59 tsn: 0 afn: 1 hint: f hash: [0x0000000AD19BF560,0x0000000AD19BF560] lru: [0x0000000B02416BB8,0x0000000B02416BB8] ckptq: [NULL] fileq: [NULL] objq: [0x0000000ACECC2340,0x0000000ACECC2340] objaq: [0x0000000ACECC2330,0x0000000ACECC2330] st: XCURRENT md: NULL fpin: ‘kdswh11: kdst_fetch‘ tch: 1 flags: only_sequential_access LRBA: [0x0.0.0] LSCN: [0x0.0] HSCN: [0xffff.ffffffff] HSUB: [65535] buffer tsn: 0 rdba: 0x0040020b (1/523) scn: 0x0000.01565fa3 seq: 0x01 flg: 0x06 tail: 0x5fa30601 frmt: 0x02 chkval: 0x0ea2 type: 0x06=trans data Hex dump of block: st=0, typ_found=1 Dump of memory from 0x00000009CB5EC000 to 0x00000009CB5EE000 9CB5EC000 0000A206 0040020B 01565FA3 06010000 [_V.....] 9CB5EC010 00000EA2 00000001 0000003B 01565FA2 [........;...._V.] 9CB5EC020 00000000 00030001 00000000 001D000A [................] 9CB5EC030 0001D51A 00C00241 0014616B 00002002 [....A...ka... ..] 9CB5EC040 01565FA3 000F0100 0030FFFF 0DC40AAD [._V.......0.....] 9CB5EC050 00000DC4 1D30000F 1B481C56 19AB1A82 [......0.V.H.....] 9CB5EC060 17C1189C 0AAD16F8 112012EA 0F891051 [.......... .Q...] 9CB5EC070 0DF50EC0 00000000 00000000 00000000 [................] 9CB5EC080 00000000 00000000 00000000 00000000 [................] Repeat 166 times 9CB5ECAF0 03012C00 0205C102 3CFE05C1 45524303 [.,.........<.CRE] 9CB5ECB00 20455441 4C424154 41542045 22282442 [ATE TABLE TAB$("] 9CB5ECB10 234A424F 554E2022 5245424D 544F4E20 [OBJ#" NUMBER NOT] 9CB5ECB20 4C554E20 44222C4C 4F415441 22234A42 [ NULL,"DATAOBJ#"] 9CB5ECB30 4D554E20 2C524542 23535422 554E2022 [ NUMBER,"TS#" NU] 9CB5ECB40 5245424D 544F4E20 4C554E20 46222C4C [MBER NOT NULL,"F] 9CB5ECB50 23454C49 554E2022 5245424D 544F4E20 [ILE#" NUMBER NOT] 9CB5ECB60 4C554E20 42222C4C 4B434F4C 4E202223 [ NULL,"BLOCK#" N] 9CB5ECB70 45424D55 4F4E2052 554E2054 222C4C4C [UMBER NOT NULL,"] 9CB5ECB80 4A424F42 4E202223 45424D55 54222C52 [BOBJ#" NUMBER,"T] 9CB5ECB90 22234241 4D554E20 2C524542 4C4F4322 [AB#" NUMBER,"COL] 9CB5ECBA0 4E202253 45424D55 4F4E2052 554E2054 [S" NUMBER NOT NU] 9CB5ECBB0 222C4C4C 43554C43 22534C4F 4D554E20 [LL,"CLUCOLS" NUM] 9CB5ECBC0 2C524542 54435022 45455246 4E202224 [BER,"PCTFREE$" N] 9CB5ECBD0 45424D55 4F4E2052 554E2054 222C4C4C [UMBER NOT NULL,"] 9CB5ECBE0 55544350 24444553 554E2022 5245424D [PCTUSED$" NUMBER] 9CB5ECBF0 544F4E20 4C554E20 49222C4C 5254494E [ NOT NULL,"INITR] 9CB5ECC00 22534E41 4D554E20 20524542 20544F4E [ANS" NUMBER NOT ] 9CB5ECC10 4C4C554E 414D222C 41525458 2022534E [NULL,"MAXTRANS" ] 9CB5ECC20 424D554E 4E205245 4E20544F 2C4C4C55 [NUMBER NOT NULL,] 9CB5ECC30 414C4622 20225347 424D554E 4E205245 ["FLAGS" NUMBER N] 9CB5ECC40 4E20544F 2C4C4C55 44554122 22245449 [OT NULL,"AUDIT$"] 9CB5ECC50 52415620 52414843 38332832 4F4E2029 [ VARCHAR2(38) NO] 9CB5ECC60 554E2054 222C4C4C 43574F52 2022544E [T NULL,"ROWCNT" ] 9CB5ECC70 424D554E 222C5245 434B4C42 2022544E [NUMBER,"BLKCNT" ] 9CB5ECC80 424D554E 222C5245 43504D45 2022544E [NUMBER,"EMPCNT" ] 9CB5ECC90 424D554E 222C5245 53475641 20224350 [NUMBER,"AVGSPC" ] 9CB5ECCA0 424D554E 222C5245 434E4843 2022544E [NUMBER,"CHNCNT" ] 9CB5ECCB0 424D554E 222C5245 52475641 20224E4C [NUMBER,"AVGRLN" ] 9CB5ECCC0 424D554E 222C5245 53475641 465F4350 [NUMBER,"AVGSPC_F] 9CB5ECCD0 2022424C 424D554E 222C5245 43424C46 [LB" NUMBER,"FLBC] 9CB5ECCE0 2022544E 424D554E 222C5245 4C414E41 [NT" NUMBER,"ANAL] 9CB5ECCF0 54455A59 22454D49 54414420 53222C45 [YZETIME" DATE,"S] 9CB5ECD00 4C504D41 5A495345 4E202245 45424D55 [AMPLESIZE" NUMBE] 9CB5ECD10 44222C52 45524745 4E202245 45424D55 [R,"DEGREE" NUMBE] 9CB5ECD20 49222C52 4154534E 5345434E 554E2022 [R,"INSTANCES" NU] 9CB5ECD30 5245424D 4E49222C 4C4F4354 4E202253 [MBER,"INTCOLS" N] 9CB5ECD40 45424D55 4F4E2052 554E2054 222C4C4C [UMBER NOT NULL,"] 9CB5ECD50 4E52454B 4F434C45 2022534C 424D554E [KERNELCOLS" NUMB] 9CB5ECD60 4E205245 4E20544F 2C4C4C55 4F525022 [ER NOT NULL,"PRO] 9CB5ECD70 54524550 4E202259 45424D55 4F4E2052 [PERTY" NUMBER NO] 9CB5ECD80 554E2054 222C4C4C 47495254 47414C46 [T NULL,"TRIGFLAG] 9CB5ECD90 554E2022 5245424D 5053222C 31455241 [" NUMBER,"SPARE1] 9CB5ECDA0 554E2022 5245424D 5053222C 32455241 [" NUMBER,"SPARE2] 9CB5ECDB0 554E2022 5245424D 5053222C 33455241 [" NUMBER,"SPARE3] 9CB5ECDC0 554E2022 5245424D 5053222C 34455241 [" NUMBER,"SPARE4] 9CB5ECDD0 41562022 41484352 31283252 29303030 [" VARCHAR2(1000)] 9CB5ECDE0 5053222C 35455241 41562022 41484352 [,"SPARE5" VARCHA] 9CB5ECDF0 31283252 29303030 5053222C 36455241 [R2(1000),"SPARE6] 9CB5ECE00 41442022 20294554 524F5453 20454741 [" DATE) STORAGE ] 9CB5ECE10 4F202028 4F4E4A42 20373320 4E424154 [( OBJNO 37 TABN] --标红 9CB5ECE20 2931204F 554C4320 52455453 4F5F4320 [O 1) CLUSTER C_O] 9CB5ECE30 28234A42 234A424F 03002C29 0239C102 [BJ#(OBJ#),....9.] 9CB5ECE40 43C139C1 54414552 4E492045 20584544 [.9.CREATE INDEX ] 9CB5ECE50 44435F49 20344645 43204E4F 24464544 [I_CDEF4 ON CDEF$] 9CB5ECE60 414E4528 44454C42 43502029 45524654 [(ENABLED) PCTFRE] 9CB5ECE70 30312045 494E4920 4E415254 20322053 [E 10 INITRANS 2 ] 9CB5ECE80 5458414D 534E4152 35353220 4F545320 [MAXTRANS 255 STO] 9CB5ECE90 45474152 20202820 54494E49 204C4149 [RAGE ( INITIAL ] 9CB5ECEA0 204B3436 5458454E 32303120 4D204B34 [64K NEXT 1024K M] 9CB5EDB40 20312053 4558414D 4E455458 32205354 [S 1 MAXEXTENTS 2] 9CB5EDB50 34373431 34363338 43502035 434E4954 [147483645 PCTINC] 9CB5EDB60 53414552 20302045 4E4A424F 3833204F [REASE 0 OBJNO 38] 9CB5EDB70 54584520 53544E45 49462820 3120454C [ EXTENTS (FILE 1] 9CB5EDB80 4F4C4220 33204B43 29293235 0203002C [ BLOCK 352)),...] 9CB5EDB90 C10226C1 0102FE26 41455243 55204554 [.&..&...CREATE U] 9CB5EDBA0 5551494E 4E492045 20584544 424F5F49 [NIQUE INDEX I_OB] 9CB5EDBB0 4F20324A 424F204E 4F28244A 52454E57 [J2 ON OBJ$(OWNER] 9CB5EDBC0 414E2C23 4E2C454D 53454D41 45434150 [#,NAME,NAMESPACE] 9CB5EDBD0 4D45522C 4F45544F 52454E57 4E494C2C [,REMOTEOWNER,LIN] 9CB5EDBE0 4D414E4B 55532C45 4D414E42 59542C45 [KNAME,SUBNAME,TY] 9CB5EDBF0 2C234550 52415053 4F2C3345 29234A42 [PE#,SPARE3,OBJ#)] 9CB5EDC00 54435020 45455246 20303120 54494E49 [ PCTFREE 10 INIT] 9CB5EDC10 534E4152 4D203220 52545841 20534E41 [RANS 2 MAXTRANS ] 9CB5EDC20 20353532 524F5453 20454741 49202028 [255 STORAGE ( I] 9CB5EDC30 4954494E 31204C41 4E204B36 20545845 [NITIAL 16K NEXT ] 9CB5EDC40 4B343031 4E494D20 45545845 2053544E [104K MINEXTENTS ] 9CB5EDC50 414D2031 54584558 53544E45 34313220 [1 MAXEXTENTS 214] 9CB5EDC60 33383437 20353436 49544350 4552434E [7483645 PCTINCRE] 9CB5EDC70 20455341 424F2030 204F4E4A 45203733 [ASE 0 OBJNO 37 E] --标红 9CB5EDC80 4E455458 28205354 454C4946 42203120 [XTENTS (FILE 1 B] 9CB5EDC90 4B434F4C 34343320 002C2929 25C10203 [LOCK 344)),....%] 9CB5EDCA0 D025C102 41455243 55204554 5551494E [..%.CREATE UNIQU] 9CB5EDCB0 4E492045 20584544 424F5F49 4F20314A [E INDEX I_OBJ1 O] 9CB5EDCC0 424F204E 4F28244A 2C234A42 454E574F [N OBJ$(OBJ#,OWNE] 9CB5EDCD0 542C2352 23455059 43502029 45524654 [R#,TYPE#) PCTFRE] 9CB5EDCE0 30312045 494E4920 4E415254 20322053 [E 10 INITRANS 2 ] 9CB5EDCF0 5458414D 534E4152 35353220 4F545320 [MAXTRANS 255 STO]
从trace中可以看到当I_OBJ2创建之前,tab$先被创建并且OBJ#正好是37。对bootstrap核心对象比较熟悉的朋友应该知道TAB$的obj#应该是4才对。
所以可有人估计修改bootstrap$导致的。
2.2 查看块的内容
通过块的dump信息,确认快的信息是被修改过。
Block header dump: 0x0040020b Object id on Block? Y seg/obj: 0x3b csc: 0x00.1565fa2 itc: 1 flg: O typ: 1 - DATA fsl: 0 fnx: 0x0 ver: 0x01 Itl Xid Uba Flag Lck Scn/Fsc 0x01 0x000a.01d.0001d51a 0x00c00241.616b.14 --U- 2 fsc 0x0000.01565fa3 --Lck为2,有2行记录曾经被修改 bdba: 0x0040020b tab 0, row 8, @0xaad tl: 840 fb: --H-FL-- lb: 0x1 cc: 3 --lb为1,说明该行被修改 col 0: [ 2] c1 05 col 1: [ 2] c1 05 --OBJ#=4 col 2: [828] 43 52 45 41 54 45 20 54 41 42 4c 45 20 54 41 42 24 28 22 4f 42 4a 23 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 44 41 54 41 4f 42 4a 23 22 20 4e 55 4d 42 45 52 2c 22 54 53 23 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 46 49 4c 45 23 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 42 4c 4f 43 4b 23 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 42 4f 42 4a 23 22 20 4e 55 4d 42 45 52 2c 22 54 41 42 23 22 20 4e 55 4d 42 45 52 2c 22 43 4f 4c 53 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 43 4c 55 43 4f 4c 53 22 20 4e 55 4d 42 45 52 2c 22 50 43 54 46 52 45 45 24 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 50 43 54 55 53 45 44 24 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 49 4e 49 54 52 41 4e 53 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 4d 41 58 54 52 41 4e 53 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 46 4c 41 47 53 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 41 55 44 49 54 24 22 20 56 41 52 43 48 41 52 32 28 33 38 29 20 4e 4f 54 20 4e 55 4c 4c 2c 22 52 4f 57 43 4e 54 22 20 4e 55 4d 42 45 52 2c 22 42 4c 4b 43 4e 54 22 20 4e 55 4d 42 45 52 2c 22 45 4d 50 43 4e 54 22 20 4e 55 4d 42 45 52 2c 22 41 56 47 53 50 43 22 20 4e 55 4d 42 45 52 2c 22 43 48 4e 43 4e 54 22 20 4e 55 4d 42 45 52 2c 22 41 56 47 52 4c 4e 22 20 4e 55 4d 42 45 52 2c 22 41 56 47 53 50 43 5f 46 4c 42 22 20 4e 55 4d 42 45 52 2c 22 46 4c 42 43 4e 54 22 20 4e 55 4d 42 45 52 2c 22 41 4e 41 4c 59 5a 45 54 49 4d 45 22 20 44 41 54 45 2c 22 53 41 4d 50 4c 45 53 49 5a 45 22 20 4e 55 4d 42 45 52 2c 22 44 45 47 52 45 45 22 20 4e 55 4d 42 45 52 2c 22 49 4e 53 54 41 4e 43 45 53 22 20 4e 55 4d 42 45 52 2c 22 49 4e 54 43 4f 4c 53 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 4b 45 52 4e 45 4c 43 4f 4c 53 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 50 52 4f 50 45 52 54 59 22 20 4e 55 4d 42 45 52 20 4e 4f 54 20 4e 55 4c 4c 2c 22 54 52 49 47 46 4c 41 47 22 20 4e 55 4d 42 45 52 2c 22 53 50 41 52 45 31 22 20 4e 55 4d 42 45 52 2c 22 53 50 41 52 45 32 22 20 4e 55 4d 42 45 52 2c 22 53 50 41 52 45 33 22 20 4e 55 4d 42 45 52 2c 22 53 50 41 52 45 34 22 20 56 41 52 43 48 41 52 32 28 31 30 30 30 29 2c 22 53 50 41 52 45 35 22 20 56 41 52 43 48 41 52 32 28 31 30 30 30 29 2c 22 53 50 41 52 45 36 22 20 44 41 54 45 29 20 53 54 4f 52 41 47 45 20 28 20 20 4f 42 4a 4e 4f 20 33 37 20 54 41 42 4e 4f 20 31 29 20 43 4c 55 53 54 45 52 20 43 5f 4f 42 4a 23 28 4f 42 4a 23 29
3,解决方案
知道bootstrap$被修改了,那么解决方案就非常简单了。
3.1 通过bbed直接修改块内容。
bbed修改的方法见:http://www.htz.pw/?p=846
3.2 找一个同版本的数据库,将bootstrap$复制过来就可以。
修改的方法见:http://www.htz.pw/?p=841