使用Oracle通过gateway连接MSSQL的详细流程

 更新时间:2024年12月05日 11:36:47   作者:徐sir(徐慧阳)  
oracle Gateway是Oracle公司提供的一种访问非Oracle数据源的方法,它可以将非Oracle数据源(如SQLserver、mysql等)的数据看作是oracle数据库中的表,从而可以使用SQL和PLSQL等Oracle语言来访问这些数据,本文介绍了使用Oracle通过gateway连接MSSQL的详细流程

环境概述

某医院的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对应的地方。

image.png

这里填写MSSQL的连接信息:

数据库服务器主机名:就是MSSQL服务器的IP地址

实例名:如果是默认的MSSSQL这里可以不填写

数据库名:写上要连的数据库名

然后继续安装即可

image.png

最后一步会让你配置监听服务,这里默认勾选执行典型配置即可,回头再修改监听配置。

注意,我下面的示例没有使用默认的典型配置,而是修改了监听名称为GW_LISTENER,端口使用了1522

image.png

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的资料请关注脚本之家其它相关文章!

相关文章

  • Oracle数据库正则表达式纯数字例子

    Oracle数据库正则表达式纯数字例子

    正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,这篇文章主要给大家介绍了关于Oracle数据库正则表达式纯数字的相关资料,需要的朋友可以参考下
    2024-08-08
  • Oracle数据库执行慢问题排查详细过程

    Oracle数据库执行慢问题排查详细过程

    这篇文章主要给大家介绍了关于Oracle数据库执行慢问题排查的详细过程,在企业级应用中,数据库的稳定性和性能是至关重要的,文中给出了详细的代码实例,需要的朋友可以参考下
    2023-07-07
  • Oracle监听口令及监听器安全详解

    Oracle监听口令及监听器安全详解

    这篇文章主要介绍了Oracle监听口令及监听器安全的解决方法,需要的朋友可以参考下
    2014-07-07
  • Oracle存储过程与函数的详细使用教程

    Oracle存储过程与函数的详细使用教程

    存储过程和函数在Oracle中被称为子程序,是指被命名的PL/SQL块,这种块可以带有参数,可以被多次调用,下面这篇文章主要给大家介绍了关于Oracle存储过程与函数的详细使用,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Oracle使用in语句不能超过1000问题的解决办法

    Oracle使用in语句不能超过1000问题的解决办法

    最近项目中使用到了Oracle中where语句中的in条件查询语句,在使用中发现了问题,所以下面这篇文章主要给大家介绍了关于Oracle使用in语句不能超过1000问题的解决办法,需要的朋友可以参考下
    2022-05-05
  • oracle去除字符串中制表符、换行、回车及空格方法代码

    oracle去除字符串中制表符、换行、回车及空格方法代码

    在Oracle数据库中有时我们需要处理字符串中的特殊字符,下面这篇文章主要给大家介绍了关于oracle去除字符串中制表符、换行、回车及空格的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • Oracle 模糊查询及like用法

    Oracle 模糊查询及like用法

    这篇文章主要介绍了Oracle 模糊查询like用法,我们可以在where子句中使用like关键字来达到Oracle模糊查询的效果,需要的朋友可以参考下面文章具体内容
    2021-09-09
  • Windows server 2008 R2(win7)登陆sqlplus错误ORA-12560和ORA-12557的解决方法

    Windows server 2008 R2(win7)登陆sqlplus错误ORA-12560和ORA-12557的解

    这篇文章主要为大家详细介绍了Windows server 2008 R2(win7)登陆sqlplus错误ORA-12560和ORA-12557的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Oracle数据库安全策略分析(一)

    Oracle数据库安全策略分析(一)

    Oracle数据库安全策略分析(一)...
    2007-03-03
  • oracle 10g 精简版安装步骤分享

    oracle 10g 精简版安装步骤分享

    今天遇到个软件要求安装oracle client端,于是考虑装精简版本的,以下是具体的安装步骤,特分享下,方便需要的朋友
    2014-06-06

最新评论