【51CTO獨(dú)家特稿】DB2聯(lián)合Oracle數(shù)據(jù)步驟
1、安裝DB2
2、安裝關(guān)系連接器
或者安裝InfoSphere DB2(InfoSphere DB2是一個(gè)受限的DB2版本,它具有關(guān)系連接器,可以連接到其它關(guān)系數(shù)據(jù)庫,如SQL Server,Oracle,Sybase等),你不需要安裝IBM的DataDirect ODBC驅(qū)動(dòng)來連接Oracle,因?yàn)槲覀円惭bOracle客戶端,從DB2服務(wù)器連接到Oracle(InfoSphere DB2一向被視為IBM Webspehere Federation Server)。
安裝Oracle客戶端
下載正確的Oracle客戶端,將其安裝在zLinux DB2服務(wù)器上。參照一下步驟讓Oracle和DB2可以正確地相互通信。
1、找出創(chuàng)建DB2實(shí)例的組,可以在你的DB22 Home目錄下使用ls –l命令找出組名,如果你使用默認(rèn)的組名,那就是db2iadm1,我們將使用這個(gè)組名創(chuàng)建Oracle用戶;
2、為Oracle客戶端創(chuàng)建一個(gè)用戶id,如oracle,并指定與DB22實(shí)例相同的組名,我們這么做的目的是不修改Oracle客戶端安裝目錄下的文件權(quán)限,保證DB2實(shí)例可以訪問Oracle客戶端的文件;
3、啟動(dòng)Oracle客戶端GUI安裝程序開始安裝Oracle客戶端,打上Oracle推薦的補(bǔ)丁;
4、安裝完成后,向你Oracle DBA要tnsnames.ora,以便將其中的內(nèi)容復(fù)制到tnsnames.ora文件中,如果你不知道如何做,請(qǐng)咨詢你的Oracle DBA;
5、以O(shè)racle用戶登錄,輸入tnsping命令,從zLinux能ping通Oracle數(shù)據(jù)庫;
6、輸入$ echo $ORACLE_HOME,注意輸出的信息,因?yàn)楹竺嬖谂渲寐?lián)合Oracle表時(shí)會(huì)用到;
7、以DB2實(shí)例用戶登錄,在.bashrc文件中增加以下內(nèi)容:
export ORACLE_HOME=/opt/oracle/product/10.2/db_1
export PATH=$ORACLE_HOME/bin:$PATH
將ORACLE_HOME修改為第6步中輸出的路徑。
8、注銷,再以DB2實(shí)例用戶登錄,輸入tnsping,你應(yīng)該能成功ping通;
9、使用SQL*Plus連接到你的Oracle數(shù)據(jù)庫。
當(dāng)你從DB2成功連接到Oracle后,現(xiàn)在就可以安裝Oracle關(guān)系連接器了,然后在DB2中為Oracle表創(chuàng)建別名。
安裝InfoSphere DB2或DB2/關(guān)系連接器
在現(xiàn)有DB2實(shí)例上,你要么安裝IBM InfoSphere DB2,要么安裝DB2關(guān)系連接器,然后才能從DB2聯(lián)合其它數(shù)據(jù)源,如SQL Server或Oracle。
跟著InfoSphere DB2的GUI安裝向?qū)?,或在現(xiàn)有DB2實(shí)例上安裝關(guān)系連接器時(shí),在“選擇安裝功能”屏幕上,僅選擇Oracle數(shù)據(jù)源支持。
GUI安裝完后,安裝程序會(huì)創(chuàng)建libdb2net8F.so庫,但如果GUI安裝程序找不到g++命令,庫的創(chuàng)建就會(huì)失敗。
進(jìn)入~/sqllib/lib64目錄,你將會(huì)看到主要的庫文件Oracle libdb2net8.so,其它兩個(gè)文件是libdb2net8F.so和libdb2net8U.so。
進(jìn)入$HOME/sqllib/cfg目錄,檢查db2dj.ini文件的內(nèi)容,如果你在安裝期間設(shè)置的信息有點(diǎn)不對(duì),現(xiàn)在你可以手工進(jìn)行修改。
$ cat db2dj.ini
DJX_ODBC_LIBRARY_PATH=/opt/ibm/WSII/odbc/lib
ODBCINI=/home/db2inst1/odbc.ini
ORACLE_HOME=/opt/oracle/product/10.2/db_1
確保ORACLE_HOME與你在.bashrc文件中指定的.bashrc完全匹配,DJX_ODBC_LIBRARY_PATH和ODBCINI是為SQL Server準(zhǔn)備的。
如果你修改了db2dj.ini文件,請(qǐng)重啟實(shí)例。
$ db2stop force
$ db2start
現(xiàn)在可以創(chuàng)建Oracle封裝器了,最簡單且不容易犯錯(cuò)的方法是使用DB2控制中心工具,你可以將每一步的命令保存到文件中,以便將來需要時(shí)直接調(diào)用。
1、首先將DBM CFG參數(shù)設(shè)置為FEDERATED=YES
$ db2 get dbm cfg | grep -i federate
Federated Database System Support (FEDERATED) = YES
2、在服務(wù)器或客戶端上啟動(dòng)db2cc,編目DB2系統(tǒng),實(shí)例和數(shù)據(jù)庫名。
A)創(chuàng)建一個(gè)封裝器,在變量窗口指定ORACLE_HOME的值。
B)創(chuàng)建一個(gè)服務(wù)器定義,指定NODE名與Oracle服務(wù)名或SID一致,對(duì)于正確建立連接這些很重要。
C)創(chuàng)建用戶映射。
D)創(chuàng)建別名,你應(yīng)該能夠發(fā)現(xiàn)Oracle表名,如果不行,重復(fù)上述步驟,確保你的ORACLE_HOME,SID定義正確。
現(xiàn)在你已經(jīng)有了Oracle表的別名了,你就可以在DB2中任意使用了。
更多信息請(qǐng)查看IT技術(shù)專欄