【oracle透明网关】一次Oracle通过透明网关连接DB2的测试
【问题】两个应用系统分别使用oracle和db2两钟数据库,Oracle应用中需要使用DB2中的对象。【分析】百度后,oracle和其他异构数据库之间连接一般采用透明网关技术。oracle不同版本对db2连接采用了不同网关产品。9i采用odbcoracle10g 采用oracle transparent gateway for drdaoracle11g 采用oracle tran
【问题】两个应用系统分别使用oracle和db2两钟数据库,Oracle应用中需要使用DB2中的对象。
【分析】百度后,oracle和其他异构数据库之间连接一般采用透明网关技术。oracle不同版本对db2连接采用了不同网关产品。
9i采用odbc
oracle10g 采用oracle transparent gateway for drda
oracle11g 采用oracle transparent gateway for odbc
【测试】
1、在装透明网关的机器上首先安装 db2的客户端,然后在ODBC管理器里新建系统DSN,驱动选择DB2的默认驱动,数据源命名为ZDJSDB。
通过db2控制工具,建立db2admin下的TESTTABLE表。
2、下载oracle10g的 gateways_win32, 安装过程汇中选择oracle transparent gateway for DRDA 10.2.0.1.0 以及子选项 DRDA TCP protocol support 10.2.0.1.0 ,默认安装。
3、安装完成后,在home目录下出现 hs 以及 tg4drda 这2个文件夹。需要在hs的admin目录下新建initZDJSDB.ora(复制原来的inithsodbc.ora即可),修改文档里的以下值
HS_FDS_CONNECT_INFO = ZDJSDB
HS_FDS_TRACE_LEVEL = off
4、在透明网关的服务器上建立监听,如果网关在oracle数据库服务器上则默认已安装。修改 listener.ora ,增加红字部分
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_2)
(PROGRAM = extproc)
)
(SID_DESC=
(SID_NAME=ZDJSDB)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_2)
(PROGRAM=hsodbc)
)
)
5、在oracle数据库服务器上的oracle目录下,修改tnsnames.ora,增加如下内容
DB2=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SID = ZDJSDB)
)
(HS=OK)
)
HOST部分的IP为透明网关服务器的IP,本次测试数据库和网关在一台机器上
6、在oracle数据库服务器上建立dblink
create database link DL_ZDJSDB CONNECT TO "db2admin" IDENTIFIED BY "xxxxxx" USING 'DB2';
测试中发现利用pl/sql developer 工具建立的link 存在安全登陆问题,
后查询原因为针对用户名和密码,oracle不区分大小写,db2区分大小写,所以还是使用上述DDL语句建立LINK
7、使用 SELECT * FROM db2admin.TESTTABLE@DL_ZDJSDB 查询即可。测试成功。
更多推荐
所有评论(0)