不同數據庫平台的互連一般稱之為數據庫的異構服務,現在各大數據庫之間都可以實現這樣的異構互連,只是各廠商的具體實現技術不一樣,如:在SQL SERVER裡面叫做LINKED SERVER,通過ODBC實現與其它數據庫的互聯。
而ORACLE實現異構服務的技術叫做透明網關(Transparent Gateway),當然之前ORACLE還采用過通用連接技術。目前ORACLE利用透明網關可以實現和SQL SERVER、SYBASE、DB2等多種數據庫的互聯。
透明網關的體系結構也很簡單,在ORACLE和SQL SERVER之間使用ORACLE透明網關服務器實現互連互通,其中透明網關服務器可以與ORACLE或SQL SERVER數據庫在同一台主機上,也可以是在獨立的一台主機上。
下面是具體步驟,如有疑問歡迎和我聯系,MSN: [email protected]。
1、在SQL SERVER數據庫上創建測試賬號和表
這裡我用的是10.16.74.140的PUBS數據庫,賬號cyx,
create table t (c char(10));
2、我測試所用數據庫和透明網關是在同一台機器上,在我本機:10.16.98.16,透明網關在oracle默認安裝時是不安裝的,所以如果你想用需要選擇這一選項。
3、安裝透明網關for sql server的軟件後,可以在$ORACLE_HOME下看到tg4msql目錄,編輯$ORACLE_HOME/tg4msql/admin/inittg4msql.sql文件確認這一行正確:
HS_FDS_CONNECT_INFO="SERVER=10.16.74.140;DATABASE=pubs"
4、修改透明網關server上的listener.ora,在SID_LIST中加入以下內容:
(SID_NAME = tg4msql) # SID自己命名
(ORACLE_HOME = c:)
(PROGRAM = tg4msql)
5、在oracle server上的tnsnames.ora中加入到透明網關的tnsname,內容如下:
sql2k =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.98.16)(PORT = 1521)) #此處HOST填的是透明網關SERVER的地址
)
(CONNECT_DATA = (SID = tg4msql) ) #此SID應和透明網關SERVER上設定的SID相同
(HS=OK)
)