Oracle Gateway

# This is a customized agent init file that contains the HS parameters
# that are needed for the Database Gateway for Informix

#
# HS init parameters
#
HS_FDS_CONNECT_INFO=[10.192.29.47]:9047/on_tcp47/ds
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER



# This is a customized agent init file that contains the HS parameters
# that are needed for the Database Gateway for Microsoft SQL Server

#
# HS init parameters
#
#HS_FDS_CONNECT_INFO=[10.192.28.26]/cia/cia
HS_FDS_CONNECT_INFO=10.192.28.26:1433/cia
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

Oracle Database Transparent Gateway 介绍

通用连接透明网关

Oracle Heterogeneous Connectivity Process Architecture

Oracle在解决访问异构数据库对象时提供了同步与异步的解决方案,其中通用连接(Generic Connectivity)透明网关(Transparent Gateway)是同步解决方案的两种,其中通用连接又分为ODBC连接和OLE DB连接两种Heterogeneous Services(HS)是同步方案中数据库的一个通用组件,用来同Heterogeneous Services Agent建立连接。Agent Generic Code用于在异构数据源上执行数据操作或者检索,负责接收命令,执行命令,获取执行结果。DriverAgent Generic Code和命令执行地交互的桥梁,没有它,Agent Generic Code就不能和异构数据源交互。Remote Database就是要访问的远程异构数据源。Oracle Agent提供了很多类型,因为不同的数据库厂商所使用的标准不一样,这些Agent主要封装在Oracle DatabaseOracle Database Gateways两种产品中,在Oracle Database中,默认安装的是ODBC Agent用于同当前系统的ODBC来做交互,即为通用连接。由系统来负责Driver 相应的Agent Generic Codedg4odbc这个程序可以在ORACLE_HOME/bin目录下找到;在Oracle Database Gateways中由Database Gateways产品来选择性的安装针对于不同数据库产品的Agent(Agent Generic Code, Driver)所以Driver也和Oracle Database Gateways安装的时候一起安装。例如安装了Gateway for MS SQL Server的组件,那么你可以在ORACLE_HOME/bin文件下找到Agent Generic Code 的可执行程序dg4msqlORACLE_HOME/dg4msql文件夹里找到相关的AgentDriver,在该文件下同样存放在一些配置相关的dg4msql的配置文件。

透明网关HS协同工作流程

Gateway Process Flow

透明网关是Oracle推荐使用的一种访问异构数据库数据的方案,通过它可以操纵其他数据库,如MS SQL Server,DB2, Sybase ,Informix 等,实现异构数据库间的通信,如同MS SQL Server实现异构服务的Linked Server技术,它也是Oracle数据仓库和数据迁移中的一个重要组成部分。OracleTransparent Gateway 10g开始发行了Linux, 透明网关服务器既可以与Oracle DatabaseSQL Server Database在同一台主机上,也可以是独立的一台主机。

HSGateway协同工作过程大致如下

(1)   客户端从Oracle Database请求数据。用户发送的是Oracle标准的SQL语句,在Oracle数据库上创建了一个Session

(2)   HSGateway协同工作,Gateway通过本地的配置来调用相关的HS服务程序和驱动与异构数据源作交互。HSOracleSQL语句转换成non-Oracle数据库可以正确运行的语句;

(a) HSGateway建立连接,

(b) HS获取相关的non-Oracle System的配置信息,如它是什么类型的数据库产品(SQL Server或者MySql , Sybase)等等属性,

(c) HS通过Data Dictionary View来识别该non-Oracle system的功能特征等各项属性,相应的转化Oracle标准的SQL语句成non-Oracle system兼容的语句;

(3)   Oracle数据库把转换后的SQL语句通过Oracle Net发送到Gateway

(4)   Gateway使用相关的用户名密码登陆到non-Oracle system,建立连接,执行SQL语句;

(a) HS通过GatewayNon-Oracle System建立连接,创建临时的Database Link

(b) Gateway使用Database Link指定的用户名及其密码登陆non-Oracle system

(c) Gateway登陆成功则创建Gatewaynon-Oracle System之间的会话,并且Database Link Open

(d) GatewaySQL语句通过建立的会话发送给non-oracle system执行;

(5)   Non-Oracle System返回运行SQL语句后的结果给Gateway

(6)   Gateway翻译/格式化返回的结果使其能被Oracle数据库的所兼容;

(7)   Gateway执行后的结果通过Oracle Net Service返回给Oracle数据库;

(8)   Oracle数据库服务器通过Oracle Net把结果返回给客户端,并且数据库的database link一直打开,直到gateway的会话结束或者database link显式的关闭它。

企业内部异构数据源的透明互访具有数据资源共享、保护已有投资、屏蔽异构系统内部处理细节等重要意义。OracleTG技术具有技术先进、运行稳定,配置简单等优点,通过TG技术,可通过Oracle存储过程等实现对非Oracle系统的透明分布式操作,最大限度地实现企业内部异构数据源的资源共享。

安装Oracle Gateway 11g

这里我们安装Oracle Gateway 11g for SQL Server & Informix,通过Oracle Gateway Server来操作SQL ServerInformix DB中的数据库对象。

安装Oracle Gateway 11g的配置要求及注意问题

安装Oracle Database Gateway for SQL Server&Informix的硬件配置要求

Disk space for Oracle home

>800 M

Disk space for system drive

>3.1 M

Temporary disk space

>125 M

Physical Memory

>512 M

Processor

>550 MHz

其中Physical Memory大于512M Oracle推荐使用的,这取决于SQL语句的处理进度,打开的游标个数和用户查询table的字段个数的多少等因素。

注意:

1.Windows下安装Gateway 11g后,会在“服务”列表中看到Gateway Server的监听进程(OracleOraGtw11g_home1TNSListener),该服务是开机自动启动的,如果关闭此服务,Oracle与异构数据库间的通信将中断;

2.Transparent Gateway是向前兼容的,如Transparent Gateway 11g可以兼容Oracle Database 10g;

3.当选择在Oracle Database Server上安装Gateway,应注意ORACLE_HOME的选择,如果DatabaseGateway是同一版本,可以将GatewayORACLE_HOMEDatabaseORACLE_HOME选择为同一路径,反之不能相同。

安装Oracle Gateway 11g for SQL Server&Informix步骤

这里我们选择一台独立的机器(Win 2003 SP2)安装Oracle Gateway 11g

首先下载Oracle Gateway 11g Windows版,这里提供几个下载链接

Microsoft Windows (32 bit)

http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/112010-win32soft-098630-zhs.html

Microsoft Windows (64 bit)

http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/112010-win64soft-086667-zhs.html

Linux x86 (32 bit)

http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/112010-linuxsoft-098940-zhs.html

Linux x86-64 (64 bit)

http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/112010-linx8664soft-098700-zhs.html

解压下载后的安装包,得到gateways文件夹,双击可执行程序setup.exe开始安装

点击下一步开始安装

选择Gateway的安装名称及安装路径(ORACLE_HOME),其中ORACLE_HOME默认选择在最后一个磁盘,点击下一步选择要安装的产品

这里我们选择Oracle Database Gateway for Informix & for MS SQL Server,点击下一步

输入Informix DB的配置信息,这里也可以不输入,在安装完成后到%ORACLE_HOME%dg4ifmx\admin下编辑initdg4ifmx.ora文件

输入MS SQL Server DB的配置信息,这里也可以不输入,在安装完成后到%ORACLE_HOME% \dg4msql\admin下编辑initdg4msql.ora文件

查看设置信息无误后,单击安装按钮,开始安装

显示安装进度,可以看到安装log信息的存放位置,可以到相应的路径下查看

Oracle Gateway实例安装完成会自动弹出监听配置信息

点击下一步开始配置监听

定义监听的名字,这里用默认的名字即可

这里我们选择默认的1521作为监听端口,注意:如果是在Oracle DB Server上配置监听,应选择与Oracle DB Server的监听端口不同的端口

点击完成退出监听配置

点击退出,完成Oracle Database Gateways的安装

 

 

Oracle Gateway Server配置文件设定及测试

Oracle Gateway Server for SQL Server例程配置档设定

Gateway Server for SQL Server例程配置文件的默认名字为initdg4msql.ora,可以手工去修改这个文件的名字,但格式要求为initXXX.ora,该文件存放在%ORACLE_HOME%\dg4msql\admin路径下,编辑initdg4msql.ora可以看到如下内容

HS_FDS_CONNECT_INFO=10.192.28.26:1433//cia

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

参数HS_FDS_CONNECT_INFO的格式为

HS_FDS_CONNECT_INFO=host_name:port/[instance_name][/database_name],

SQL Server使用默认端口1433时,可以省略端口号,否则应加上对应的端口

参数HS_FDS_TRACE_LEVEL的默认值为OFF,此参数有三个可选值:OFF,ON,DEBUG

每个值的含义如下

OFF --disables the tracing of error messages.

ON --enables the tracing of error messages that occur when you encounter problems. The results are written by default to a gateway log file in LOG directory where the gateway is installed.

DEBUG --enables the tracing of detailed error messages that can be used for debugging.

参数HS_FDS_RECOVERY_ACCOUNT=RECOVERHS_FDS_RECOVERY_PWD=RECOVER是搭配使用的

HS_FDS_RECOVERY_ACCOUNT to the user name of the SQL Server user account you set up for recovery.

HS_FDS_RECOVERY_PWD to the password of the SQL Server user account you set up for recovery.

Specifies the name of the recovery account used for the commit-confirm transaction model. An account with user name and password must be set up at the non-Oracle system.

The name of the recovery account is case sensitive.

Oracle Gateway 11g Server for Informix例程配置档设定

Gateway Server for Informix例程配置的名字档默认为initdg4ifmx.ora,可以手工去修改这个文件的名字,但格式要求为initXXX.ora,该文件存放在%ORACLE_HOME%\dg4ifmx\admin路径下,编辑initdg4ifmx.ora可以看到如下内容

HS_FDS_CONNECT_INFO=[10.192.29.47]:9047/on_tcp47/ds

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

参数HS_FDS_CONNECT_INFO的格式为

HS_FDS_CONNECT_INFO=host_name:port_number/server_name/database_name,

参数HS_FDS_TRACE_LEVELHS_FDS_RECOVERY_ACCOUNTHS_FDS_RECOVERY_PWD的含义参照“Oracle Gateway 11g Server for SQL Server例程配置档设定”中对此三个参数的描述

Oracle Gateway 11g Server监听程序配置文件设定

Oracle Gateway 11g Server监听程序配置文件listener.ora默认存放%ORACLE_HOME%\NETWORK\ADMIN路径下,修改listener.ora文件,增加以下内容

LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = dg4msql)

      (ORACLE_HOME = E:\product\11.2.0\tg_1)

      (PROGRAM = dg4msql)

    )

    (SID_DESC =

      (SID_NAME = dg4ifmx)

      (ORACLE_HOME = E:\product\11.2.0\tg_1)

      (PROGRAM = dg4ifmx)

    )

  )

注意:

1.      E:\product\11.2.0\tg_1为安装Oracle Gateway 11g Server时指定的ORACLE_HOME路径

2.      SID_NAME必须与Gateway Server for SQL ServerOracle Gateway Server for Informix程序配置文件的名字一致。如程序配置文件的名字为initdg4msql.orainitdg4ifmx.ora,这里的SID_NAME必须写成dg4msqldg4ifmx,即为initXXX.ora”XXX”的名字

3.      PROGRAM = dg4msqlPROGRAM = dg4ifmx中的dg4msqldg4ifmx为可执行程序名,该程序在%ORACLE_HOME%\BIN%下面可以找到。

4.      编辑完监听配置文件后,将监听重启,所做修改才能生效

创建DB LINK并测试连接

(1).编辑Oracle Database Servertnsnames.ora文件,增加如下连接方式

sqlserver  =

  (DESCRIPTION=

    (ADDRESS=(PROTOCOL=tcp)(HOST=10.192.29.200)(PORT=1521))

    (CONNECT_DATA=(SID=dg4msql))

    (HS=OK)

  )

 

informix  =

  (DESCRIPTION=

    (ADDRESS=(PROTOCOL=tcp)(HOST=10.192.29.200)(PORT=1521))

    (CONNECT_DATA=(SID=dg4ifmx))

    (HS=OK)

  )

其中HOST=10.192.29.200Oracle Gateway Server主机的IPSID=dg4msqlSID=dg4ifmx分别为Oracle Gateway Server for SQL Server&for Informix对应的例程名。

(2) 创建DB LINKE

CREATE DATABASE LINK testsqlsvr

 CONNECT TO "sa"

 IDENTIFIED BY “password”

 USING 'sqlserver';

CREATE DATABASE LINK testinfmix

 CONNECT TO ODBCKL

 IDENTIFIED BY “password”

 USING 'informix';

(3) 查询测试

 

配置Oracle Database Gateway过程中常見錯誤解決及参考文档

常见错误

参考文档

1.Oracle HS (Heterogeneous Services)深入解析及协同Gateway工作流程

http://www.cnblogs.com/wwwiori/archive/2009/06/22/1508068.html

2.Oracle® Database Heterogeneous Connectivity Administrator's Guide 10g Release 2 (10.2)

http://docs.oracle.com/cd/B19306_01/server.102/b14232.pdf

3.《Oracle® Database Gateway Installation and Configuration Guide 11g Release 1(11.1) for Microsoft Windows

http://docs.oracle.com/cd/B28359_01/gateways.111/b31043/toc.htm

4.《基于ORACLE TG技术的ORACLE数据库与异构数据源互访的技术实现》

http://www.docin.com/p-141069319.html



ORA-28545: error diagnosed by Net8 when connecting to an agent

ORACLE透明网关GATEWAY遇到 ORA-28545 ORA-28500 ORA-02063

2012-02-09 20:31

Error : ORA-28545: 连接代理时 Net8 诊断到错误 Unable to retrieve text of NETWORK/NCR message 65535

*********************************************************************
Link : "IPOS"
Error : ORA-28500:
连接 ORACLE 到非 Oracle 系统时返回此信息:
[Microsoft][ODBC
驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 {IM014}
ORA-02063:
紧接着 2 lines (起自 IPOS)
*********************************************************************

当遇到如上问题, 第一个 是经常遇到的, 问题往往是由于你的语法写的不对,比如说 语句中出现 有些SQL是区分大小写的(MYSQLORACLE),这个问题 是比较好解决的。

那么若是遇到第二个问题,就是由于驱动程序和应用程序的不是一个版本,比如驱动程序是32位的 你安装的ORACLE64位的,反过来也是这样, 我将两个东西都安装成64位 即成功了。

fj.pnggateway.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25574072/viewspace-748410/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25574072/viewspace-748410/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值