如何在Oracle中建立透明网关

更新时间:01-22 教程 由 念旧 分享

如何在Oracle中建立透明网关?

当在Oracle 环境下通过透明网关建立一个对SQL Server 的连接时,要用到如下的语句,

Create database link test connect to user ideNTified by password using 'TG4MSQL';

在上面的语句里user 和 password是SQL Server 合法的用户登录名和密码,TG4MSQL则是Oracle Server端的TNS_NAMES 文件里已经配置好的服务名,服务器在处理上面的语句时会通过这个服务名 (TG4SMQL)访问透明网关所在的代理机器(因为透明网关可以安装在Server端,所以可能就是本地服务名)。接下来,透明网关所在的代理机器通过监听器接收到Oracle Server端的连接请求,运行程序tg4msql.exe实现到SQL Server的访问。

主机 操作系统 软件环境

ORADB Windows 2000 Professional Oracle 9.0.2 Database Standard Edition

GATEWAY Windows 2000 Professional Oracle 9.0.2 Database Standard Edition

SQLDB Windows 2000 Server SQL Server (访问的数据库 Billy_Test)

在这里需要先说明几点:

1、安装Transparent Gateway 必须先安装Oracle Database,单纯的客户端是没有Transparent Gateway的。

2、Transparent Gateway for Microsoft SQL Server目前只有NT版本,因此网关程序tg4msql仅包含在Oracle Database for windows中。

3、上面已经说过,透明网关可以安装在独立的机器上或者Oracle Server 和 非Oracle Server 端,在这里我采用的方法是Oracle Server,SQL Server, 透明网关分别在不同的机器上。

现在从SQLDB开始:

在SQLDB上创建将要从Oracle数据库访问SQL Server的用户user/password,并授予可访问Billy_test的权限;

接下来是GATEWAY:

1.安装好Oracle 9.0.2 Database for Windows后,会发现在%ORACLE_HOME%下有目录tg4mSQL,以及网关程序$ORACLE_HOMEBINtg4msql;

2. 修改%ORACLE_HOME%tg4msqlinittg4msql.ora,这是网关进程启动时需要的初始化文件。只需改下面这一行即可:

HS_FDS_CONNECT_INFO=SQLDB.CDR

3.修改%ORACLE_HOME%networkadminlistener.ora如下:

LISTENER =

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))

)

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(SID_NAME=tg4msql)

(ORACLE_HOME=e:OracleOraHome_9I) #用你的%ORACLE_HOME%

(PROGRAM=tg4msql) # 必须指向‘tg4msql’

)

)

4. 重启透明网关的监听器。

最后是ORADB:

1.修改tnsnames.ora

TG4MSQL =

(DESCRIPTION =

(ADDRESS =

(PROTOCOL = TCP)

(HOST= GATEWAY) #透明网关所在机器地址

(PORT = 1521)

)

(CONNECT_DATA =

(SID = tg4msql) #tg4msql必须要和GATEWAY上listener.ora中的SID一致

)

(HS = OK) #这很重要,告诉Oracle Server要调用异构服务模块来处理

)

2.修改initora9i.ora(数据库初始化文件)

global_names=true,重启数据库。

否则会在执行sql时报错:ORA-02085: 数据库链接CDR与HO.WORLD相连结

原因如下:The GLOBAL_NAMES parameter when set to TRUE implies that database link name should be similar to the Global database name to which you are trying to connect.

3.创建访问SQLDB.CDR的数据库链接

SQL>create public database link test connect to user identified by password using ‘TG4MSQL’;

4.最后执行SQL测试看是否能正常访问SQL Server

SQL>select sysdate from dual@Billy_test;

声明:关于《如何在Oracle中建立透明网关》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2295295.html