如何从Oracle 10g的安装介质中提取BBED必须的sbbdpt.o和ssbbded.o库文件

20 篇文章 0 订阅

BBED编译的时候需要使用到sbbdpt.o和ssbbded.o两个库文件,但是从11g开始,Oracle不再提供这两个库文件,但是可以使用10g版本中的这两个库文件在11g中编译生成BBED工具。

那么,如果身边没有已安装的10g数据库怎么办?难道要安装一边10g的数据库才能获取这两个库文件么?那多折腾,如果不想再使用10g数据库,还得卸载,太费事。

其实不用那么麻烦,下面介绍如何获取这两个库文件。

我们都知道OUI的安装过程有很大部分是解压大量已经编译并打包好的jar包,所以我们从这些jar包中下手。

那么我们的处理方法就是,把安装介质解压后,把解压出来的jar包再解压,然后查找jar包解压出来的文件即可。

但是jar包那么多不可能手工一个一个的解压,那还不如安装来的简单,所以我们使用一下脚本:

cd database
for jar in $(find . -type f -name "*.jar"|grep rdbms);do
jar -tvf $jar | grep sbbd && echo $jar
done

脚本说明:

database目录是介质解压出来的目录

grep rdbms是因为我们需要的库文件时rdbms下的,所以过滤一下就不需要解压那么多文件了

jar命令的路径因人而异,自己填具体的路径

jar命令里面使用的tvf选项,只是查看jar包中的文件,没有正真的解压,找到必要的库后就会输出其所属的jar包文件名

案例如下:

[root@MHAD1 database]# for jar in $(find . -type f -name "*.jar"|grep rdbms);do
> /soft/product/10.2.0.5/dbh/jdk/bin/jar -tvf $jar | grep sbbd && echo $jar
> done
  3043 Thu Sep 08 03:43:08 CST 2005 rdbms/lib32/sbbdpt.o
  2721 Thu Sep 08 03:43:08 CST 2005 rdbms/lib32/ssbbded.o
./stage/Components/oracle.rdbms.hybrid/10.2.0.1.0/1/DataFiles/filegroup1.jar
  1863 Sat Sep 17 19:59:24 CST 2005 rdbms/lib/sbbdpt.o
  1191 Sat Sep 17 19:59:28 CST 2005 rdbms/lib/ssbbded.o
./stage/Components/oracle.rdbms/10.2.0.1.0/1/DataFiles/filegroup33.jar

这是一个先x64的安装介质,所以里面也包含了32为的库文件,按需使用,你现在可以去解压找到的jar包,然后从里面提取你想要的库文件了。

把这两个库文件复制到11g的数据库中,你现在就可以编译bbed了:

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

Linking BBED utility (bbed)
rm -f /soft/product/11.2.0.4/dbh/rdbms/lib/bbed
gcc -o /soft/product/11.2.0.4/dbh/rdbms/lib/bbed -m64 -z noexecstack -L/soft/product/11.2.0.4/dbh/rdbms/lib/ -L/soft/product/11.2.0.4/dbh/lib/ -L/soft/product/11.2.0.4/dbh/lib/stubs/  /soft/product/11.2.0.4/dbh/lib/s0main.o /soft/product/11.2.0.4/dbh/rdbms/lib/ssbbded.o /soft/product/11.2.0.4/dbh/rdbms/lib/sbbdpt.o `cat /soft/product/11.2.0.4/dbh/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -ldbtools11 -lclntsh  `cat /soft/product/11.2.0.4/dbh/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /soft/product/11.2.0.4/dbh/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 /soft/product/11.2.0.4/dbh/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /soft/product/11.2.0.4/dbh/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 /soft/product/11.2.0.4/dbh/lib/sysliblist` -Wl,-rpath,/soft/product/11.2.0.4/dbh/lib -lm    `cat /soft/product/11.2.0.4/dbh/lib/sysliblist` -ldl -lm   -L/soft/product/11.2.0.4/dbh/lib
[oracle@MHAD2-11g lib]$ bbed
Message 112 not found; No message file for product=RDBMS, facility=BBED
BBED-00113: file not found

注意,上面到错误Message 112 not found,说明BBED命令还缺失一个mesg文件:bbedus.msb,还是使用同样到方法获得,然后放到$ORACLE_HOME/rdbms/mesg目录下。


其他库文件你也可以按此方法获取。

亲测可用!



提供10g,11g linux及windows BBED工具 及详细编译说明readme文件。 一. 10g linux编译BBED [oracle@node3 ~]$ cd $ORACLE_HOME/rdbms/lib [oracle@node3 lib]$ make -f ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed 直接生成到bin下为可执行文件 编译完成后: 编译成功后登陆BBED,登陆时需要密码(BBED的默认密码是blockedit) [oracle@node3 bin]$ bbed Password: BBED: Release 2.0.0.0.0 - Limited Production on Wed Apr 11 10:01:07 2018 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> 二. 11g linux编译BBED oracle 11gR2环境编译BBED可执行文件需要ssbbded.o和sbbdpt.o对象文件被移除,不过可以从oracle 10g环境将这两个文件拷贝到oracle11g环境进行编译。 除了将上面的ssbbded.o和sbbdpt.o 文件拷贝到11g环境外,BBED需要用到 $ORACLE_HOME/rdbms/mesg目录下的bbedus.msb这个信息文件, 这几个文件需要oracle10g拷贝到oracle11g对于的目录文件夹linux_10g_bbed_64 包括了这3个文件。 下面是将以上3个文件Oracle 10g拷贝到11g对于目录后编译的过程。 1)把linux_10g_bbed_64目录下的10gssbbded.o和sbbdpt.o 放到 $ORACLE_HOME/rdbms/lib 目录下 2)把linux_10g_bbed_64目录下的10gbbedus.msb 文件拷贝到 $ORACLE_HOME/rdbms/mesg目录下 3)编译 [oracle@node1 ~] cd $ORACLE_HOME/rdbms/lib [oracle@node1 ~] make -f ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed [oracle@node3 bin]$ bbed Password: BBED: Release 2.0.0.0.0 - Limited Production on Wed Apr 11 10:01:07 2018 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> 三、windows 11GR2 bbed oracle9i版本以后Oracle不装载BBED了, Windows上也没有makefile来编译bbed。 所以,如果你想在Windows上使用bbed,你需要很多文件(本下载压缩包已经全包含了): 你需要一个bbed.exe. 你只能从Oracle 9i的安装得到它。 你需要有一堆的DLL。所有这些DLL在Oracle9i安装可以得到。 使用BBED需要消息文件。这文件是“bbedus.msb”,位于Oracle9i安装的MESG目录下。而你需要将其复制到ORACLE_HOME的RDBMS\MESG目录下。 这些在目录本压缩包的 bbed_win 已经全部提供了。 把它们放在BBED安装的目录下(比如D:\bbed_win),环境变量ORACLE_HOME设置好。确保消息文件在$ORACLE_HOME\RDBMS\MESG下,最后启动BBED: D:\bbed_win>bbed Password: BBED: Release 2.0.0.0.0 - Limited Production on Wed Apr 11 10:20:43 2018 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值