Oracle透明网关的使用

Posted patrickstar2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘

以上是关于Oracle透明网关的使用的主要内容,如果未能解决你的问题,请参考以下文章

Oracle透明网关访问MySQL数据库

Linux ORACLE RAC 通过透明网关连接Sqlserver

实战篇:Oracle 配置透明网关访问 MySQL 详细教程

实战篇:Oracle 配置透明网关访问 MySQL 详细教程

Oracle 透明网关主要配置步骤

linux中安装oracle12c透明网关