db1Oracle Transparent Gateway 9.2.0.1.0 → Oracle Transparent Gateway for Microsoft SQL Server 9.2.0.1.0(亦可選 Sybase 等其他異構資料庫)。D:\Oracle\ora92\tg4msql。預設為 inittg4msql.ora。若 listener.ora 中 SID_NAME 設為 sql2000,則須對應建立 initsql2000.ora:
HS_FDS_CONNECT_INFO = "SERVER=192.168.1.12; DATABASE=db1"
HS_FDS_TRACE_LEVEL = OFF
HS_FDS_RECOVERY_ACCOUNT = RECOVER
HS_FDS_RECOVERY_PWD = RECOVER
在 SID_LIST_LISTENER 區段加入:
(SID_DESC =
(GLOBAL_DBNAME = tg4msql)
(PROGRAM = tg4msql)
(SID_NAME = sql2000)
(ORACLE_HOME = D:\Oracle\ora92)
)
GLOBAL_DBNAME、SID_NAME 可自訂,但必須與初始化參數檔名稱對應(此處 SID_NAME=sql2000 → initsql2000.ora)。配置完成後重啟監聽器:
lsnrctl stop
lsnrctl start
sql = (DESCRIPTION =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = wen)(PORT = 1521)))
(CONNECT_DATA = (SID = sql2000))
(HS = OK)
)
HOST:網關主機名或 IP(同機可用 localhost)SID:對應 listener.ora 的 SID_NAMEHS = OK:標示為異構服務DROP DATABASE LINK db_sql;
CREATE PUBLIC DATABASE LINK db_sql
CONNECT TO wen IDENTIFIED BY wen
USING 'sql';
wen/wen 為 SQL Server 資料庫 db1 的登入帳密。
SQL> DESC football_team@db_sql;
-- 成功顯示遠端資料表結構
tg4msql 目錄建立多個 init*.ora,並同步更新 listener.ora、tnsnames.ora、建立對應 DB Link。