ITPub博客

首页 > 数据库 > Oracle > delete误删基表(seg$)bbed恢复cluster table

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

原创 Oracle 作者:lmxx2020 时间:2024-02-26 14:10:23 0 删除 编辑

有客户通过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] @5095

flag@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] @5597

flag@5597: 0xac (KDRHFL, KDRHFF, KDRHFH, KDRHFK)
lock@5598: 0x00
cols@5599:    3
kref@5600:    1
hrid@5602:0x004000c7.1e
nrid@5608:0x004000c7.1e

col    0[2] @5616: 2
col    1[2] @5619: ??
col    2[3] @5622: .I

位置65,才是放数据的:

BBED> x /rnccntnnn *kdbr[65]
rowdata[348] @5045

flag@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# ();


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22967847/viewspace-3007144/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-01-09

  • 博文量
    106
  • 访问量
    90394