ORACLE透明网关访问SQL Server配置总结

 

透明网关概念

 

ORACLE透明网关(Oracle Transparent Gateway)可以解决ORACLE数据库和非ORACLE数据库交互数据的需求。在一个异构的分布式环境中,通过ORACLE透明网关可以访问其他类型数据库,例如DB2,SQL Server、Sybase….。这个类似于SQL Server里面的LINKED SERVER可以直接访问异构的数据库环境,由于Windows本身提供了很多驱动,所以有时候不需要安装额外的驱动程序,有时候也需要安装相关驱动才能访问(例如,SQL SERVER 通过LINKED SERVER访问ORACLE数据库,就必须安装Oracle Client客户端相关组件),而ORACLE则必须通过透明网关才能访问其它类型数据库,官方文档关于透明网关的介绍如下:

 

 

Oracle Database Gateways provide the ability to transparently integrate with non-Oracle systems from an Oracle environment. This transparency eliminates the need for application developers to customize their applications to access data from different non-Oracle systems, thus decreasing development efforts and increasing the mobility of the application. Applications can be developed using a consistent Oracle interface for both Oracle and non-Oracle systems.

 

For smooth interoperability between disparate systems, SQL translations, data dictionary translations and data type translations are required, even if the non-Oracle systems are based on SQL standards. Gateways have the ability to translate one system’s dialect to another.

 

Oracle has tailored Gateways to many systems, DB2, Sybase, Informix, SQL Server, IMS, VSAM, Adabas, to name a few. These are specifically coded for the target non-Oracle system. They provide an optimized solution and are also end-to-end certified.

 

ORACLE官方关于透明网关的文档资料,请见链接http://www.oracle.com/technetwork/database/gateways/index.html,主要有Database Gateways Features Overview 与Database Gateways Technical Whitepaper等相关资料。

 

 

透明网关安装

 

 

关于透明网关的安装,透明网关可以安装在Windows平台或Linux平台;它既可以和ORACLE数据库实例安装在一起(Oracle Server端),也可以安装在其它数据库服务器上(例如,安装在SQL Server数据库服务器上),也可以安装在一台跟数据库无任何关系的机器上。也就是说Oracle Gateway架构设计的耦合性非常低。刚开始接触透明网关时,透明网关需要安装在哪里这个问题一直困扰我,直到我一一验证测试。通俗的来说,透明网关可以装在任意的一台机器上,如果透明网关安装在Oracle Server端,这时候Server自身担当两种角色:服务器和透明网关代理,如果安装在非Oracle Server端,那么其他服务器就充当透明网关代理的角色。

 

 

 

 

 

Windows平台安装

 

 

从官方网址下载win32_11gR2_gateways.zip  http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/112010-win32soft-098630-zhs.html安装介质后,解压安装,安装步骤非常简单,本身安装文件里面也有详细安装文档,本不需在这里过多介绍,不过,对于一些初次初学者,也有一些细节地方需要注意。如下所示,对一些步骤做了截图处理。

 

 

 

 

选择安装路径,这个路径可以和ORACLE数据库路径一致(一般很少有ORACLE实例安装在Windows平台,如果是安装在Linux平台,可以和ORACLE实例的安装路径一致,也可以任意选择一个路径),也可以单独选择一个安装路径。

 

 

 

 

 

选择需要安装的组件,例如我这里只需要通过透明网关访问SQL Server 数据库。那么我只勾选了下面一个组件。

 

 

 

 

在这里需要提供SQL Server数据库服务器名或IP、实例名称、数据库名称等等。

 

 

 

 

安装完成后,你会在D:\product\11.2.0\tg_1\dg4msql\admin这个路径(这个与安装目录有关系,都是位于$ORACLE_HOME\dg4msql\admin)下看到initdg4msql.ora 文件。

 

 

如下所示,如果前面UI界面填写了相关信息。那么在透明网关初始化参数文件initdg4msql.ora下就会有相关信息。如下所示。注意,默认使用的分隔符为/,ORACLE透明网关安装在一个Windows 2012应用服务器上。实际上,使用分隔符”/”是会遇到一些问题的(应该使用//),Windows平台的正确分隔符为.。后续会介绍这个案例,当然如果是Linux平台使用分隔符/则没有任何问题。

 

 

# 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=[192.168.27.57]/MSSQLSERVER/TEST

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

 

 

 

Oracle Net 配置,可以通过图形界面配置,也可以忽略这些步骤,后续通过手工编辑配置Oracle Net

 

 

 

 

 

 

如下所示,在D:\product\11.2.0\tg_1\network\admin\listener.ora下面,你会看到下面配置信息:

 

 

# listener.ora Network Configuration File: D:\product\11.2.0\tg_1\network\admin\listener.ora

# Generated by Oracle configuration tools.

 

ADR_BASE_GW_LISTENER = D:\product\11.2.0\tg_1

 

GW_LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.27.132)(PORT = 1522))

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))

    )

  )

 

当然这个配置信息不全,正确的配置信息如下所示(注意:这里监听器名称为GEW_LISTENER,这个与默认监听器名称LISTENER有细微不同):

 

ADR_BASE_GEW_LISTENER = D:\product.2.0\tg_1
 
 
 
GEW_LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.27.132)(PORT = 1522))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
    )
  )
 
SID_LIST_GEW_LISTENER =                                                           &n                                       


(0)
打赏
微信扫一扫

相关文章:

  • oracle自动统计信息时间的修改过程记录

    今天是2022年1月7日今天值夜班,同事让给优化一个sql,优化完成后,顺便看了下新系统的统计信息情况,发现在晚上做数据采集的时间,系统资源增加,发现是统计信息 [阅读全文]

  • 解决plsql因事务未提交造成的锁表问题

    1、执行以下语句可查询被锁的表 select b.owner,b.object_name,a.session_id,a.locked_mode from v [阅读全文]

  • Oracle进阶DECODE函数使用详解

    decode含义decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)这个是decode的表达式,具体的含义解释为:if 条件=值1 then    ret…

    2021年12月30日 数据库

  • oracle中commit之后进行数据回滚的方法

    commit之后第一种:记住大概的时间,获取前大概时间的数据。select * from test as of timestamp to_timestamp(‘ [阅读全文]

  • PLSQL Developer13.0.4最新注册码和使用教程详解

    01. plsql developer简介pl/sql developer 13是一个集成开发环境,专门用于开发 oracle 数据库的存储程序单元。 随着时间的推移,我们已经看到…

    2021年12月29日 数据库

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐