DB2聯合Oracle數據步驟 1、安裝DB2 2、安裝關系連接器 或者安裝InfoSphere DB2(InfoSphere DB2是一個受限的DB2版本,它具有關系連接器,可以連接到其它關系數據庫,如SQL Server,Oracle,Sybase等),你不需要安裝IBM的DataDirect ODBC驅動來連接Oracle,因為我們要安裝Oracle客戶端,從DB2服務器連接到Oracle(InfoSphere DB2一向被視為IBM Webspehere Federation Server)。 安裝Oracle客戶端 下載正確的Oracle客戶端,將其安裝在zLinux DB2服務器上。參照一下步驟讓Oracle和DB2可以正確地相互通信。 1、找出創建DB2實例的組,可以在你的DB22 Home目錄下使用ls –l命令找出組名,如果你使用默認的組名,那就是db2iadm1,我們將使用這個組名創建Oracle用戶; 2、為Oracle客戶端創建一個用戶id,如oracle,并指定與DB22實例相同的組名,我們這么做的目的是 不修改Oracle客戶端安裝目錄下的文件權限,保證DB2實例可以訪問Oracle客戶端的文件; 3、啟動Oracle客戶端GUI安裝程序開始安裝Oracle客戶端,打上Oracle推薦的補丁; 4、安裝完成后,向你Oracle DBA要tnsnames.ora,以便將其中的內容復制到tnsnames.ora文件中,如果你不知道如何做,請咨詢你的Oracle DBA; 5、以Oracle用戶登錄,輸入tnsping命令,從zLinux能ping通Oracle數據庫; 6、輸入$ echo $ORACLE_HOME,注意輸出的信息,因為后面在配置聯合Oracle表時會用到; 7、以DB2實例用戶登錄,在.bashrc文件中增加以下內容: export ORACLE_HOME=/opt/oracle/product/10.2/db_1 export PATH=$ORACLE_HOME/bin:$PATH 將ORACLE_HOME修改為第6步中輸出的路徑。 8、注銷,再以DB2實例用戶登錄,輸入tnsping,你應該能成功ping通; 9、使用SQL*Plus連接到你的Oracle數據庫。 當你從DB2成功連接到Oracle后,現在就可以安裝Oracle關系連接器了,然后在DB2中為Oracle表 創建別名。 安裝InfoSphere DB2或DB2/關系連接器 在現有DB2實例上,你要么安裝IBM InfoSphere DB2,要么安裝DB2關系連接器,然后才能從DB2聯合其它數據源,如SQL Server或Oracle。 跟著InfoSphere DB2的GUI安裝向導,或在現有DB2實例上安裝關系連接器時,在“選擇安裝功能”屏幕上,僅選擇Oracle數據源支持。 GUI安裝完后,安裝程序會創建libdb2net8F.so庫,但如果GUI安裝程序找不到g++命令,庫的創建 就會失敗。 進入~/sqllib/lib64目錄,你將會看到主要的庫文件Oracle libdb2net8.so,其它兩個文件是libdb2net8F.so和libdb2net8U.so。 進入$HOME/sqllib/cfg目錄,檢查db2dj.ini文件的內容,如果你在安裝期間設置的信息有點不 對,現在你可以手工進行修改。 $ 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準備的。 如果你修改了db2dj.ini文件,請重啟實例。 $ db2stop force $ db2start 現在可以創建Oracle封裝器了,最簡單且不容易犯錯的方法是使用DB2控制中心工具,你可以將每一步的命令保存 到文件中,以便將來需要時直接調用。 1、首先將DBM CFG參數設置為FEDERATED=YES $ db2 get dbm cfg | grep -i federate Federated Database System Support (FEDERATED) = YES 2、在服務器或客戶端上啟動db2cc,編目DB2系統,實例和數據庫名。 A)創建一個封裝器,在變量窗口指定ORACLE_HOME的值。 B)創建一個服務器定義,指定NODE名與Oracle服務名或SID一致,對于正確建立連接這些很重要。 C)創建用戶映射。 D)創建別名,你應該能夠發現Oracle表名,如果不行,重復上述步驟,確保你的ORACLE_HOME,SID 定義正確。 現在你已經有了Oracle表的別名了,你就可以在DB2中任意使用了。