bbed安装及配置

bbed安装及配置

1. 什么是bbed ?
Oracle Block Brower and EDitor Tool,是一个可以对oracle data block进行查看,编辑修改的内置工具。
对于bbed,oracle本身是不提供支持的.

2. 如何编译bbed环境?
10g版本:
1) 编译bbed
cd $ORACLE_HOME/rdbms/lib

make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed

2) 修改环境变量
  将$ORACLE_HOME/rdbms/lib 加入到PATH变量中,如下:
  PATH=$ORACLE_HOME/bin:$PATH:/home/ora10g/product/10.2/rdbms/lib; export PATH

11g以及12c及19c版本:(本人测试环境为11g/12c/19c)
将bbed编译安装需要的一下4个包上传到/home/oracle/bbed目录下
ssbbded.o
sbbdpt.o
bbedus.msb
bbedus.msg

1) copy /home/oracle/bbed目录下的包到对应的环境目录:

cp /home/oracle/bbed/*.o $ORACLE_BASE/product/11.2.0/db_1/rdbms/lib
cp /home/oracle/bbed/bbedus* $ORACLE_BASE/product/11.2.0/db_1/rdbms/mesg

cp /home/oracle/bbed/*.o $ORACLE_BASE/product/12.2.0/db_1/rdbms/lib
cp /home/oracle/bbed/bbedus* $ORACLE_BASE/product/12.2.0/db_1/rdbms/mesg

cp /home/oracle/bbed/*.o $ORACLE_BASE/product/19.3.0/db_1/rdbms/lib
cp /home/oracle/bbed/bbedus* $ORACLE_BASE/product/19.3.0/db_1/rdbms/mesg

cp /home/oracle/bbed/*.o $ORACLE_HOME/rdbms/lib
cp /home/oracle/bbed/bbedus* $ORACLE_HOME/rdbms/mesg

cd $ORACLE_BASE/product/12.2.0/db_1/rdbms/lib
rm -rf ssbbded.o
rm -rf sbbdpt.o
cd $ORACLE_BASE/product/12.2.0/db_1/rdbms/mesg
rm -rf bbedus.msb
rm -rf bbedus.msg

cd $ORACLE_BASE/product/19.3.0/db_1/rdbms/lib
rm -rf ssbbded.o
rm -rf sbbdpt.o
cd $ORACLE_BASE/product/19.3.0/db_1/rdbms/mesg
rm -rf bbedus.msb
rm -rf bbedus.msg

2) 编译bbed
cd $ORACLE_HOME/rdbms/lib                      

make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed

密码是:blockedit

报错:
[oracle@deep lib]$ make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed

Linking BBED utility (bbed)
rm -f /u01/app/oracle/product/11.2.0/db_1/bin/bbed
gcc -o /u01/app/oracle/product/11.2.0/db_1/bin/bbed -m64 -z noexecstack -L/u01/app/oracle/product/11.2.0/db_1/rdbms/lib/ -L/u01/app/oracle/product/11.2.0/db_1/lib/ -L/u01/app/oracle/product/11.2.0/db_1/lib/stubs/  /u01/app/oracle/product/11.2.0/db_1/lib/s0main.o /u01/app/oracle/product/11.2.0/db_1/rdbms/lib/ssbbded.o /u01/app/oracle/product/11.2.0/db_1/rdbms/lib/sbbdpt.o `cat /u01/app/oracle/product/11.2.0/db_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -ldbtools11 -lclntsh  `cat /u01/app/oracle/product/11.2.0/db_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /u01/app/oracle/product/11.2.0/db_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -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/db_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /u01/app/oracle/product/11.2.0/db_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/db_1/lib/sysliblist` -Wl,-rpath,/u01/app/oracle/product/11.2.0/db_1/lib -lm    `cat /u01/app/oracle/product/11.2.0/db_1/lib/sysliblist` -ldl -lm   -L/u01/app/oracle/product/11.2.0/db_1/lib
/u01/app/oracle/product/11.2.0/db_1/rdbms/lib/ssbbded.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make: *** [/u01/app/oracle/product/11.2.0/db_1/bin/bbed] Error 1

原因:
是由于使用的bbed需要的包为32位,需要从64位环境拷贝相关包

编译成功:
[oracle@deep ~]$ make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed

Linking BBED utility (bbed)
rm -f /u01/app/oracle/product/12.2.0/db_1/bin/bbed
/u01/app/oracle/product/12.2.0/db_1/bin/orald -o /u01/app/oracle/product/12.2.0/db_1/bin/bbed -m64 -z noexecstack -Wl,--disable-new-dtags -L/u01/app/oracle/product/12.2.0/db_1/rdbms/lib/ -L/u01/app/oracle/product/12.2.0/db_1/lib/ -L/u01/app/oracle/product/12.2.0/db_1/lib/stubs/  /u01/app/oracle/product/12.2.0/db_1/lib/s0main.o /u01/app/oracle/product/12.2.0/db_1/rdbms/lib/ssbbded.o /u01/app/oracle/product/12.2.0/db_1/rdbms/lib/sbbdpt.o `cat /u01/app/oracle/product/12.2.0/db_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lngsmshd12 -ldbtools12 -lclntsh -lclntshcore  `cat /u01/app/oracle/product/12.2.0/db_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lngsmshd12 -lnro12 `cat /u01/app/oracle/product/12.2.0/db_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lngsmshd12 -lnnz12 -lzt12 -lztkg12 -lztkg12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lmm -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /u01/app/oracle/product/12.2.0/db_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lngsmshd12 -lnro12 `cat /u01/app/oracle/product/12.2.0/db_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lngsmshd12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12   -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12   `cat /u01/app/oracle/product/12.2.0/db_1/lib/sysliblist` -Wl,-rpath,/u01/app/oracle/product/12.2.0/db_1/lib -lm    `cat /u01/app/oracle/product/12.2.0/db_1/lib/sysliblist` -ldl -lm   -L/u01/app/oracle/product/12.2.0/db_1/lib

3. 如何配置bbed?
1) 准备par文件

par.bbed(文件名可自定义):

blocksize=8192           ---指定block size大小                                          
listfile=/home/oracle/bbed/bbedfile.txt    ---指定文件名 
logfile=/home/oracle/bbed/log.bbd          ----制定记录的日志文件及位置     
mode=edit                ---指定操作模式(分edit和view两种)                      
spool=yes                ---是否记录bbed的操作日志

2) 准备listfile.txt文件

listfile.txt(文件名可自定义):

8 /u01/app/oracle/oradata/DEEP/deep1/system01.dbf 272629760
9 /u01/app/oracle/oradata/DEEP/deep1/sysaux01.dbf 319815680
10 /u01/app/oracle/oradata/DEEP/deep1/undotbs01.dbf 550502400
11 /u01/app/oracle/oradata/DEEP/deep1/users01.dbf 5242880
12 /u01/app/oracle/oradata/DEEP/deep1/deep.dbf 209715200

说明:
1) 第1列,为文件号,可以人为定义。
2) 第2列,需要使用bbed操作的文件名(全路径)。
3) 第3列,文件大小,可不写。

3)登陆验证
为了登陆方便,在环境变量中设置别名
alias bbed="bbed parfile=/home/oracle/bbed/par.bbd"

[oracle@deep ~]$ bbed
BBED> show
        FILE#           8
        BLOCK#          1
        OFFSET          0
        DBA             0x02000001 (33554433 8,1)
        FILENAME        /u01/app/oracle/oradata/DEEP/deep1/system01.dbf
        BIFILE          bifile.bbd
        LISTFILE        /home/oracle/bbed/bbedfile.txt
        BLOCKSIZE       8192
        MODE            Edit
        EDIT            Unrecoverable
        IBASE           Dec
        OBASE           Dec
        WIDTH           80
        COUNT           512
        LOGFILE         /home/oracle/bbed/log.bbd
        SPOOL           Yes

BBED> info
File#  Name                                                        Size(blks)
-----  ----                                                        ----------
     8  /u01/app/oracle/oradata/DEEP/deep1/system01.dbf                  33280
     9  /u01/app/oracle/oradata/DEEP/deep1/sysaux01.dbf                  39040
    10  /u01/app/oracle/oradata/DEEP/deep1/undotbs01.dbf                 67200
    11  /u01/app/oracle/oradata/DEEP/deep1/users01.dbf                     640
    12  /u01/app/oracle/oradata/DEEP/deep1/deep.dbf                      25600

至此,bbed的编译安装及配置已经完成。

你可能感兴趣的:(Oracle,BBED)