4.oracle的dump理解四 解析块

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51228501

从块中DUMP出来的内容都是二进制文件的,不是那么好看,我们需要一个工具来解析块中的内容。

可以参考:http://blog.csdn.net/notbaron/article/details/50551440系列

由于WINDOWS下BBED 不知道怎么配置,下载了一个也无法运行,只好将文件COPY到LINUX系统下使用BBED进行解析或在LINUX环境下下创建一个测试库。

这里修改插入到表t1中的第一行的列值,如下:

修改块中某列信息

查找AAAAA

BBED> find /c AAAAA

 File: /home/oracle/toad01.dbf (75)

 Block: 133              Offsets: 8183 to 8191           Dba:0x12c00085

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

 41414141 410106ed 67

 <32 bytes per line>

是在块133,偏移为8183到8191

然后使用BBED内部DUMP命令如下

BBED> dump /v dba 75,133 offset 8183count 32

 File:/home/oracle/toad01.dbf (75)

 Block: 133    Offsets: 8183 to 8191 Dba:0x12c00085

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

 41414141 410106ed 67                l AAAAA..

 <16 bytes per line>

然后进行修改

BBED> modify /c  ABCED dba 75,133 offset 8183

 File: /home/oracle/toad01.dbf (75)

 Block: 133              Offsets: 8183 to 8191           Dba:0x12c00085

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

 41424345 440106ed 67

 <32 bytes per line>

再DUMP一下查看:

BBED> dump /v dba 75,133 offset 8183count 32

 File: /home/oracle/toad01.dbf (75)

 Block: 133    Offsets: 8183 to 8191 Dba:0x12c00085

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

 41424345 440106ed 67                l ABCED..

 <16 bytes per line>

已经修改了。

去数据库中查看,此时不能显示,需要修改块的checksum,不修改会提示块损坏了。

如下:

BBED> sumdba 75,133

Check value for File 75, Block 133:

current = 0x5bb8, required = 0x5cbf

BBED> sum dba 75,133 apply

Check value for File 75, Block 133:

current = 0x5cbf, required = 0x5cbf

去数据库查看如下:

toad@HAMMER> select * from t1;

       ID

----------

NAME

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

        1

ABCED

        2

BBBBB

        3

DDDDD