环境概述
某医院的his系统Oracle数据库要和体检系统进行数据通讯,需要从Oracle能查到sqlserver的数据。本次通过Oracle gateway来解决此问题。
HIS服务器:windows server 2016+数据库oracle11.2.0.4,假设IP是192.168.100.9
体检服务器:windows server 2016+数据库MSSQL2016,假设IP是192.168.100.10
大体流程就是4步:安装gateway软件、配置gateway的监听服务、修改Oracle端tnsnames.ora添加服务、创建DBLINK
部署gateway软件
该软件可以选择部署在如下位置:
1、和Oracle在同一台主机
2、和MSSQL在同一台主机
3、单独的物理服务器
该软件就是11g 安装包里的第5个包,P13390677_112040_MSWIN-X86-64_5OF7.ZIP
安装方法十分的简单,几乎就是下一步下一步。注意windows运行setup.exe时尽量右键“以管理员身份运行”避免出现权限问题。
我这里选择安装在MSSQL服务器192.168.100.10上。
默认会安装在 <系统盘符>:\product\11.2.0\tg_1目录下,这里我只贴比较重要的地方,就是这里要选上sqlserver对应的地方。
这里填写MSSQL的连接信息:
数据库服务器主机名:就是MSSQL服务器的IP地址
实例名:如果是默认的MSSSQL这里可以不填写
数据库名:写上要连的数据库名
然后继续安装即可
最后一步会让你配置监听服务,这里默认勾选执行典型配置即可,回头再修改监听配置。
注意,我下面的示例没有使用默认的典型配置,而是修改了监听名称为GW_LISTENER,端口使用了1522
MSSQL服务器网关目录下设置
1、比如我这个配置案例,安装完后默认会在如下目录:D:\product\11.2.0\tg_1\dg4msql\admin下生成配置文件initdg4msql.ora,其中dg4msql为网关使用的服务名(实例名),文件内容如下(就是图形那步的数据库配置信息),我这里选择不修改。- HS_FDS_CONNECT_INFO=[192.168.100.10]//OLD
- HS_FDS_TRACE_LEVEL=OFF
- HS_FDS_RECOVERY_ACCOUNT=RECOVER
- HS_FDS_RECOVERY_PWD=RECOVER
复制代码 2、创建GATEWAY监听服务,如果与Oracle装同一台主机用1522,要去D:\product\11.2.0\tg_1\bin下执行netca.bat创建服务GW_LISTENER(起这个名是为了可识别),这里注意改的静态监听SID_LIST_GW_LISTENER要和GW_LISTENER对应
D:\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora- # listener.ora Network Configuration File: D:\product\11.2.0\tg_1\network\admin\listener.ora
- # Generated by Oracle configuration tools.
- GW_LISTENER =
- (DESCRIPTION_LIST =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.10)(PORT = 1522))
- )
- )
- SID_LIST_GW_LISTENER=
- (SID_LIST=
- (SID_DESC=
- (GLOBAL_DBNAME = dg4msql)
- (SID_NAME=dg4msql)
- (ORACLE_HOME=D:\product\11.2.0\tg_1)
- (PROGRAM=dg4msql)
- )
- )
-
- ADR_BASE_GW_LISTENER = D:\product\11.2.0\tg_1
复制代码 此监听配置成功后,可看到服务在监听dg4msql。- d:\product\11.2.0\tg_1\BIN>LSNRCTL.EXE status GW_LISTENER
-
- LSNRCTL for 64-bit Windows: Version 11.2.0.4 - Production on 28-11月-2024 14:20:05
-
- Copyright (c) 1991, 2010, Oracle. All rights reserved.
-
- 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.10)(PORT=1522)))
- LISTENER 的 STATUS
- ------------------------
- 别名 GW_LISTENER
- 版本 TNSLSNR for 32-bit Windows: Version 11.2.0.1.4 - Production
- 启动日期 28-11月-2024 14:19:08
- 正常运行时间 0 天 0 小时 0 分 56 秒
- 跟踪级别 off
- 安全性 ON: Local OS Authentication
- SNMP OFF
- 监听程序参数文件 D:\product\11.2.0\tg_1\network\admin\listener.ora
- 监听程序日志文件 d:\product\11.2.0\tg_1\diag\tnslsnr\ORASERVER\gw_listener\alert\log.xml
- 监听端点概要...
- (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.10)(PORT=1522)))
- 服务摘要..
- 服务 "dg4msql" 包含 1 个实例。
- 实例 "dg4msql", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
- 命令执行成功
-
复制代码 Oracle侧配置添加tns
在Oracle服务器上,修改tnsnames.ora,进入到$ORACLE_HOME/network/admin目录下编辑tnsnames.ora,增加配置如下:- dg4msql =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.10)(PORT = 1522))
- (CONNECT_DATA = (SID = dg4msql))
- (HS = OK )
- )
复制代码 验证链接
在Oracle数据库创建DBLINLK- CREATE DATABASE LINK toMSSQL CONNECT TO "sa" IDENTIFIED BY "XXXXXX" USING 'dg4msql';
复制代码 查询即可- SELECT * FROM 表名@toMSSQL;
复制代码 以上就是使用Oracle通过gateway连接MSSQL的详细流程的详细内容,更多关于Oracle gateway连接MSSQL的资料请关注脚本之家其它相关文章!
来源:https://www.jb51.net/database/331888fyj.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |