> 历史信息查看请查看个人网页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)