BBED> x /rncc *kdbr[0]
rowdata[66] @8162
-----------
flag@8162: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@8163: 0x00
cols@8164: 3
col 0[2] @8165: 10
col 1[10] @8168: ACCOUNTING
col 2[8] @8179: NEW YORK
Block Checking: DBA = 46137507, Block Type = KTB-managed data block
data header at 0x2c4027c
kdbchk: entries on the free list are not ordered
next=8016 nrow=4 chas=1
Block 163 failed with check code 6106
Block Checking: DBA = 46137507, Block Type = KTB-managed data block
data header at 0x2c4027c
kdbchk: the amount of space used is not equal to block size
used=119 fsc=0 avsp=7987 dtl=8064
Block 163 failed with check code 6110
Block Checking: DBA = 46137507, Block Type = KTB-managed data block
data header at 0x2c4027c
kdbchk: space available on commit is incorrect
tosp=7987 fsc=0 stb=0 avsp=7945
Block 163 failed with check code 6111
SCOTT@test01p> alter system flush BUFFER_CACHE;
System altered.
SCOTT@test01p> select * from deptx;
DEPTNO DNAME LOC
---------- -------------------- -------------
10 ACCOUNTING0 NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
--//删除记录已经恢复.
--//原来deptno= 10 的记录没有覆盖,理论将也可以恢复.继续尝试看看.
Block Checking: DBA = 46137507, Block Type = KTB-managed data block
data header at 0x2c4027c
kdbchk: the amount of space used is not equal to block size
used=118 fsc=0 avsp=7945 dtl=8064
Block 163 failed with check code 6110
SCOTT@test01p> alter system flush BUFFER_CACHE;
System altered.
SCOTT@test01p> select * from deptx;
DEPTNO DNAME LOC
---------- -------------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
3.总结:
--//很久不使用bbed,有点生疏了。
--//我前面的恢复定位行目录信息时使用原来显示的信息,实际的恢复只能通过find检索0x2c,0x3c字符定位。
--//然后通过执行 x /rncc offset NNNN,确定显示的信息是否正确。获得NNNN偏移是绝对偏移,必须减去kdbh的偏移(这里是124,前面
--//有3个ITL槽),这样才能确定行目录的相对偏移值。
--//总之到对应的数据块操作相对复杂!!!