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