ORACLE通过透明网关连接DB2

http://blog.itpub.net/12679300/viewspace-1543220/

前言】前面有文档介绍过ORACLE通过透明网关连接MS SQL、MySQL、sybase数据库的方法,最近又碰到了客户需要把DB2的数据同步到ORACLE的需求,貌似照这样下去有机会聚齐七颗龙珠,召唤神龙了;

【环境说明】

DB2数据库版本:09.07.0004

ORACLE数据库版本:11.2.0.3   操作系统信息:Windows2008_64

【思路】ORACLE通过透明网关访问DB2的数据库的方法,跟MySQL的方法几乎是一样的,整体的思路如下:

  • 安装DB2数据库的驱动
  • 在操作系统配置数据源
  • 配置透明网关的参数文件
  • 配置监听文件
  • 配置TNS文件
  • 创建DBLINK

【详细步骤】

1、安装DB2数据库的驱动,安装完数据库的驱动后,便可以在此处看到驱动信息

image

相关的下载地址如下:http://happyqing.iteye.com/blog/2082305

2、配置系统DSN

image

image

image

image

【数据库名称和端口号,可以咨询数据库管理人员】

 

image

 

3、配置透明网关初始化参数

3.1   在“ORACLE_HOME\hs\admin”目录下,默认存在名为“initdg4odbc.ora”的文件,复制“initdg4odbc.ora”文件,新文件名称改为“initSIDMASDB.ora”,

   【每个使用DG4ODBC的实例,都必须单独一个“init*.ora”文件,文件命名规则:init+<网关sid>+.ora】

3.2 initQAS.ora文件参数的说明【本实验为QAS】

HS_FDS_CONNECT_INFO = QAS   【数据源管理中的DSN名称】

    HS_FDS_TRACE_LEVEL = OFF  【追踪级别参数,出于性能影响一般不配置或者配置为“OFF”,若遇到网关问题需要跟踪日志,则配置为“Debug”,跟踪日志文件存放在“ORACLE_HOME\hs\trace”目录下】

  

3.3 配置网关监听

修改监听文件: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora

网关监听可配置的参数如下:SID_NAME         网关的SID

                                       ORACLE_HOME  目录

                                       PROGRAM          指定监听服务响应ODBC连接请求的可执行程序

 

请参考如下或者透明网关的配置:【修改红色字体部分】

# listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = CLRExtProc)

      (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)

      (PROGRAM = extproc)

      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")

    )

(SID_DESC =

      (SID_NAME = QAS)

      (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)

      (PROGRAM = dg4odbc)

    )

  )

备注:10G的数据库,PROGRAM需要配置成“hsodbc”

3.4  重启监听服务

在cmd下面运行

lsnrctl stop
lsnrctl start

 

3.5 配置TNS,  打开 “ORACLE_HOME\network\admin\tnsnames.ora”文件

需要配置的参数如下:

connect_descriptor:填写自定义的TNS连接名称

ADDRESS:填写透明网关的IP地址和端口

SID:指定连接网关的SID

HS :指定连接的是非ORACLE数据库

connect_descriptor=

   (DESCRIPTION=

      (ADDRESS=

         (PROTOCOL=TCP)

         (HOST=host_name)

         (PORT=port_number)

      )

      (CONNECT_DATA=

         (SID=gateway_sid))

      (HS=OK))

 

本例子配置如下:

QAS =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = QAS)

    )

    (HS = OK)

  )

3.6 配置DBLINK

以sqlplus、PLSQL Developer或TOAD连接到OracleDB,执行以下DDL语句创建DBLink

【在“create database link”语句中,用户名和密码,建议以双引号括起来,避免Oracle在大小写上做自动转换】

create database link QAS

  connect to "2222"

    identified by "2222" using QAS;

3.7测试结果的配置

用sqlplus在服务器上面执行语句,返回如下值表明配置成功

SQL> select * from dual@qas;

D
-
X

 

【总结】第一次配置透明网关是ORACLE连接MS SQL,花了半天的时间终于弄清楚了,当初的感觉很兴奋。后来在进行ORALCE连接其他类型的数据库,配置的速度越来越快了。这次整个过程下来差不多只花了2个小时,用技术的思维去学习技术,也是一件很快乐的事情;

请使用浏览器的分享功能分享到微信等