透明閘道器 oracle 10g for sqlserver 和sybase的配置

paulyibinyi發表於2011-06-16

1.  安裝透明閘道器oracle 10g for windows版本

  安裝介質10201_gateways_win32.zip

oracle11g開始,才開始提供透明閘道器for unix版本的下載。

在裝的過程中選擇for sqlserverfor sybase,並且輸入sqlserver所在資料庫的ip地址和資料庫名和sysbase所在資料庫的ip地址和資料庫名。

2.  透明閘道器所在伺服器listener.ora配置

      LISTENER =

       (ADDRESS_LIST=

          (ADDRESS=(PROTOCOL=tcp)(HOST=86.28.23.44)(PORT=1521))

          (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))

 

     SID_LIST_LISTENER=

       (SID_LIST=

       (SID_DESC=

          (SID_NAME=tg4msql)   --for sqlserver閘道器

          (ORACLE_HOME=/oracle/app/oracle/product/10.2)

          (PROGRAM=tg4msql)

        )

       (SID_DESC=

          (SID_NAME=tg4sybs)   --for sysbase閘道器

          (ORACLE_HOME=/oracle/app/oracle/product/10.2)

          (PROGRAM=tg4sybs)

        )

       )

 

 注意例項名為什麼是tg4msql主要是看$ORACLE_HOME/tg4msql/admin/

   inittg4msql,init後面一串tg4msql就是sid_name

 sysbase也是一樣

$ORACLE_HOME/tg4sybs/admin/inittg4sybs

重啟監聽,檢視lsnrctl status,監聽到tg4msqltb4sybs的服務。
    

3.  透明閘道器所在伺服器配置tnsnames.ora檔案

 

tg4msql =   --for sqlserver

      (DESCRIPTION=

       (ADDRESS=(PROTOCOL=tcp)(HOST=86.28.23.44)(PORT=1521))

        (CONNECT_DATA=(SID=tg4msql))

       (HS=ok)

      )

 

 

tg4sybs =   --for sybase

      (DESCRIPTION=

       (ADDRESS=(PROTOCOL=tcp)(HOST=86.28.23.44)(PORT=1521))

        (CONNECT_DATA=(SID=tg4sybs))

       (HS=ok)

      )

 

4.  配置 inittg4msqlinitg4sybs檔案

檔案存放路徑$ORACLE_HOME/tg4msqltg4sybs/admin下的inittg4msqlinittg4sybs檔案

 

inittg4msql配置如下:

HS_FDS_CONNECT_INFO="SERVER=86.28.16.5;DATABASE=CKTS_ZH"   --10g連線sqlserver寫法

#HS_FDS_CONNECT_INFO=[86.28.16.5]//CKTS_ZH    --11g連線sqlserver寫法

HS_LANGUAGE=AMERICAN_AMERICA.US7ASCII   --字符集設定

HS_TRANSACTION_MODEL=READ_ONLY_AUTOCOMMIT  --事物處理 sqlserver

HS_FDS_TRANSACTION_MODEL= READ_ONLY_AUTOCOMMIT   --事物處理sybase

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

 

Inittg4sybs配置如下:

 

HS_FDS_CONNECT_INFO=dec_cits.zjcits
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
HS_FDS_TRANSACTION_MODEL=
READ_ONLY_AUTOCOMMIT
#
# Environment variables required for Sybase
#
set SYBASE=d:\sybaseserver

 

5.  測試連通性

 

建立dblink訪問sqlserver資料庫,

 

建立一個使用者paul/paul

Connect paul/paul

SQL> create database link dblink_cms connect to "root" identified by "rootcms" using 'tg4msql';

Database link created.

注意,要用雙引號將root, rootcms引起來。

SQL> select count(*)  from cpcode@dblink_cms;

     在客戶那遇到問題是,一直hang在那,沒有結果集出來,也沒有反應,如果按ctrl+c則報下面錯誤,在metalink沒查到相關案例,最後是透過重啟oracle 10g資料庫和重啟透明閘道器所在的伺服器解決,重啟後,能正常查詢。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-700074/,如需轉載,請註明出處,否則將追究法律責任。

相關文章