如何从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目录下。


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

亲测可用!



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值