從Oracle到SQL Server的透明網關配置
2024-08-31 00:52:02
供稿:網友
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即可。