從Oracle到SQLServer的透明網(wǎng)關(guān)配置

字號(hào):

racle 9.2.0.1.0 ip:192.168.1.22 port:1521
    sql2000 ip:192.168.1.12 db: db1
    說明,透明網(wǎng)關(guān)可以跟oracle,sql server2000數(shù)據(jù)庫在同一臺(tái)機(jī)器或者不同機(jī)器,本例是跟oracle是同一臺(tái)機(jī)。
    1: 運(yùn)行oracle 安裝軟件,安裝類型選自定義,選擇里面的安裝oracle transparent gateway 9.2.0.1.0,下面的oracle transparent gateway from microsoft sql server 9.2.0.1.0,這里可以看到,還可以選擇其他的數(shù)據(jù)庫如,sybase等
    2:確認(rèn)透明網(wǎng)關(guān)安裝成功,會(huì)出現(xiàn)D:oracleora92tg4msql目錄,配置文件inittg4msql.ora,注意,如果對應(yīng)的listener.ora里面的sid_name設(shè)置為其他的,如本例的sql2000,那么應(yīng)該新增一個(gè)配置文件對應(yīng)為initsql2000.ora而不是inittg4msql.ora了,里面內(nèi)容如下:
    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)
     )
    其中g(shù)lobal_dbname,sid_name可以隨意設(shè)置,但要注意與D:oracleora92tg4msql的配置文件對應(yīng),這里為sql2000那么,配置文件為initsql2000.ora。注:配置完了需要重起監(jiān)聽器
    在命令行啟動(dòng)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為網(wǎng)關(guān)的主機(jī)名或ip地址,端口也是對應(yīng)的,這里因?yàn)橥该骶W(wǎng)關(guān)同oracle server同一臺(tái)機(jī)器,所以一樣sid與listener.ora對應(yīng),為sql2000,服務(wù)名隨便設(shè)置,但注意建立db link時(shí)要跟這里一樣hs=ok 代表異構(gòu)服務(wù)
    5:建立數(shù)據(jù)庫連接
    drop dabase link db_sql;
     create public database link db_sql
     connect to wen identified by wen
     using 'sql';
    其中wen/wen為對應(yīng)sql server2000里的數(shù)據(jù)庫db1的用戶/密碼
    6:測試數(shù)據(jù)連接
    SQL> desc football_team@from_sql;
     名稱
     ---------------------------------
     t_id
     t_group
     t_name
     t_bigpic
     t_smallpic
    這樣,就可以通過透明網(wǎng)關(guān)來訪問了
    7:對遠(yuǎn)程數(shù)據(jù)庫不允許進(jìn)行ddl操作
    8:如果需要配置對多個(gè)sql server數(shù)據(jù)庫進(jìn)行訪問,可以在目錄tg4msql中配置多個(gè)init.ora文件,里面指定對應(yīng)的數(shù)據(jù)庫同時(shí)在listener.ora和tnsnames.ora進(jìn)行配置,再建立相應(yīng)的db links即可