公司内部
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数据库名
2. 透明网关初始化参数配置
透明网关程序安装完成后,在透明网关安装目录\dg4msql\admin下面默认有一个文件initdg4msql.ora,命名规则INIT+SID.ORA(如果需要连接多个SQL SERVER数据库,则需要在这个目录下建立多个命名规则文件),本例创建initmh40mhsqzzxt.ora文件,内容为:
说明: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]
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 重新加载后再做检查。
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;