历史信息查看请查看个人网页www.zhaibibei.cn

这是一个坚持Oracle,Python原创内容的公众号,欢迎关注


上节我们介绍了使用BBED读取数据文件

这节内容为使用BBED定位数据位置

我们通过定位数据库中表其中一列的具体位置来讲解bbed的操作

1. 数据内容

我们使用FWASSY.MACMATERIALLOT 表中的LOTID列来进行讲解 内容为:W1F1_1600056151+1080801HA3.301

select *
  from fwassy.MACMATERIALLOT
 WHERE lotid = 'W1F1_1600056151+1080801HA3.301'
1.png

2. 查看内容属于的数据文件和块号

SELECT dbms_rowid.rowid_relative_fno(rowid) REL_FNO,
       dbms_rowid.rowid_block_number(rowid) BLOCKNO,
       lotid
  from fwassy.MACMATERIALLOT
 WHERE lotid = 'W1F1_1600056151+1080801HA3.301'
2.png

从结果我们看出该表属于5号文件的1800134数据块


3. 使用BBED进入数据块

3.1 使用上节的内容打开bbed

BBED parfile=bbed.par

3.2 定位到5号文件的5,1800134数据块

BBED> set dba 5,1800134
3.png

这里我们可以使用另外种方法定位

BBED> set file 5
BBED> set block 1800134
BBED> show
1.png

3.3 设置offset确保处在该块的起始位置

BBED> set offset 0
4.png

4. 查找lotid内容

4.1 搜索lotid内容

c表示搜索字符串

BBED> find /c W1F1_1600056151+1080801HA3.301
5.png

从上图中可以看出

该列内容在5号文件的第1800134个数据块中,并偏移4215字节

注意该命令会dump多行数据,每行为32字节

4.2 dump数据块内容

以上为二进制文件,接下来转化为可读的内容

count 表示读取多少字节的数据

BBED>  dump /v dba 5,1800134 offset 4215 count 32
6.png

可以看出已经找到了


5.验证结果

5.1 设置偏移量

上面我们已经定位到了 5,1800134位置,offset是0,接下来我们设定offset为4215

BBED> set offset 4215

5.2 dump数据

dump数据

BBED> d /v
7.png

5.3 dump更多数据

我们可以使用count参数获取更多数据

d /v count 64
8.png

可以看出接下来的内容为该行后面的内容

6.参考资料

http://www.dba-oracle.com/t_bbed.htm

https://blog.csdn.net/tianlesoftware/article/details/5006580

http://www.dba-oracle.com/forensics/t_forensics_bbed.htm