在Oracle中,什么是BBED?它有哪些作用?

2023-08-10 15:16:08 浏览数 (3)

题目部分

在Oracle中,什么是BBED?它有哪些作用?

答案部分

BBED(Block Brower and Editor)是用来直接查看和修改Oracle数据块的一个内部工具,它可以直接修改Oracle数据文件块的内容,在一些极端恢复场景下比较有用。因为该工具不被Oracle服务支持,所以,默认是没有生成可执行文件的,在使用前需要编译生成。

虽然BBED可以在数据库打开的状态下进行修改,但是建议在做任何修改操作之前先关闭数据库,这样可以避免CHECKPOINT进程重写BBED对BLOCK的修改,也避免Oracle在BBED修改完成之前读BLOCK或声明BLOCK为CORRUPT,从而导致一系列的ORA-600内部错误。

BBED的默认密码为blockedit。

在Oracle 11g下,BBED的编译文件需要从Oracle 10g下拷贝。Oracle 10g可直接编译。需要拷贝如下5个文件:

代码语言:javascript复制
$ORACLE_HOME/rdbms/lib/ssbbded.o
$ORACLE_HOME/rdbms/lib/sbbdpt.o
$ORACLE_HOME/rdbms/mesg/bbedus.msb
$ORACLE_HOME/rdbms/mesg/bbedus.msg
$ORACLE_HOME/rdbms/mesg/bbedar.msb

拷贝到Oracle 11g下后进行赋权操作:

代码语言:javascript复制
ls -l  $ORACLE_HOME/rdbms/lib/*sbbd*
ls -l  $ORACLE_HOME/rdbms/mesg/bbed*
chown oracle:dba /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/*sbbd*
chown oracle:dba /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/bbed*

进行编译:

代码语言:javascript复制
make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed

编译成功后,编辑文件/home/oracle/file.txt:

代码语言:javascript复制
vi /home/oracle/file.txt
set line 9999 pagesize 9999
col name format a80
select file#||' '||name||' '||bytes name from v$datafile;

输入如下命令即可进入BBED的界面:

代码语言:javascript复制
bbed PASSWORD=blockedit  mode=edit blocksize=8192 listfile=/home/oracle/file.txt
bbed password=blockedit blocksize=8192 mode=edit filename='/u01/app/oracle/oradata/lhrdb/users01.dbf'

1 人点赞