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

字號:

racle 9.2.0.1.0 ip:192.168.1.22 port:1521
    sql2000 ip:192.168.1.12 db: db1
    說明,透明網(wǎng)關可以跟oracle,sql server2000數(shù)據(jù)庫在同一臺機器或者不同機器,本例是跟oracle是同一臺機。
    1: 運行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:確認透明網(wǎng)關安裝成功,會出現(xiàn)D:oracleora92tg4msql目錄,配置文件inittg4msql.ora,注意,如果對應的listener.ora里面的sid_name設置為其他的,如本例的sql2000,那么應該新增一個配置文件對應為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)
     )
    其中global_dbname,sid_name可以隨意設置,但要注意與D:oracleora92tg4msql的配置文件對應,這里為sql2000那么,配置文件為initsql2000.ora。注:配置完了需要重起監(jiān)聽器
    在命令行啟動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)關的主機名或ip地址,端口也是對應的,這里因為透明網(wǎng)關同oracle server同一臺機器,所以一樣sid與listener.ora對應,為sql2000,服務名隨便設置,但注意建立db link時要跟這里一樣hs=ok 代表異構(gòu)服務
    5:建立數(shù)據(jù)庫連接
    drop dabase link db_sql;
     create public database link db_sql
     connect to wen identified by wen
     using 'sql';
    其中wen/wen為對應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)關來訪問了
    7:對遠程數(shù)據(jù)庫不允許進行ddl操作
    8:如果需要配置對多個sql server數(shù)據(jù)庫進行訪問,可以在目錄tg4msql中配置多個init.ora文件,里面指定對應的數(shù)據(jù)庫同時在listener.ora和tnsnames.ora進行配置,再建立相應的db links即可