有關Oracle透明網關的若幹使用方法介紹

Oracle 數據庫的透明網關( transparent gateway )是這樣的壹個接口:通過它,我們可以 sqlplus 操縱其他數據庫,如 ms sqlserver 、 sybase 、 infomix 等,實現數據庫的異構服務。我壹直在找 8i 的透明網關,但是沒有; 9i 就有了, 9 i 連接 sqlserver 的透明網關在 9i for nt/2000 的安裝盤上。

  本文以 oracle 連接 sqlserver 為例,敘述壹下配置的主要步驟。

  網絡結構

  服務器壹: sqlserver , ip 為 147.25.8.1 , port 為 1433 ;

  服務器二: oracle 9i server 和透明網關, ip 為 147.25.8.11 , port 為 1521 ;

  服務器三: oracle server , ip 為 147.25.8.111 , port 為 1521 ;

  客戶機: sqlnet + sqlplus ,或其他客戶端軟件。

  安裝 / 配置 oracle 9i server 和透明網關

  安裝: 在服務器二上安裝 9i server for nt/2000 ,必須選擇透明網關( transparent gateway for ms sqlsvr )。

  在服務器二上安裝 sqlsvr 的客戶端程序。

  配置: 在服務器二上正常配置 listener , port 口為 1521 ;

  在服務器二上配置 listener.ora ,在 SID_LIST 中加入:

  ( SID_NAME = SID_NAME ) ——— 自己修改

  ( ORACLE_HOME = 《 ORACLE_HOME 》)

  ( PROGRAM = tg4msql ) ———- 這是透明網關的目錄

  在服務器二上配置透明網關的配置文件(《 ORACLE_HOME 》 \tg4msql\admin\initSID_NAME.ora ),明確:

  HS_FDS_CONNECT_INFO = “SERVER = 147.25.8.1;DATABASE = pubs”

  在服務器二上配置 sqlsvr 的客戶連接:

  SERVER NAME = SERVER NAME ——– 自己修改

  SERVER = 147.25.8.1

  PORT = 1433

  PROTOCOL = TCP/IP SOCKET

  在服務器三上配置 tnsnames.ora ,加入壹個 tns :

  MSSQL =

  (DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS =

  (PROTOCOL = TCP)

  (HOST = 147.25.8.11)

  (PORT = 1521)))

  (CONNECT_DATA =

  (SID = SID_NAME)) ——–SID 自己修改(與上文壹致)

  (HS = OK)

  )

  測試

  服務器壹: 啟動 sqlserver ,確認用戶 sa 及其密碼(或另外建用戶、建表)。

  服務器二: 啟動 listener 。 oracle 數據庫不需要啟動。

  服務器三: sqlplus scott/tiger

  create database link mssql connect to sa identified by password using ‘mssql’;

  select * from sales@mssql;

  如果無誤,配置透明網關成功。

  其他

  使用透明網關只可以用標準的 DML ;

  服務器壹二三還可以是壹個服務器,也可以任意組合成兩個服務器;但是服務器二所在的服務器必須是 windows nt/2000 server 平臺;

  透明網關可以同時連接多個 sqlsvr ,方法是加入多個 SID_LIST 和相應的 initSID_NAME.ora 配置文件;

  可能會遇到中文字符顯示成亂碼的情況,這可能是由於 sqlsvr 的服務器和客戶端的程序不是壹個版本引起的。我正在測試。