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

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

------


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

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

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

[toc]

##1. 数据内容

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

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

```


[image:222 size:orig]



--------------

##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'
```

[image:223 size:orig]



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

-------------

##3. 使用BBED进入数据块

**3.1 使用上节的内容打开bbed**
```
BBED parfile=bbed.par
```

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

```
BBED> set dba 5,1800134
```

[image:224 size:orig]

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

```
BBED> set file 5
BBED> set block 1800134
BBED> show
```

[image:230 size:orig]


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

```
BBED> set offset 0
```

[image:225 size:orig]

-----------

##4. 查找lotid内容

**4.1 搜索lotid内容**

c表示搜索字符串

```
BBED> find /c W1F1_1600056151+1080801HA3.301
```


[image:226 size:orig]


从上图中可以看出

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

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

**4.2 dump数据块内容**

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

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

```
BBED>  dump /v dba 5,1800134 offset 4215 count 32
```

[image:227 size:orig]


可以看出已经找到了

-------

##5.验证结果


**5.1 设置偏移量**

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

```
BBED> set offset 4215
```

**5.2 dump数据**

dump数据

```
BBED> d /v
```

[image:228 size:orig]


**5.3 dump更多数据**

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

```
d /v count 64
```

[image:229 size:orig]


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


##6.参考资料


[http://www.dba-oracle.com/t_bbed.htm](http://www.dba-oracle.com/t_bbed.htm)

[https://blog.csdn.net/tianlesoftware/article/details/5006580](https://blog.csdn.net/tianlesoftware/article/details/5006580)

[http://www.dba-oracle.com/forensics/t_forensics_bbed.htm](http://www.dba-oracle.com/forensics/t_forensics_bbed.htm)