前言】前面有文档介绍过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数据库的驱动,安装完数据库的驱动后,便可以在此处看到驱动信息
相关的下载地址如下:http://happyqing.iteye.com/blog/2082305
2、配置系统DSN
【数据库名称和端口号,可以咨询数据库管理人员】
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 |
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 |
【总结】第一次配置透明网关是ORACLE连接MS SQL,花了半天的时间终于弄清楚了,当初的感觉很兴奋。后来在进行ORALCE连接其他类型的数据库,配置的速度越来越快了。这次整个过程下来差不多只花了2个小时,用技术的思维去学习技术,也是一件很快乐的事情;