前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >配置Oracle Gateway 12连接到SQL server 2014

配置Oracle Gateway 12连接到SQL server 2014

作者头像
Leshami
发布于 2018-08-13 06:19:55
发布于 2018-08-13 06:19:55
3.1K00
代码可运行
举报
文章被收录于专栏:乐沙弥的世界乐沙弥的世界
运行总次数:0
代码可运行

最近的工作中需要基于Oracle连接到SQLserver2014,我们可以通过配置Gateway的方式来实现这个功能。这个Gateway的实质是透过dblink来实现的。即把SQLserver模拟成一个远端的Oracle实例,这个实例由Gateway来负责进行接收,转发等等。本文简要描述其配置过程。

一、安装环境介绍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gateway: 12.1.0.2
Oracle db: 11.2.0.4 + RHEL6.3
Sqlserver: 2014 + Win2012

如果安装在已经安装Oracle相同的目录下,会收到如下提示,无法继续安装。
[INS-32025] The chosen installation conflicts with software already
installed the given Oracle home.

二、安装Oracle gateway

1、准备环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ unzip linuxamd64_12102_gateways.zip 
$ mkdir -p /u01/app/gateway
$ mkdir -p /u01/app/gateway/12.1
$ cp ~/.bash_profile ~/.bash_profile_gw
$ vim  ~/.bash_profile_gw    ###编辑新的bash_profile文件

$ more ~/.bash_profile_gw    ###编辑后如下
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=wms.ycdata.net; export ORACLE_HOSTNAME
ORACLE_UNQNAME=dg4msql; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/gateway; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/12.1; export ORACLE_HOME
ORACLE_SID=dg4msql; export ORACLE_SID

PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

2、安装配置gateway

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ source ~/.bash_profile_gw
$ env |grep ORACLE
ORACLE_UNQNAME=dg4msql
ORACLE_SID=dg4msql
ORACLE_BASE=/u01/app/gateway
ORACLE_HOSTNAME=wms.ycdata.net
ORACLE_HOME=/u01/app/gateway/12.1

$ export DISPLAY=192.168.21.157:0.0
$ cd gateways/
$ ./runInstaller

选择for sql server
    Oracle Database Gateway for Microsoft SQL Server
    Oracle Database Gateway for ODBC (此项可以用于配置访问mysql)

输入sqlserver连接信息,也可以后续再配置文件initdg4msql.ora中修改    
192.168.21.157
1433
HQ1636
testdb

安装完毕后,会提示创建监听器,可以直接创建,也可以在安装完毕后再配置,本文是在安装完毕后,通过netmgr进行配置的。
在通过netmgr配置时,除了配置监听器地址和端口号之外,还需要配置其他服务项:
Program Name             dg4msql
SID                      dg4msql
Oracle Home Directory    /u01/app/gateway/12.1

与此同时,也可以通过netmgr配置tnsnames.ora
$ cd $ORACLE_HOME/network/admin
$ more listener.ora 
# listener.ora Network Configuration File: /u01/app/gateway/12.1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER_GW =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = wms.ycdata.net)(PORT = 1531))
  )

SID_LIST_LISTENER_GW =
  (SID_LIST =
    (SID_DESC =
      (PROGRAM = dg4msql)
      (SID_NAME = dg4msql)
      (ORACLE_HOME = /u01/app/gateway/12.1)
    )
  )

ADR_BASE_LISTENER_GW = /u01/app/gateway

###查看配置后的tnsnames.ora
$ more tnsnames.ora 
# tnsnames.ora Network Configuration File: /u01/app/gateway/12.1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

DG4MSQL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = wms.ycdata.net)(PORT = 1531))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dg4msql)
    )
  )

###安装完毕,在gateway相应目录下也有对应的配置样例,如下  
$ cd $ORACLE_HOME/dg4msql/admin
$ ls
dg4msql_cvw.sql  dg4msql_tx.sql  initdg4msql.ora  listener.ora.sample  tnsnames.ora.sample

###这个文件用于配置连接到sqlserver
$ more initdg4msql.ora
HS_FDS_CONNECT_INFO=[192.168.21.157]:1433//testdb
# alternate connect format is hostname/serverinstance/databasename
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

三、测试gateway

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ lsnrctl start LISTENER_GW

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 08-JAN-2016 18:03:03

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Starting /u01/app/gateway/12.1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.1.0.2.0 - Production
System parameter file is /u01/app/gateway/12.1/network/admin/listener.ora
Log messages written to /u01/app/gateway/diag/tnslsnr/wms/listener_gw/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=wms.ycdata.net)(PORT=1531)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=wms.ycdata.net)(PORT=1531)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_GW
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                08-JAN-2016 18:03:03
Uptime                    0 days 0 hr. 0 min. 0 sec    --Author : Leshami
Trace Level               off                          --Blog   : http://blog.csdn.net/leshami 
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/gateway/12.1/network/admin/listener.ora
Listener Log File         /u01/app/gateway/diag/tnslsnr/wms/listener_gw/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=wms.ycdata.net)(PORT=1531)))
Services Summary...
Service "dg4msql" has 1 instance(s).
  Instance "dg4msql", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

$ tnsping DG4MSQL

TNS Ping Utility for Linux: Version 12.1.0.2.0 - Production on 08-JAN-2016 18:29:51

Copyright (c) 1997, 2014, Oracle.  All rights reserved.

Used parameter files:
/u01/app/gateway/12.1/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = wms.ycdata.net)(PORT = 1531))) 
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dg4msql)))
OK (0 msec)

$ sqlplus WMS_USER/xxx@WMSSERVER
SQL> show user;
USER is "WMS_USER"

SQL> create public database link mssql connect to robin identified by "xxx" using 'dg4msql';

SQL> select * from tt@dg4msql;
select * from tt@dg4msql
                            *
ERROR at line 1:
ORA-28546: connection initialization failed, probable Net8 admin error
ORA-02063: preceding line from DG4MSQL

调整DG4MSQL配置,增加(HS=OK)DG4MSQL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = wms.ycdata.net)(PORT = 1531))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = dg4msql)
    )
     (HS=OK)
  )

###再次测试
SQL> select * from tt@dg4msql;

        id
----------
         1

四、简化管理

由于Oracle gateway安装时使用了不同的Oracle Home,因此在启动gateway监听时,需要切换环境变量。因此可以直接将gateway 下的监听器内容复制到Oracle Home下listener.ora文件中,同时也复制DG4MSQL至Oracle Home下的tnsnames.ora文件中,省去环境切换的麻烦。

五、更多参考

How to Configure DG4MSQL (Oracle Database Gateway for MS SQL Server) 64bit Unix OS (Linux, Solaris, AIX,HP-UX) post install (Doc ID 562509.1) ORA-28500 SQLSTATE 8001 When I Select Via DG4MSQL (Doc ID 868672.1)

六、连接过程图(参考其他大湿)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年01月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mysql 数据库连接_java连接oracle数据库
Oracle数据网关,就像一个桥梁,贯通oracle数据库和non-oracle数据库。在配置过程中,我们经常讲到的三个重要文件:第一、tnsnames.ora;第二、lisener.ora;第三、init.ora。他们是如何工作呢?
全栈程序员站长
2022/10/05
95.7K0
Oracle 21c通过dg4odbc配置dblink连接到PostgreSQL
在PG中访问PG可以通过dblink,在PG中访问Oracle可以通过oracle_fdw,访问MySQL可以通过mysql_fdw,具体过程可以参考:https://www.xmmup.com/pgzhongdefile_fdwpostgres_fdwhedblink.html
AiDBA宝典
2022/11/07
1.7K0
配置ORACLE 客户端连接到数据库
Oracle 客户端连接到Oracle 数据库服务器貌似不同于SQL serve中的网络配置,其实不然,只不过所有的SQL server 运行于Windows平台,故很多配置直接集成到了操作系统之中。所以无需配置客户端即可连接到服务器。Oracle 客户端连接到数据库依赖于Oracle Net。Oracle提供了很多基于客户端或服务器的配置工具,需要搞清的是Oracle Net 中的相关术语。术语明白了,其实配置方法与SQL server 大同小异。
Leshami
2018/08/07
5.6K0
oracle配置dblink访问mysql数据库
环境说明: Oracle: 12.1.0.2.0 OS: CentOS Linux release 7.9.2009 MySQL: 5.7.38            Oracle 字符集:AMERICAN_AMERICA.AL32UTF8 MySQL 字符集:utf8
彻底
2023/07/20
1.1K0
在Oracle配置MySQL数据库的dblink
本文介绍如何在Oracle配置mysql数据库的dblink;虽然dblink使用很占资源;俗称“性能杀手”。但有些场景不得不使用它。例如公司使用数据库是Oracle;可能其他部门或者CP合作公司使用的数据库是MySQL。若需要数据对接。
星哥玩云
2022/08/18
3.2K0
Oracle备库的PDB无法连接的问题(r11笔记第6天)
今天在测试12c的temp_undo的时候,准备在备库上测试一下,突然发现备库使用TNS连接竟然失败。 抛出的错误如下: $ sqlplus sys/oracle@testdb as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Thu Dec 8 15:30:10 2016 Copyright (c) 1982, 2014, Oracle. All rights reserved. ERROR: ORA-12514: TNS:listener doe
jeanron100
2018/03/21
9650
基于同一主机配置 Oracle 11g Data Guard
       Oracle Data Guard 为企业数据库提供了最有效和最全面的数据可用性、数据保护和灾难恢复解决方案。它集成管理、监视和自动化软件基础架构来创建和维护一个或多个同步备用数据库,从而保护数据不受故障、灾难、错误和损坏的影响。本文主要描述了在同一主机下如何配置Oracle Data Guard。
Leshami
2018/08/13
4350
在Oracle中通过dblink访问PG数据库
在PG中访问PG可以通过dblink,在PG中访问Oracle可以通过oracle_fdw,访问MySQL可以通过mysql_fdw,具体过程可以参考:https://www.xmmup.com/pgzhongdefile_fdwpostgres_fdwhedblink.html
AiDBA宝典
2022/11/07
3.9K0
listener.ora,tnsnames.ora中一个空格的威力
最近几天被网络监听配置搞得焦头烂额,有时候配置没问题,有时候就出莫名其妙的问题,今天专门花时间总结了一下,希望对大家有所帮助。 listener.ora,tnsnames.ora有时候没有netca,netmgr这样的图形工具来创建的时候,只能手工来做,手工做的时候会有一些格式的问题,多加一个空格,或者少一个空格,就会有不同的结果。 案例一 下面是一个监听的基本配置,我故意在前面多加了一个空格(黄色标记所示)。 LISTE1= (DESCRIPTION= (ADDRESS_LIST=
jeanron100
2018/03/13
1.6K0
配置 Oracle 透明网关访问 SQL Server
本文介绍了如何配置 Oracle 透明网关访问 SQL Server,包括安装和配置 Oracle 透明网关和 Oracle 数据库,以及使用 tnsnames.ora 和 sqlnet.ora 文件配置连接。
用户1148526
2018/01/03
1.7K0
Oracle 11g DG配置简明版
环境: 主库A机:在线生产环境,RHEL 6.4 + Oracle 11.2.0.3 备库B机:新增备机,RHEL 6.4 需求: 对生产环境最小影响前提下配置DG备库。 目录: 一、B机安装相同版本Oracle软件 二、A机,B机配置网络连接
Alfred Zhao
2019/05/24
1.6K0
Oracle通过透明网关访问MySQL数据库配置详解
针对Oracle数据库不同实例之间的数据访问,我们可以直接通过dblink访问,如果oracle数据库想访问MySQL/sqlserver等数据库的数据,我们可以通过配置oracle透明网关实现异构数据库dblink访问。
星哥玩云
2022/08/16
1.8K0
Oracle DataGuard 升级 [11.2.0.1 -> 11.2.0.4]
Oracle DataGuard 升级 [11.2.0.1 -> 11.2.0.4] Primary: 11.2.0.1 单机,Site A。 Standby: 11.2.0.1 单机,Site B、Site C。 当前DG环境示意图:
Alfred Zhao
2019/05/24
9780
为同机器上的多个Oracle实例配置独立监听器
假设我们需要将多个oracle实例部署在同一套RAC集群/相同物理机上时,默认部署情况下,多个oracle实例共享使用默认的1521监听器。
andelwu
2021/01/23
2.5K0
Oracle 2套rac集群指向单机多实例的复制搭建
单实例环境--standby CentOS release 6.10 (Final) hostname dg1 ip 10.*.30 Instance_name cad DB_NAME bol --此次2个一样 db_unique_name cad
星哥玩云
2022/08/17
5390
Oracle 11g RAC 环境下单实例非缺省监听及端口配置
      如果在Oracle 11g RAC环境下使用dbca创建单实例数据库后,Oracle会自动将其注册到缺省的1521端口及监听器。大多数情况下我们使用的为非缺省监听器以及非缺省的监听端口。而且在Oracle 11g RAC环境中,对于集群监听器的配置由grid用户来接管了。基于这种情形的单实例非缺省监听及端口该如何配置呢?本文给出了解决方案,并且使用了静态及动态两种注册方法。
Leshami
2018/08/13
1.6K0
Oracle 11g监听的故障排查
在虚机上执行lsnrctl start,问题解决。 1、当连接异常时,可以通过分析监听日志来查找线索 〜[test]$ find $ORACLE_HOME -name listener.log /opt/64bit/oracle/11.2.0/log/diag/tnslsnr/sinrndvud062/listener/trace/listener .log
孙杰
2019/10/29
1.5K0
Oracle 11g监听的故障排查
Oracle通过HSODBC访问mysql
用户1148526
2018/01/03
1.9K0
[Oracle-> MySQL] Oracle通过dblink连接MySQL--Oracle 19c连接到MySQL 5.7
今天小麦苗给大家分享的是[Oracle-> MySQL] Oracle通过dblink连接MySQL--Oracle 19c pdb连接到MySQL 5.7。
AiDBA宝典
2019/09/29
3.3K0
[Oracle-> MySQL] Oracle通过dblink连接MySQL--Oracle 19c连接到MySQL 5.7
实战篇:Oracle 配置透明网关访问 MySQL 详细教程
从 Oracle 无法直接访问 Mysql 数据库,需要配置透明网关后通过 DBLink 实现访问。
Lucifer三思而后行
2021/11/19
1.8K1
实战篇:Oracle 配置透明网关访问 MySQL 详细教程
相关推荐
mysql 数据库连接_java连接oracle数据库
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验