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 计算block的checksum,modify之后block就被标识为坏块,currentchecksum与reqired checksum不一致,sum命令可以计算出新的checksum并应用到当前块。
undo 回滚当前的修改操作,如果手误做错了,undo一下就ok了,回到原来的状态。
revert 回滚所有之前的修改操作,意思就是 undoall
转载于:https://blog.51cto.com/153022/1918860