公司一直会碰到异构数据库的连接问题,比如Oracle需要dblink as400,dblink DB2,如果此些数据库版本比较老的话,在Linux 64位环境中配置此类数据库的驱动,太让人头疼了。
可以使用Oracle gateway方式,将gateway部署在一台windows 32位的服务器(可以有效解决数据库驱动问题),odbc至异构数据库。
将gateway从db服务器中分离出来单独安装
单独开启监听,给需链接异构服务器至数据库提供连接服务
新增gateway服务器安装windows 32位系统,有效解决数据库驱动兼容性问题
2、架构说明

3、GW安装及配置说明
1、安装服务器gateway,仅安装透明网关
OS SERVER 2003 sp2,32位 内存2g 硬盘空间50GB
透明网关版本11gr2 32位
2、配置监听
3、安装db2和as400客户端程序(提供数据库驱动文件)
4、配置odbc,并测试连接正常
5、添加并修改透明网关配置文件(文件位置在home目录下C:\product\11.2.0\tg_1\hs\admin )
添加文件命名为init_sid.ora
注意点:sid和odbc中名称要一致
# This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent.
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = hisp
HS_FDS_TRACE_LEVEL = off
#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>
6、修改tnsnames
C:\product\11.2.0\tg_1\NETWORK\ADMIN
HISP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = gateway服务器ip)(PORT = 1521))
)
(CONNECT_DATA =
(SID = hisp)
)
(HS = OK)---------使用gateway方式连接
)
7、修改listener,并重启监听
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = hisp)
(ORACLE_HOME = C:\product\11.2.0\tg_1)
(SID_NAME = hisp)
(PROGRAM = dg4odbc)-----注意点:9i透明网关此处使用的程序为hs
)
)
此时gateway服务器已配置完成
4、Oracle DB配置
只需在需求DB的tns中添加如下条目即可
HISP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = *.*.*.*)(PORT = 1521))
)---------------------------*.*.*.*为gateway服务器
(CONNECT_DATA =
(SID = hisp)
)
(HS = OK)--------------使用gateway方式连接
)
5、测试结果说明
测试结果:
创建dblink
create database link wcelpptp connect to "******" identified by "******" using 'hisp'
测试dblink,测试OK
经测试:需求DB无os版本限制,windows和Linux均可正常连接
更多Oracle相关信息见Oracle 专题页面 ?tid=12