一、 情景介绍

业务中有两个不同的系统,分别使用的是 Oracle 和 SQLServer 数据库,现需要在Oracle 数据库中直接查询SQLServer 数据库的数据。

Oracle 透明网关创建到 SQLServer dblink_数据库

Oracle、网关和 SQL Server 可以分别安装在任意主机上,只要满足网络互通就可以。

想要在 Oracle 中直接查询 SQL Server 中的数据,需要完成以下步骤:

  • 下载并安装透明网关
  • 配置透明网关
  • 配置 Oracle 数据库的 TNS 配置
  • 配置 SQL Server,使其能够远程连接(若已经可以远程连接,则跳过)
  • 登录 Oracle 并创建 DBlink,测试连接。

一、 下载并安装透明网关

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

下载地址: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 和 network\admin\listener.ora。注意,这两个文件是无法在原位置手工修改的,需要拷贝到其他位置如桌面,进行修改后,覆盖原文件即可。

1. 配置dg4msql\admin\initdg4msql.ora

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

具体配置:

Oracle 透明网关创建到 SQLServer dblink_SQL_02

2. network\admin\listener.ora

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

具体配置(文本在网关的安装目录文件 dg4msql\admin\listener.ora.sample 中有模板格式)

Oracle 透明网关创建到 SQLServer dblink_oracle_03

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

Oracle 透明网关创建到 SQLServer dblink_Server_04

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

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

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

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

手工修改tnsnames.ora,添加透明网关配置信息。文本在网关的安装目录文件 dg4msql\admin\tnsnames.ora.sample 中有模板格式。

Oracle 透明网关创建到 SQLServer dblink_oracle_05

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

打开 SQL Server 主机中的防火墙 1433 端口,并配置 SQL Server 允许其远程连接。若已经配置,可以跳过。

五、登录 Oracle 并创建 DBlink

CREATE PUBLIC DATABASE LINK dblink CONNECT TO 用户名 IDENTIFIED BY "密码" USING '连接串';

测试连接

SELECT * FROM DUAL@dblink;