top
Loading...
從Oracle到SQLServer的透明網關配置

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即可。

(t114)

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗