情景介绍
1、需求:业务中设计两个不同的系统,系统 1 和系统 2,两个系统分别使用的是 Oracle 和 SQLServer 数据库。现需要在系统 1 的数据库中直接查询系统 2 数据库的数据。即在 Oracle 中执行 SQL 脚本可以直接查询 SQLServer 数据库中的数据。
2、Oracle 透明网关即 Oracle Database Gateway,是 Oracle 数据库官方提供的一款工具,用于增强访问特定异构数据库的能力。
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 数据库连接信息。
具体配置:
network\admin\listener.ora :此文件配置这网关的监听服务信息,因为网关需要接收来自 Oracle 的访问,所以需要配置此文件以保存监听服务信息,等待被访问。
配置前,找到安装目录的 dg4msql\admin\listener.ora.sample ,这个文件是配置模板,可以参考,或直接拿来稍微修改后使用。
具体配置:
将以上信息,按照自己的情况修改后,复制文本到 network\admin\listener.ora 文件中。
到此,网关配置完毕,需要到计算机管理中开启网关监听服务。
在启动监听服务时可能会遇到这个问题:
弹窗提示:本地计算机上的***服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止。
解决办法,断开网络重新连接。
三、配置 Oracle 数据库的 TNS 配置
手工修改文件:
oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
具体是将以下内容添加到文件末尾:
具体文本在网关的安装目录文件 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;
自己总结是为了加深印象,也许其中难免有错误,附上官方教程,逐步按照官方教程一定可以帮助你实现跨库需求。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于