Oracle 9.2.0.1.0 ip:192.168.1.22 port:1521
sql2000 ip:192.168.1.12 db: db1
說明,透明網關可以跟Oracle,SQL Server2000數據庫在同一台機器或者不同機器,本例是跟Oracle是同一台機。
1: 運行oracle 安裝軟件,安裝類型選自定義,選擇裡面的安裝oracle transparent gateway 9.2.0.1.0,下面的Oracle transparent gateway from microsoft SQL Server 9.2.0.1.0,這裡可以看到,還可以選擇其他的數據庫如,Sybase等
2:確認透明網關安裝成功,會出現D:Oracleora92tg4msql目錄,配置文件inittg4msql.ora,注意,如果對應的listener.ora裡面的sid_name設置為其他的,如本例的sql2000,那麼應該新增一個配置文件對應為initsql2000.ora而不是inittg4msql.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
3:配置listener.ora
加上在段SID_LIST_LISTENER中加上
(SID_DESC = (GLOBAL_DBNAME = tg4msql) (PROGRAM = tg4msql) (SID_NAME = sql2000) (ORACLE_HOME = D:Oracleora92) )
其中global_dbname,sid_name可以隨意設置,但要注意與D:Oracleora92tg4msql的配置文件對應,這裡為sql2000那麼,配置文件為initsql2000.ora。注:配置完了需要重起監聽器
在命令行啟動lsnrctl c:lsnrctl lsnrctl>stop lsnrctl>start
4:配置tnsnames.ora
加上
sql = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = wen)(PORT = 1521)) ) (CONNECT_DATA = (SID = sql2000) ) (HS = OK) )
這裡的host為網關的主機名或ip地址,端口也是對應的,這裡因為透明網關同Oracle server同一台機器,所以一樣sid與listener.ora對應,為sql2000,服務名隨便設置,但注意建立db link時要跟這裡一樣hs=ok 代表異構服務
5:建立數據庫連接
drop dabase link db_sql; create public database link db_sql connect to wen identifIEd by wen using 'sql';
其中wen/wen為對應SQL Server2000裡的數據庫db1的用戶/密碼
6:測試數據連接
SQL> desc football_team@from_sql; 名稱 --------------------------------- t_id t_group t_name t_bigpic t_smallpic
這樣,就可以通過透明網關來訪問了
7:對遠程數據庫不允許進行ddl操作
8:如果需要配置對多個SQL Server數據庫進行訪問,可以在目錄tg4msql中配置多個init.ora文件,裡面指定對應的數據庫同時在listener.ora和tnsnames.ora進行配置,再建立相應的db links即可。