oracle mysql 透明网关_如何在Oracle中建立透明网关

展开全部

当在Oracle 环境下通过透明网关建立一个对SQL Server 的连接时,要用到如下的语句,Create database link test connect to user identified by password using 'TG4MSQL';

在上面的语句里user 和 password是SQL Server 合法32313133353236313431303231363533e58685e5aeb931333339653662的用户登录名和密码,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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值