Oracle Block Brower and EDitor Tool(bbed)工具,用来直接查看和修改数据文件数据的一个工具,是Oracle一款内部工具,可以直接修改Oracle数据文件块的内容,简单来说就是一个针对 Oracle的二进制编辑工具。该工具不受Oracle支持,所以默认是没有生成可执行文件的,在使用前需要重新编译。

 

oracle 11g 下编译生成bbed工具

1、拷贝该工具所需类库

Oracle 11G中默认是不存在这些类库的,需要从10G版本中拷贝。

 

[oracle@testdb ~]$ cp$ORA10G_HOME/rdbms/lib/ssbbded.o $ORACLE_HOME/rdbms/lib

[oracle@testdb ~]$ cp$ORA10G_HOME/rdbms/lib/sbbdpt.o $ORACLE_HOME/rdbms/lib

[oracle@testdb ~]$ cp -r $ORA10G_HOME/rdbms/mesg/bbedus.msb$ORACLE_HOME/rdbms/mesg

[oracle@testdb ~]$ cp -r $ORA10G_HOME/rdbms/mesg/bbedus.msg$ORACLE_HOME/rdbms/mesg

注意:上述文件文件权限必须有执行权限

2、编译生成bbed工具

[oracle@testdb ~]$ cd$ORACLE_HOME/rdbms/lib

[oracle@testdb lib]$ make -f ins_rdbms.mk  BBED=$ORACLE_HOME/bin/bbed  $ORACLE_HOME/bin/bbed

 

[oracle@testdb lib]$ which bbed

/u01/app/oracle/product/11.2.0/dbhome_1/bin/bbed

[oracle@testdb lib]$ bbed

Password: blockedit

BBED使用
SQL> set heading off;
SQL> set feedback off;
SQL> spool /u04/bbedlist.parf
SQL> select file#||' '||name||' '||bytes from v$datafile ;
1 /OracleData/testdb/system01.dbf 943718400
2 /OracleData/testdb/sysaux01.dbf 765460480
3 /OracleData/testdb/undotbs01.dbf 298844160
4 /OracleData/testdb/users01.dbf 108789760
5 /OracleData/testdb/tbs1.dbf 10485760
SQL> spool off;

 

[oracle@testdb ~]$ vim /u04/bbed.par    ----输入下面内容

blocksize = 8192
listfile= /u04/bbedlist.parf
mode = edit

[oracle@testdb u04]$ bbed parfile=/u04/bbed.par  password=blockedit

 

 

 

常用命令介绍

set  设定当前的环境。   

show 查看当前的环境参数,跟sqlplus的同名命令类似。  

dump 列出指定block的内容  

find 在指定的block中查找指定的字符串,结果是显示出字符串,及其偏移量--offset,偏移量就是在block中的字节数  

modify 修改指定block的指定偏移量的值,可以在线修改。  

copy 把一个block的内容copy到另一个block  

verify 检查当前环境是否有坏块 

sum 计算blockchecksummodify之后block就被标识为坏块,currentchecksumreqired checksum不一致,sum命令可以计算出新的checksum并应用到当前块。  

undo 回滚当前的修改操作,如果手误做错了,undo一下就ok了,回到原来的状态。  

revert 回滚所有之前的修改操作,意思就是 undoall