公司一直会碰到异构数据库的连接问题,比如Oracle需要dblink as400,dblink DB2,如果此些数据库版本比较老的话,在linux 64位环境中配置此类数据库的驱动,太让人头疼了。
可以使用Oracle gateway方式,将gateway部署在一台windows 32位的服务器(可以有效解决数据库驱动问题),odbc至异构数据库。
将gateway从db服务器中分离出来单独安装
单独开启监听,给需链接异构服务器至数据库提供连接服务
新增gateway服务器安装windows 32位系统,有效解决数据库驱动兼容性问题
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服务器已配置完成
只需在需求DB的tns中添加如下条目即可 HISP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = *.*.*.*)(PORT = 1521)) )---------------------------*.*.*.*为gateway服务器 (CONNECT_DATA = (SID = hisp) ) (HS = OK)--------------使用gateway方式连接 )
测试结果: 创建dblink create database link wcelpptp connect to "******" identified by "******" using ‘hisp‘ 测试dblink,测试OK 经测试:需求DB无os版本限制,windows和Linux均可正常连接
本文出自 “Open World” 博客,请务必保留此出处http://voidyao000.blog.51cto.com/12458042/1913299
原文地址:http://voidyao000.blog.51cto.com/12458042/1913299