当前位置: 首页 > Oracle, oracle 10g, oracle 11g > 正文

BBED-安装

BBED是ORACLE的内部工具,只限ORACLE原厂工程师使用,不建议非原厂人员私自使用。BBED通常被称为ORACLE的手术刀,因为BBED可以直接修改ORACLE的数据块内容,当然这样就会带来一定的风险,如果修改错误,可能导致无法挽救的损失。通常使用BBED都是恢复一些故障的数据库,比如断电或异常关闭操作系统导致的数据文件头不一致、SYSTEM表空间损坏等故障就可以使用BBED工具进行恢复。

在windows平台,bbed在8i和9i的某些版本(如9.2.0.6)提供,10g之后不再提供bbed工具。本文主要记录linux平台,bbed工具的安装,windows平台不再介绍。

在linux环境,BBED默认并没有安装,10g版本的数据库自带BBED程序,使用前需要编译,如下演示10.2.0.5.0版本的数据库中编译BBED工具。

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

需要注意,BBED需要的库文件在$ORACLE_HOME/rdbms/lib目录中,而不是$ORACLE_HOME/lib目录。下面编译BBED工具。

[oracle@t10205 lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed

Linking BBED utility (bbed)
rm -f /u01/app/oracle/product/10.2.0/db_1/rdbms/lib/bbed
gcc -o /u01/app/oracle/product/10.2.0/db_1/rdbms/lib/bbed -L/u01/app/oracle/product/10.2.0/db_1/rdbms/lib/ -L/u01/app/oracle/product/10.2.0/db_1/lib/ -L/u01/app/oracle/product/10.2.0/db_1/lib/stubs/  /u01/app/oracle/product/10.2.0/db_1/lib/s0main.o /u01/app/oracle/product/10.2.0/db_1/rdbms/lib/ssbbded.o /u01/app/oracle/product/10.2.0/db_1/rdbms/lib/sbbdpt.o `cat /u01/app/oracle/product/10.2.0/db_1/lib/ldflags`    -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 /u01/app/oracle/product/10.2.0/db_1/rdbms/lib/defopt.o -ldbtools10 -lclntsh  `cat /u01/app/oracle/product/10.2.0/db_1/lib/ldflags`    -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /u01/app/oracle/product/10.2.0/db_1/lib/ldflags`    -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10  -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10  -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /u01/app/oracle/product/10.2.0/db_1/lib/ldflags`    -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /u01/app/oracle/product/10.2.0/db_1/lib/ldflags`    -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10  -lvsn10 -lcommon10 -lgeneric10   -lsnls10 -lnls10  -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10  -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10  -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10   `cat /u01/app/oracle/product/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/u01/app/oracle/product/10.2.0/db_1/lib -lm    `cat /u01/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm   -L/u01/app/oracle/product/10.2.0/db_1/lib

成功编译后,在$ORACLE_HOME/rdbms/lib目录中就会生成bbed可执行文件。

[oracle@t10205 lib]$ ls -l bbed 
-rwxr-xr-x 1 oracle oinstall 706999 Nov 30 05:51 bbed

将这个文件拷贝到$ORACLE_HOME/bin目录下,如果PATH环境变量设置正确,即可直接调用bbed工具。

[oracle@t10205 lib]$ cp bbed $ORACLE_HOME/bin
[oracle@t10205 lib]$ cd $ORACLE_HOME/bin
[oracle@t10205 bin]$ ls -l bbed
-rwxr-xr-x 1 oracle oinstall 706999 Nov 30 05:54 bbed

这样就可以使用bbed工具了。

[oracle@t10205 ~]$ bbed 
Password: 

BBED: Release 2.0.0.0.0 - Limited Production on 星期五 11月 30 05:56:53 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

************* !!! For Oracle Internal Use only !!! ***************

BBED>

    bbed工具默认密码是blockedit。

在linux环境,11g版本默认并没有bbed需要的库文件,但是可以从10g版本拷贝过来后,直接编译使用。

[oracle@source rdbms]$ cd $ORACLE_HOME/rdbms/
[oracle@source rdbms]$ scp lib/*sbb* 192.168.249.56:/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib
oracle@192.168.249.56's password: 
sbbdpt.o                                                                       100% 3124     3.1KB/s   00:00    
ssbbded.o                                                                      100% 2802     2.7KB/s   00:00    
[oracle@source rdbms]$ scp mesg/*bbed* 192.168.249.56:/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg
oracle@192.168.249.56's password: 
bbedus.msb                                                                     100% 8704     8.5KB/s   00:00    
bbedus.msg                                                                     100%   10KB  10.0KB/s   00:00  

将10g版本数据库带的bbed需要的文件拷贝到11g版本的数据库相应的目录中,就可以在11g的数据库服务器上编译bbed工具了。

[oracle@secdb2 lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed

Linking BBED utility (bbed)
rm -f /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/bbed
/usr/bin/gcc -m32  -o /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/bbed -m32 -L/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ -L/u01/app/oracle/product/11.2.0/dbhome_1/lib/ -L/u01/app/oracle/product/11.2.0/dbhome_1/lib/stubs/ -L/u01/app/oracle/product/11.2.0/dbhome_1/lib/ -lirc -lipgo   /u01/app/oracle/product/11.2.0/dbhome_1/lib/s0main.o /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ssbbded.o /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/sbbdpt.o `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -ldbtools11 -lclntsh  `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lztkg11 -lclient11 -lnnetd11  -lvsn11 -lcommon11 -lgeneric11 -lmm -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lclient11 -lnnetd11  -lvsn11 -lcommon11 -lgeneric11   -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lnnetd11  -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11   `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/sysliblist` -Wl,-rpath,/u01/app/oracle/product/11.2.0/dbhome_1/lib -lm    `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/sysliblist` -ldl -lm   -L/u01/app/oracle/product/11.2.0/dbhome_1/lib
[oracle@secdb2 lib]$ ls -l bbed 
-rwxr-xr-x 1 oracle oinstall 208473 Dec  9 14:16 bbed

将bbed文件拷贝到$ORACLE_HOME/bin目录下,就可以正常使用了。

[oracle@secdb2 lib]$ cp bbed $ORACLE_HOME/bin
[oracle@secdb2 lib]$ bbed
Password: 

BBED: Release 2.0.0.0.0 - Limited Production on Mon Dec 9 14:17:23 2013

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

************* !!! For Oracle Internal Use only !!! ***************

BBED> exit

下面是bbed的帮助手册。

BBED> help all
SET DBA [ dba | file#, block# ]
SET FILENAME 'filename'
SET FILE file#
SET BLOCK [+/-]block#
SET OFFSET [ [+/-]byte offset | symbol | *symbol ]
SET BLOCKSIZE bytes
SET LIST[FILE] 'filename'
SET WIDTH character_count
SET COUNT bytes_to_display
SET IBASE [ HEX | OCT | DEC ]
SET OBASE [ HEX | OCT | DEC ]
SET MODE  [ BROWSE | EDIT ]
SET SPOOL [ Y | N ]
SHOW [ <SET parameter> | ALL ]
INFO
MAP[/v] [ DBA | FILENAME | FILE | BLOCK ]
DUMP[/v] [ DBA | FILENAME | FILE | BLOCK | OFFSET | COUNT ]
PRINT[/x|d|u|o|c] [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]
EXAMINE[/Nuf] [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]
</Nuf>:
N - a number which specifies a repeat count.
u - a letter which specifies a unit size:
  b - b1, ub1 (byte)
  h - b2, ub2 (half-word)
  w - b4, ub4(word)
  r - Oracle table/index row
f - a letter which specifies a display format:
  x - hexadecimal
  d - decimal
  u - unsigned decimal
  o - octal
  c - character (native)
  n - Oracle number
  t - Oracle date
  i - Oracle rowid
FIND[/x|d|u|o|c] numeric/character string [ TOP | CURR ]
COPY [ DBA | FILE | FILENAME | BLOCK ] TO [ DBA | FILE | FILENAME | BLOCK ]
MODIFY[/x|d|u|o|c] numeric/character string
      [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]
ASSIGN[/x|d|u|o] <target spec>=<source spec>
<target spec> : [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]
<source spec> : [ value | <target spec options> ]
SUM [ DBA | FILE | FILENAME | BLOCK ] [ APPLY ]
PUSH [ DBA | FILE | FILENAME | BLOCK | OFFSET ]
POP [ALL]
REVERT [ DBA | FILE | FILENAME | BLOCK ]
UNDO
HELP [ <bbed command> | ALL ]
VERIFY [ DBA | FILE | FILENAME | BLOCK ]
CORRUPT [ DBA | FILE | FILENAME | BLOCK ]

BBED>

这些命令在后续的案例中在介绍。

本文固定链接: http://www.dbdream.com.cn/2013/12/bbed-%e5%ae%89%e8%a3%85/ | 信春哥,系统稳,闭眼上线不回滚!

该日志由 dbdream 于2013年12月09日发表在 Oracle, oracle 10g, oracle 11g 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: BBED-安装 | 信春哥,系统稳,闭眼上线不回滚!
关键字: , , , ,

BBED-安装:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter