配置 Oracle 透明网关用以连接 SQLServer 经验总结

本贴最后更新于 2257 天前,其中的信息可能已经时移俗易

情景介绍

1、需求:业务中设计两个不同的系统,系统 1 和系统 2,两个系统分别使用的是 Oracle 和 SQLServer 数据库。现需要在系统 1 的数据库中直接查询系统 2 数据库的数据。即在 Oracle 中执行 SQL 脚本可以直接查询 SQLServer 数据库中的数据。

2、Oracle 透明网关即 Oracle Database Gateway,是 Oracle 数据库官方提供的一款工具,用于增强访问特定异构数据库的能力。

image.png

3、环境信息和待配置事项

Oracle、网关和 SQL Server 可以分别安装在任意主机上,只要满足可以网络互通就可以。想要在 Oracle 中直接查询 SQL Server 中的数据,需要完成以下步骤(假设 Oracle 和 SQL Server 已经安装部署完毕):

第一步:下载并安装网关;

第二步:配置网关;

第三步:配置 Oracle 数据库的 TNS 配置;

第四部:配置 SQL Server,使其能够远程连接;(若已经可以远程连接,则跳过)

第五步:登录 Oracle 并创建 DBlink,测试连接。

一、下载安装 Oracle Database Gateway

下载地址:http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_gateways.zip

安装过程:

运行 setup.exe

欢迎页面点下一步

配置主目录页面,名称随意起,路径为网关安装路径,自由选择。下一步;

可用产品组件,选择”for SQL Server”项。下一步;

配置 SQL Server 数据库信息,分别是 SQL Server 数据库的主机地址(或主机名),实例名,数据库名;下一步;

摘要页面,显示的安装信息,没问题的话,直接点击安装。等待安装完成。

 

二、 配置网关信息

一共需要手工配置两个文件,分别是安装目录中的:

(注意,这两个文件是无法在原位置手工修改的,需要拷贝到其他位置如桌面,进行修改后,覆盖原文件即可)

dg4msql\admin\initdg4msql.ora :网关工具可以同时配置多个 SQL Server 数据库实例,每一个实例对应一个这样的文件,此文件的文件名的命名规则为 init + “SID”.ora 其中 SID 为网关的区别标识,可以自定义,只要能全局唯一就可以,SID 默认为 dg4msql。此文件中保存着想要跨库连接的 SQL Server 数据库连接信息。

具体配置:

image.png

network\admin\listener.ora :此文件配置这网关的监听服务信息,因为网关需要接收来自 Oracle 的访问,所以需要配置此文件以保存监听服务信息,等待被访问。

配置前,找到安装目录的 dg4msql\admin\listener.ora.sample ,这个文件是配置模板,可以参考,或直接拿来稍微修改后使用。

具体配置:

image.png

将以上信息,按照自己的情况修改后,复制文本到 network\admin\listener.ora 文件中。

到此,网关配置完毕,需要到计算机管理中开启网关监听服务。

image.png

在启动监听服务时可能会遇到这个问题:

弹窗提示:本地计算机上的***服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止。

解决办法,断开网络重新连接。

三、配置 Oracle 数据库的 TNS 配置

手工修改文件:

oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora

具体是将以下内容添加到文件末尾:

image.png

具体文本在网关的安装目录文件 dg4msql\admin\tnsnames.ora.sample 中有模板格式。

四、配置 SQL Server,使其能够远程连接

打开 SQL Server 主机中的防火墙 1433 端口,并配置 SQL Server 允许其远程连接。具体不做过多介绍,可参见:

五、登录 Oracle 并创建 DBlink,测试连接

创建 DBlink:
SQL> CREATE PUBLIC DATABASE LINK dblink CONNECT TO “ 用户” IDENTIFIED BY “密码” USING 'tns_name_entry ';

在 Oracle 中执行以下脚本,测试是否可以在 Oracle 中查询 SQL Server 中的数据:

SELECT * FROM DUAL@dblink;

自己总结是为了加深印象,也许其中难免有错误,附上官方教程,逐步按照官方教程一定可以帮助你实现跨库需求。

  • 教程
    144 引用 • 629 回帖 • 8 关注
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 344 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖 • 4 关注
  • 透明网关
    1 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • 分享

    有什么新发现就分享给大家吧!

    248 引用 • 1794 回帖
  • Follow
    4 引用 • 12 回帖 • 8 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 672 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 496 关注
  • Visio
    1 引用 • 2 回帖 • 3 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 520 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 681 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 69 关注
  • OnlyOffice
    4 引用 • 20 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    53 引用 • 190 回帖
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 3 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    84 引用 • 414 回帖
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 120 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 353 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    35 引用 • 468 回帖 • 762 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1251 回帖 • 391 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 116 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    37 引用 • 157 回帖 • 2 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 445 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    134 引用 • 798 回帖
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    32 引用 • 99 回帖
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    29 引用 • 202 回帖 • 31 关注