oracle 10g 安装介质,如何从Oracle 10g的安装介质中提取BBED必须的sbbdpt.o和ssbbded.o库文件...
BBED編譯的時(shí)候需要使用到sbbdpt.o和ssbbded.o兩個(gè)庫(kù)文件,但是從11g開始,Oracle不再提供這兩個(gè)庫(kù)文件,但是可以使用10g版本中的這兩個(gè)庫(kù)文件在11g中編譯生成BBED工具。
那么,如果身邊沒有已安裝的10g數(shù)據(jù)庫(kù)怎么辦?難道要安裝一邊10g的數(shù)據(jù)庫(kù)才能獲取這兩個(gè)庫(kù)文件么?那多折騰,如果不想再使用10g數(shù)據(jù)庫(kù),還得卸載,太費(fèi)事。
其實(shí)不用那么麻煩,下面介紹如何獲取這兩個(gè)庫(kù)文件。
我們都知道OUI的安裝過程有很大部分是解壓大量已經(jīng)編譯并打包好的jar包,所以我們從這些jar包中下手。
那么我們的處理方法就是,把安裝介質(zhì)解壓后,把解壓出來的jar包再解壓,然后查找jar包解壓出來的文件即可。
但是jar包那么多不可能手工一個(gè)一個(gè)的解壓,那還不如安裝來的簡(jiǎn)單,所以我們使用一下腳本:
cd database
for jar in $(find . -type f -name "*.jar"|grep rdbms);do
jar -tvf $jar | grep sbbd && echo $jar
done
腳本說明:
database目錄是介質(zhì)解壓出來的目錄
grep rdbms是因?yàn)槲覀冃枰膸?kù)文件時(shí)rdbms下的,所以過濾一下就不需要解壓那么多文件了
jar命令的路徑因人而異,自己填具體的路徑
jar命令里面使用的tvf選項(xiàng),只是查看jar包中的文件,沒有正真的解壓,找到必要的庫(kù)后就會(huì)輸出其所屬的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
這是一個(gè)先x64的安裝介質(zhì),所以里面也包含了32為的庫(kù)文件,按需使用,你現(xiàn)在可以去解壓找到的jar包,然后從里面提取你想要的庫(kù)文件了。
把這兩個(gè)庫(kù)文件復(fù)制到11g的數(shù)據(jù)庫(kù)中,你現(xiàn)在就可以編譯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
注意,上面到錯(cuò)誤Message 112 not found,說明BBED命令還缺失一個(gè)mesg文件:bbedus.msb,還是使用同樣到方法獲得,然后放到$ORACLE_HOME/rdbms/mesg目錄下。
其他庫(kù)文件你也可以按此方法獲取。
親測(cè)可用!
總結(jié)
以上是生活随笔為你收集整理的oracle 10g 安装介质,如何从Oracle 10g的安装介质中提取BBED必须的sbbdpt.o和ssbbded.o库文件...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle sql序列,SQL ser
- 下一篇: c语言switch中用ifelse,初学