BBED(Block Browser and EDitor) 是Oracle提供的一个功能非常强大的工具,用来直接对oracle block进行操作。因此这个工具使用起来很危险,而且Oracle不对用这个工具带来的任何后果负责任,这个工具仅供内部使用。
虽然如此,这个工具为我们研究block的存储结构带来了极大的便利,因此了解下也是很有好处的 :-)
本文主要介绍如果安装BBED, 因为在linux下面,bbed默认没有“安装”,不能直接使用,需要先进行一些操作...
[oracle@ora10g ~]$ cd $ORACLE_HOME/rdbms/lib[oracle@ora10g lib]$ lsconfig.c ins_rdbms.mk ksnnt2.o rfsin.o sskfoded.oconfig.o jox.o ktd.o rfsxc.o sskrmed.ocursize.o joxoff.o kxmnsd.o s0exudrv.o sskrned.odbfsize.o kciwcx.o kxmwsd.o s0impdrv.o sskrsed.odefopt.o kcsm.o kzlnlbac.o s0kudbv.o ssoraed.odmndm.o kfod.o libdbtools10.a s0kuzr.o sstrced.odmndmse.o kgupc.o libdsga10.a s0kvpf.o strcpt.odmwdm.o kgutc.o libknlopt.a s0udexp.o sulmain.odumpsga.o kkpoban.o libodm10.a s0udimp.o tg4pwd.oenv_rdbms.mk kkxntp.o libperfsrv10.a sbbdpt.o tstshm.ogenezi.o kkxwtp.o libqsmashr.a shorm.o ttcoerr.ogenksms.o kopc.o libskgxns.a shou.o ttcsoi.ohoaoci.o kprnts.o libskgxpd.a sjsex.o wpspldrv.ohoat.o kprwts.o libskgxpu.a skfedpt.o xaondy.ohoax.o kpucb.o libxdb.a skfodpt.o xaonsl.ohomts.o kpudfo.o mapsga.o skrmpt.o xsnoolap.ohormc.o kpundf.o maxmem.o skrnpt.o xsyeolap.ohormd.o ksms.o nmliblist skrspt.o zsmsdrv.ohorm.o ksnkcs.o opimai.o sllfls.ohormt.o ksnkkpo.o osh.o srfsd.ohout.o ksnktd.o rfscom.o ssbbded.ohsxaora.o ksnnni.o rfsd.o sskfeded.o[oracle@ora10g lib]$ ls | grep bbsbbdpt.ossbbded.o[oracle@ora10g lib]$ pwd/u01/app/oracle/product/10.2.0/db_1/rdbms/lib[oracle@ora10g lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbedLinking BBED utility (bbed)rm -f /u01/app/oracle/product/10.2.0/db_1/rdbms/lib/bbedgcc -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/ -L/usr/lib -lirc /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@ora10g lib]$ lsbbed hsxaora.o ksnnni.o rfsd.o sskfeded.oconfig.c ins_rdbms.mk ksnnt2.o rfsin.o sskfoded.oconfig.o jox.o ktd.o rfsxc.o sskrmed.ocursize.o joxoff.o kxmnsd.o s0exudrv.o sskrned.odbfsize.o kciwcx.o kxmwsd.o s0impdrv.o sskrsed.odefopt.o kcsm.o kzlnlbac.o s0kudbv.o ssoraed.odmndm.o kfod.o libdbtools10.a s0kuzr.o sstrced.odmndmse.o kgupc.o libdsga10.a s0kvpf.o strcpt.odmwdm.o kgutc.o libknlopt.a s0udexp.o sulmain.odumpsga.o kkpoban.o libodm10.a s0udimp.o tg4pwd.oenv_rdbms.mk kkxntp.o libperfsrv10.a sbbdpt.o tstshm.ogenezi.o kkxwtp.o libqsmashr.a shorm.o ttcoerr.ogenksms.o kopc.o libskgxns.a shou.o ttcsoi.ohoaoci.o kprnts.o libskgxpd.a sjsex.o wpspldrv.ohoat.o kprwts.o libskgxpu.a skfedpt.o xaondy.ohoax.o kpucb.o libxdb.a skfodpt.o xaonsl.ohomts.o kpudfo.o mapsga.o skrmpt.o xsnoolap.ohormc.o kpundf.o maxmem.o skrnpt.o xsyeolap.ohormd.o ksms.o nmliblist skrspt.o zsmsdrv.ohorm.o ksnkcs.o opimai.o sllfls.ohormt.o ksnkkpo.o osh.o srfsd.ohout.o ksnktd.o rfscom.o ssbbded.o[oracle@ora10g lib]$ ls -ltotal 9540-rwxr-xr-x 1 oracle oinstall 536161 Feb 15 20:20 bbed-rw-r----- 1 oracle oinstall 259 Dec 11 13:56 config.c-rw-r----- 1 oracle oinstall 816 Dec 11 13:58 config.o-rw-r----- 1 oracle oinstall 4385 Jun 28 2005 cursize.o-rw-r----- 1 oracle oinstall 4480 Jun 28 2005 dbfsize.o-rw-r----- 1 oracle oinstall 17390 Jun 28 2005 defopt.o-rw-r----- 1 oracle oinstall 2663 Jun 28 2005 dmndm.o-rw-r----- 1 oracle oinstall 2641 Jun 28 2005 dmndmse.o-rw-r----- 1 oracle oinstall 2633 Jun 28 2005 dmwdm.o-rw-r----- 1 oracle oinstall 5167 Jun 28 2005 dumpsga.o-rw-r----- 1 oracle oinstall 98908 Jun 28 2005 env_rdbms.mk-rw-r----- 1 oracle oinstall 20411 Jun 28 2005 genezi.o-rw-r----- 1 oracle oinstall 455880 Jun 28 2005 genksms.o-rw-r----- 1 oracle oinstall 98071 Jun 28 2005 hoaoci.o-rw-r----- 1 oracle oinstall 8302 Jun 28 2005 hoat.o-rw-r----- 1 oracle oinstall 9367 Jun 28 2005 hoax.o-rw-r----- 1 oracle oinstall 2871 Jun 28 2005 homts.o-rw-r----- 1 oracle oinstall 3579 Jun 28 2005 hormc.o-rw-r----- 1 oracle oinstall 3591 Jun 28 2005 hormd.o-rw-r----- 1 oracle oinstall 3450 Jun 28 2005 horm.o-rw-r----- 1 oracle oinstall 3520 Jun 28 2005 hormt.o-rw-r----- 1 oracle oinstall 24535 Jun 28 2005 hout.o-rw-r----- 1 oracle oinstall 2891 Jun 28 2005 hsxaora.o-rw-r----- 1 oracle oinstall 24678 Jun 28 2005 ins_rdbms.mk-rw-r----- 1 oracle oinstall 697700 Jun 28 2005 jox.o-rw-r----- 1 oracle oinstall 5187 Jun 28 2005 joxoff.o-rw-r----- 1 oracle oinstall 13862 Jun 28 2005 kciwcx.o-rw-r----- 1 oracle oinstall 3566 Jun 28 2005 kcsm.o-rw-r----- 1 oracle oinstall 19804 Jun 28 2005 kfod.o-rw-r----- 1 oracle oinstall 6544 Jun 28 2005 kgupc.o-rw-r----- 1 oracle oinstall 30059 Jun 28 2005 kgutc.o-rw-r----- 1 oracle oinstall 2801 Jun 28 2005 kkpoban.o-rw-r----- 1 oracle oinstall 5166 Jun 28 2005 kkxntp.o-rw-r----- 1 oracle oinstall 113508 Jun 28 2005 kkxwtp.o-rw-r----- 1 oracle oinstall 15339 Jun 28 2005 kopc.o-rw-r----- 1 oracle oinstall 2795 Jun 28 2005 kprnts.o-rw-r----- 1 oracle oinstall 46769 Jun 28 2005 kprwts.o-rw-r----- 1 oracle oinstall 3286 Jun 28 2005 kpucb.o-rw-r----- 1 oracle oinstall 17390 Jun 28 2005 kpudfo.o-rw-r----- 1 oracle oinstall 3790 Jun 28 2005 kpundf.o-rw-r--rw- 1 oracle oinstall 224025 Dec 11 13:58 ksms.o-rw-r----- 1 oracle oinstall 3291 Jun 28 2005 ksnkcs.o-rw-r----- 1 oracle oinstall 2801 Jun 28 2005 ksnkkpo.o-rw-r----- 1 oracle oinstall 16338 Jun 28 2005 ksnktd.o-rw-r----- 1 oracle oinstall 3009 Jun 28 2005 ksnnni.o-rw-r----- 1 oracle oinstall 2935 Jun 28 2005 ksnnt2.o-rw-r----- 1 oracle oinstall 18713 Jun 28 2005 ktd.o-rw-r----- 1 oracle oinstall 4590 Jun 28 2005 kxmnsd.o-rw-r----- 1 oracle oinstall 12483 Jun 28 2005 kxmwsd.o-rw-r----- 1 oracle oinstall 3219 Jun 28 2005 kzlnlbac.o-rw-r----- 1 oracle oinstall 4792886 Jun 28 2005 libdbtools10.a-rw-r----- 1 oracle oinstall 142346 Jun 28 2005 libdsga10.a-rw-r----- 1 oracle oinstall 185522 Dec 11 13:57 libknlopt.a-rw-r----- 1 oracle oinstall 4314 Jun 28 2005 libodm10.a-rw-r----- 1 oracle oinstall 633304 Jun 28 2005 libperfsrv10.a-rw-r----- 1 oracle oinstall 196858 Jun 28 2005 libqsmashr.a-rw-r----- 1 oracle oinstall 5632 Jun 28 2005 libskgxns.a-rw-r----- 1 oracle oinstall 6470 Jun 28 2005 libskgxpd.a-rw-r----- 1 oracle oinstall 136362 Jun 28 2005 libskgxpu.a-rw-r----- 1 oracle oinstall 217462 Jun 28 2005 libxdb.a-rw-r----- 1 oracle oinstall 5747 Jun 28 2005 mapsga.o-rw-r----- 1 oracle oinstall 4187 Jun 28 2005 maxmem.o-rw-r----- 1 oracle oinstall 0 Dec 11 13:58 nmliblist-rw-r----- 1 oracle oinstall 4492 Jun 28 2005 opimai.o-rw-r----- 1 oracle oinstall 4342 Jun 28 2005 osh.o-rw-r----- 1 oracle oinstall 12552 Jun 28 2005 rfscom.o-rw-r----- 1 oracle oinstall 121903 Jun 28 2005 rfsd.o-rw-r----- 1 oracle oinstall 14159 Jun 28 2005 rfsin.o-rw-r----- 1 oracle oinstall 204822 Jun 28 2005 rfsxc.o-rw-r----- 1 oracle oinstall 2990 Jun 28 2005 s0exudrv.o-rw-r----- 1 oracle oinstall 2928 Jun 28 2005 s0impdrv.o-rw-r----- 1 oracle oinstall 3047 Jun 28 2005 s0kudbv.o-rw-r----- 1 oracle oinstall 3051 Jun 28 2005 s0kuzr.o-rw-r----- 1 oracle oinstall 2928 Jun 28 2005 s0kvpf.o-rw-r----- 1 oracle oinstall 2926 Jun 28 2005 s0udexp.o-rw-r----- 1 oracle oinstall 2926 Jun 28 2005 s0udimp.o-rw-r----- 1 oracle oinstall 3043 Jun 28 2005 sbbdpt.o-rw-r----- 1 oracle oinstall 2926 Jun 28 2005 shorm.o-rw-r----- 1 oracle oinstall 2911 Jun 28 2005 shou.o-rw-r----- 1 oracle oinstall 10926 Jun 28 2005 sjsex.o-rw-r----- 1 oracle oinstall 3046 Jun 28 2005 skfedpt.o-rw-r----- 1 oracle oinstall 3046 Jun 28 2005 skfodpt.o-rw-r----- 1 oracle oinstall 3233 Jun 28 2005 skrmpt.o-rw-r----- 1 oracle oinstall 3198 Jun 28 2005 skrnpt.o-rw-r----- 1 oracle oinstall 3040 Jun 28 2005 skrspt.o-rw-r----- 1 oracle oinstall 2669 Jun 28 2005 sllfls.o-rw-r----- 1 oracle oinstall 4691 Jun 28 2005 srfsd.o-rw-r----- 1 oracle oinstall 2721 Jun 28 2005 ssbbded.o-rw-r----- 1 oracle oinstall 2724 Jun 28 2005 sskfeded.o-rw-r----- 1 oracle oinstall 2728 Jun 28 2005 sskfoded.o-rw-r----- 1 oracle oinstall 2717 Jun 28 2005 sskrmed.o-rw-r----- 1 oracle oinstall 2717 Jun 28 2005 sskrned.o-rw-r----- 1 oracle oinstall 2717 Jun 28 2005 sskrsed.o-rw-r----- 1 oracle oinstall 2734 Jun 28 2005 ssoraed.o-rw-r----- 1 oracle oinstall 2717 Jun 28 2005 sstrced.o-rw-r----- 1 oracle oinstall 3041 Jun 28 2005 strcpt.o-rw-r----- 1 oracle oinstall 2925 Jun 28 2005 sulmain.o-rw-r----- 1 oracle oinstall 2962 Jun 28 2005 tg4pwd.o-rw-r----- 1 oracle oinstall 11318 Jun 28 2005 tstshm.o-rw-r----- 1 oracle oinstall 3167 Jun 28 2005 ttcoerr.o-rw-r----- 1 oracle oinstall 3178 Jun 28 2005 ttcsoi.o-rw-r----- 1 oracle oinstall 3665 Jun 28 2005 wpspldrv.o-rw-r----- 1 oracle oinstall 2667 Jun 28 2005 xaondy.o-rw-r----- 1 oracle oinstall 2924 Jun 28 2005 xaonsl.o-rw-r----- 1 oracle oinstall 27316 Jun 28 2005 xsnoolap.o-rw-r----- 1 oracle oinstall 4061 Jun 28 2005 xsyeolap.o-rw-r----- 1 oracle oinstall 41967 Jun 21 2005 zsmsdrv.o[oracle@ora10g lib]$ [oracle@ora10g lib]$
进行这个link操作之后,在目录$ORACLE_HOME/rdbms/lib目录下生成了bbed这个可执行的文件。
[oracle@ora10g lib]$ ./bbedPassword: BBED: Release 2.0.0.0.0 - Limited Production on Tue Feb 15 20:26:39 2011Copyright (c) 1982, 2005, Oracle. All rights reserved.************* !!! For Oracle Internal Use only !!! ***************
注意bbed这个可执行文件位于$ORACLE_HOME/rdbms/lib目录下,这个目录不在系统的PATH环境里面,因此需要通过./bbed来启动bbed. 可以把bbed拷贝到目录$ORACLE_HOME/BIN下面,这样就可以很方便启动bbed了,
[oracle@ora10g ~]$ bbedbash: bbed: command not found[oracle@ora10g ~]$ cp $ORACLE_HOME/rdbms/lib/bbed $ORACLE_HOME/bin[oracle@ora10g ~]$ bbedPassword: BBED: Release 2.0.0.0.0 - Limited Production on Tue Feb 15 20:57:14 2011Copyright (c) 1982, 2005, Oracle. All rights reserved.************* !!! For Oracle Internal Use only !!! ***************BBED>
为了防止bbed被滥用,oracle为bbed设置了一个密码,而且这个密码是hardcode的,而且没有文档说明。(但是这个密码已经很公开了,是blockedit)从这也可以看出oracle对待bbed是相当纠结的,既想提供给用户这么一个功能强大的工具,但是又害怕给用户带来不必要的麻烦。
来源:https://www.cnblogs.com/fangwenyu/archive/2011/02/19/1955519.html