Oracle Transparent Gateway for SQL Server安裝配置說明

君落塵發表於2014-11-13

最近在Oracle裡安裝Transparent Gateway for SQL Server,遇到不少問題,終於在今天完全搞定,所以把一些注意問題記錄下來。透過Gateway,可以在Oracle裡透明的訪問其他不同的資料庫,如SQL Server, DB2, Sybase等等,就像遠端Oracle資料庫一樣。各不同的資料為配置方式也大同小異,本文只說明SQL Server的安裝。 Oracle的透明閘道器的安裝其實也挺簡單:

第一步,安裝Oracle Transparent Gateway軟體。

在9i中,Gateway軟體就在那三張安裝盤裡;而在11g中是一個單獨的安裝檔案,需要單獨下載。Oracle的Linux版本下載地址為: 安裝過程比較簡單,不再詳述。只要在選擇產品裡選擇SQL Server的那個就可以了。安裝完Gateway軟體後,在ORACLE_HOME目錄下有一下dg4msql的目錄(在9i裡是tg4msql,之後的命令也相應的是tg4msql,不再複述),這就是Gateway軟體的目錄了

第二步,配置Gateway的設定。

在dg4msql/admin目錄下有一個initdg4msql.ora的檔案。該檔案的格式是init.ora,這裡的SID在後面需要用到,系統預設的是dg4msql,一般情況這樣就可以了,如果改名,在之後使用這個修改後地名字即可,配合使用Agency,則檔名變成initAgency.ora。該檔案是Gateway的初始引數檔案,描述連線的是哪個SQL Server資料庫。檔案內容如下 HS_FDS_CONNECT_INFO=172.28.2.31:1433//Agency HS_FDS_TRACE_LEVEL=OFF HS_FDS_RECOVERY_ACCOUNT=RECOVER HS_FDS_RECOVERY_PWD=RECOVER 只要修改HS_FDS_CONNECT_INFO引數就可以了。格式是:hostname:port/serverinstance/databasename,其中hostname是機器名稱或IP,PORT是SQL Server的埠號,SQL Server2005預設為1433(題外話:在Oracle的安裝文件裡沒有指定這個PORT,所以無法正確使用,我在這兒搞了很長時間才從網上找到原因,看來Oracle也不能太相信了!)serverinstance是SQL Server的例項名,不知道什麼時候SQL Server也搞起例項來了,一般空著就行。Databasename是SQL Server的資料庫名,好像也可以空著,不過我還是指定了。這一步需要注意的就是那個埠號了。另外在9i中格式跟這個不一樣,是"SERVER=dataserver;DATABASE=Agency"。

第三步,配置監聽器。

在listener.ora檔案里加入以下內容: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (PROGRAM = dg4msql) (SID_NAME = Agency) (ORACLE_HOME = /opt/oracle/product/11.1.0.6) ) ) 這裡PROGRAM指定應用程式名稱,不能改變。SID_NAME就是前面init.ora檔名裡指定的SID,ORACLE_HOME沒什麼說的吧?這一步需要注意的是在叢集環境下,SID_LIST_LISTENER也應該是這個名稱而不應該是類似於SID_LIST_LISTENER_DBRAC1,SID_LIST_LISTENER_DBRAC2這樣的名稱。不同機器下內容一樣就可以了。這也是我遇到的問題。

第四步,配置tnsnames.ora

Agency = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.28.2.21)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 172.28.2.22)(PORT = 1521)) (CONNECT_DATA = (SID = Agency) ) (HS=OK) ) 此處的SID也是init.ora檔名中指定的SID。與一般配置不同的就是(HS=OK)這句,這句指定是外部程式而不是Oracle資料庫例項 


第五步,建立DBLink

跟一般的DBLink一樣,沒什麼說的,using子句裡使用tnsnames.ora裡配置的entry即可。 create public database link AGENCY connect to SA identified by "1" using 'Agency'; 


第六步,使用資料庫連線

按一般的資料庫連線使用: Select count(*) from area@Agency; 注意事項不同版本的名稱不同 init.ora檔案裡的埠號叢集環境的監聽器配置 Tnsnames.ora裡的(HS=OK) 未說明的重要問題事務問題 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29819001/viewspace-1331551/,如需轉載,請註明出處,否則將追究法律責任。

相關文章