配置mysql 透明网关详解_配置透明网关的步骤

这篇blog写了一部分没完成,已经拖了一周了,今天终于把它给赶出来了:

透明网关的安装于配置详解

目的:

我想通过oracle去访问另一台机器上的sql server2000上的数据库的表。

环境:

oracle9.2 装在win2000上,机器名是HPXXX,sql server2000也装在win2000上机器名是anglei内有数据库名:abc里面有表dict,用户名:u1 密码:u1(注意这是abc库的用户名密码,而不是oracle的)。把HPXXX和anglei连成局域网。

透明网关(Transparent Gateway)可以和oracle装在同一台机器上,也可不是同一台机器上,我选择的是安装在同一台机器上。

步骤:

一、安装透明网关

运行oracle9.2安装软件(既是我安装oracle数据库的同一版本)在“安装类型”页面选择“自定义”安装。

如图:

选择安装透明网关 如图:

系统提示配置,这里的sql server就是你安装sql server2000的机器名(我的是anglei),sql数据库就是你的sql server数据库名称(我的是abc),当然你这里也可以都不填写内容,安装完成后还可以再配置。

透明网关安装结束后,你可以在oracle_home的目录下看的\tg4msql个文件夹,里面有\admin\inittg4msql.ora这个文件,在下一步我们将用到,这就标志着你透明网关安装结束。

二、配置透明网关

1.在listener.ora里面增加(当然这也可以在图形用户界面操作 Net Manager)我是为让大家看着方便:

(SID_DESC =

(GLOBAL_DBNAME = sql2000)--可以随便取名

(PROGRAM = tg4msql)--必须这样写

(SID_NAME = sql2000)--服务名在inittg4msql处会用到,两个名称要相同

(ORACLE_HOME = D:\oracle\ora92)--我的oracle_home

)

2:

在tg4msql\admin里面把inittg4msql.ora copy一份重命名为initsql2000.ora(sql2000就是上步配置的SID_NAME)

# This is a sample agent init file that contains the HS parameters that are

# needed for the Transparent Gateway for SQL Server

#

# HS init parameters

#

HS_FDS_CONNECT_INFO="SERVER=anglei;DATABASE=abc"--(anglei,abc在环境里有说明)

HS_FDS_CONNECT_INFO=anglei.abc--这项是我自己加的开始我没有加时老是报ORA-28500的错,后来加上就好了,然后我再把它去掉也不报ORA-28500的错了,不知道为什么。

HS_FDS_TRACE_LEVEL=DEBUG

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

3.

在tnsnames.ora里面增加下面:

SQL_erver =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = HPxxxxx)(PORT = 1521))--(HPXXX在环境里面我也有说明)

)

(CONNECT_DATA =

(SERVICE_NAME = sql2000)--和1的SID_NAME 要相同

)

(HS = OK)--一定要加的

)

4.重新启动侦听服务

5.

建立batabase link

SQL> create public database link sql

2  connect to u1 identified by u1--u1我在环境里面也有说明

3  using 'SQL_erver';--和3的名称一样

下面就可以测试了

SQL> select count(1) from dict@sql;

COUNT(1)

----------

828

总结:我自己做透明网关实验做了三个下午才成功,这其中出了好的的问题,通过baidu都解决的差不多,到最后碰到:

ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:

[Transparent gateway for MSSQL][Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL

Server 不存在或访问被拒绝 (SQL State: 08001; SQL Code: 17)

ORA-02063: 紧接着2 lines(源于SQL)

我在网上始终没有找到解决的方法,可能你也会碰到,到最后我就把sql server的数据库abc重新建个用户u1,然后通过HPXXX机子上的sql server2000远程登录确保能够查看,我又在initsql2000.ora文件里添加了HS_FDS_CONNECT_INFO=anglei.abc一项,同时吧HS_FDS_TRACE_LEVEL=OFF改为HS_FDS_TRACE_LEVEL=DEBUG,然后重启监听,然后重建db link 就成功了,我这样试了几次,最后总结一下:如果报的是上面ORA-28500错误并且(SQL State: 08001; SQL Code: 17),就把HS_FDS_CONNECT_INFO=;HS_FDS_TRACE_LEVEL=DEBUG加上,重启监听,重建db link,就差不多了,不行多试几次。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值