Oracle透明網關的使用


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 配置文件;

 

安裝步驟

1、在透明網關服務器上安裝組件;
2、按以下格式修改透明網關服務器上的下列兩個文件
$ORACLE_HOME/tg4msql/inittg4msql.ora

1 HS_FDS_CONNECT_INFO="SERVER=SQL Server服務器IP;DATABASE=SQL數據庫名"
2 HS_FDS_TRACE_LEVEL=OFF
3 HS_FDS_RECOVERY_ACCOUNT=RECOVER
4 HS_FDS_RECOVERY_PWD=RECOVER

 


$ORACLE_HOME/network/admin/listener.ora

 1 LISTENER =
 2 (DESCRIPTION_LIST = 
 3 (DESCRIPTION =
 4 (ADDRESS = (PROTOCOL = TCP)(HOST = 本機IP)(PORT = 監聽端口))
 5 )
 6 )
 7 
 8 SID_LIST_LISTENER =
 9 (SID_LIST = 
10 (SID_DESC =
11 (SID_NAME = tg4msql)
12 (ORACLE_HOME = $ORACLE_HOME目錄)
13 (PROGRAM = tg4msql)
14 )
15 )

 

3、在Oracle服務器上配置tnsname.ora文件:

1 MSSQL =
2 (DESCRIPTION = 
3 (ADDRESS_LIST = 
4 (ADDRESS =(PROTOCOL = TCP)(HOST = 透明網關IP)(PORT = 監聽端口))
5 ) 
6 (CONNECT_DATA =(SID = tg4msql))
7 (HS = OK) 
8 )

 


4、在Oracle數據庫中創建DB_Link:
create database link DL名稱 connect to sql用戶名 identified by "sql密碼" using 'MSSQL'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM