delete误删基表(seg$)bbed恢复cluster table

来源:这里教程网 时间:2026-03-03 19:36:36 作者:

有客户通过delete误删了sys.seg$表的数据,重启数据库,发现数据库不能正常启动。删除命令:delete from sys.seg$ t where ts#=2;通过dump删除标识tab 2, row 21, @0x151b tl: 4 fb: -CHDFL-- lb: 0x2  cc: 0 cki: 21 tab 2, row 22, @0x14e9 tl: 4 fb: -CHDFL-- lb: 0x2  cc: 0 cki: 22 tab 2, row 23, @0x14b7 tl: 4 fb: -CHDFL-- lb: 0x2  cc: 0 cki: 23对比正常时:tab 2, row 21, @0x151b tl: 50 fb: -CH-FL-- lb: 0x0  cc: 16 cki: 21 col  0: [ 2]  c1 0b col  1: [ 2]  c1 09 col  2: [ 2]  c1 02 col  3: [ 2]  c1 11 col  4: [ 2]  c1 03 col  5: [ 4]  c3 04 1c 42 col  6: [ 2]  c1 09 col  7: [ 1]  80 col  8: [ 1]  80 col  9: [ 1]  80 col 10: [ 1]  80 col 11: [ 1]  80 col 12: [ 1]  80 col 13: [ 1]  80 col 14: [ 2]  c1 02 col 15: [ 5]  c4 05 14 2c 08 tab 2, row 22, @0x14e9 tl: 50 fb: -CH-FL-- lb: 0x0  cc: 16 cki: 22在bbed中查看:正常数据:flag@6355: 0x6c (KDRHFL, KDRHFF, KDRHFH, KDRHFC)删除数据rowdata[398] @5095flag@5095: 0x7c (KDRHFL, KDRHFF, KDRHFD, KDRHFH, KDRHFC) lock@5096: 0x02 cols@5097:    0 ckix@5098:   29先验证是否有删除记录: x /rnc *kdbr[0]。。。。x /rnc *kdbr[69]跟普通表所在行不一样,存数据的是row 30,没有数据BBED> x /rnc *kdbr[30] rowdata[900] @5597flag@5597: 0xac (KDRHFL, KDRHFF, KDRHFH, KDRHFK) lock@5598: 0x00 cols@5599:    3 kref@5600:    1 hrid@5602:0x004000c7.1e nrid@5608:0x004000c7.1ecol    0[2] @5616: 2 col    1[2] @5619: ?? col    2[3] @5622: .I位置65,才是放数据的:BBED> x /rnccntnnn *kdbr[65] rowdata[348] @5045flag@5045: 0x7c (KDRHFL, KDRHFF, KDRHFD, KDRHFH, KDRHFC) lock@5046: 0x02 cols@5047:    0 ckix@5048:   30  《—-连接到30行恢复:assign /x dba 1, 199 offset 5445 = 0x6c assign /x dba 1, 199 offset 5395 = 0x6c assign /x dba 1, 199 offset 5345 = 0x6c assign /x dba 1, 199 offset 5295 = 0x6c assign /x dba 1, 199 offset 5245 = 0x6c assign /x dba 1, 199 offset 5195 = 0x6c assign /x dba 1, 199 offset 5145 = 0x6c assign /x dba 1, 199 offset 5095 = 0x6c assign /x dba 1, 199 offset 5045 = 0x6c查看该cluseter表定义:create table SYS.SEG$ ( file#        NUMBER not null, block#       NUMBER not null, type#        NUMBER not null, ts#          NUMBER not null, blocks       NUMBER not null, extents      NUMBER not null, iniexts      NUMBER not null, minexts      NUMBER not null, maxexts      NUMBER not null, extsize      NUMBER not null, extpct       NUMBER not null, user#        NUMBER not null, lists        NUMBER, groups       NUMBER, bitmapranges NUMBER not null, cachehint    NUMBER not null, scanhint     NUMBER not null, hwmincr      NUMBER not null, spare1       NUMBER, spare2       NUMBER ) cluster C_FILE#_BLOCK# ();

相关推荐