公司内部

Oracle配置透明网关访问SQLServer

主 题: Oracle配置透明网关访问SQLServer
项目名称: 内部项目
撰写单位: Bsoft
作 者: 屈毅
版 本 号: 0.1

审核

功 能 姓 名 部 门 签 名 日 期

文档历史

版 本 修改原因 修改人 基于版本 日 期
0.1 新增 屈毅 2020-03-10

参考文档

编 号 文档名(链接)
1 Oracle透明网关组件,下载地址:
http://download.oracle.com/otn/nt/oracle10g/10201/10201_gateways_win32.zip


**

一、背景

在我们的日常工作中,经常会遇到数据库间的异构数据交互,这就要求我们能够基于oralce环境去访问非oracle环境[本文以访问sqlserver的环境为例加以说明]的数据库。

二、详细步骤

1. 安装Oracle透明网关

创建过程中填写要从ORACLE访问的SQLServer数据库服务器名和SQLServer数据库名
Oracle配置透明网关访问SQLServer - 图1
Oracle配置透明网关访问SQLServer - 图2

Oracle配置透明网关访问SQLServer - 图3
Oracle配置透明网关访问SQLServer - 图4

Oracle配置透明网关访问SQLServer - 图5
Oracle配置透明网关访问SQLServer - 图6

Oracle配置透明网关访问SQLServer - 图7

2. 透明网关初始化参数配置

透明网关程序安装完成后,在透明网关安装目录\dg4msql\admin下面默认有一个文件initdg4msql.ora,命名规则INIT+SID.ORA(如果需要连接多个SQL SERVER数据库,则需要在这个目录下建立多个命名规则文件),本例创建initmh40mhsqzzxt.ora文件,内容为:
Oracle配置透明网关访问SQLServer - 图8
说明:HS_FDS_CONNECT_INFO的设置有多种格式,各参数设置规则如下描述:
The syntax for HS_FDS_CONNECT_INFO is as follows:
HS_FDS_CONNECT_INFO=host_name[[:port_number]|/[instance_name]][/database_name]
Oracle配置透明网关访问SQLServer - 图9
For example, all of the following entries are valid:
HS_FDS_CONNECT_INFO=host_name
HS_FDS_CONNECT_INFO=host_name//database_name
HS_FDS_CONNECT_INFO=host_name/instance_name
HS_FDS_CONNECT_INFO=host_name/instance_name/database_name
HS_FDS_CONNECT_INFO=host_name:port_name//database_name

3. 透明网关监听配置

修改D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora中的配置,添加红色标记的内容,增加完成后重启或重载监听服务
# listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = mh40mhsqzzxt)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = dg4msql)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mkt)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)

4. 检查配置的监听是否正常注册

在CMD命令提示符输入命令:lsnrctl stat 或 lsnrctl status,查看监听的注册情况,如果在服务包含的实例里能看到注册的SID[本例为:mh40mhsqzzxt]则表明配置的监听已正常注册。如果没有,则表明未正常注册。这种情况下,可以执行命令lsnrctl reload 重新加载后再做检查。
Oracle配置透明网关访问SQLServer - 图10

5. 创建DBLINK

在ORACLE 环境创建基于非ORACLE环境的数据库链接。
n DBLINK创建脚本
CREATE PUBLIC DATABASE LINK “LINK_MH40MHSQZZXT”
CONNECT TO “ADMINUSER” IDENTIFIED BY VALUES ‘:1’
USING ‘(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.96.37.17)(PORT = 1521))
)
(CONNECT_DATA =
(SID = mh40mhsqzzxt)
)
(HS = OK)
)’;
说明:
1. 此处的SID命名要和文件的命名保持一致
2. HS = OK 表明是异构数据库
n 测试链接是否正常
SELECT FROM DUAL@LINK_MH40MHSQZZXT;
SELECT
FROM T_SQZG_GPQY_QYXX@LINK_MH40MHSQZZXT WHERE ROWNUM=1;