文档章节

Oracle 11g透明网关连接Sqlserver

小强斋太
 小强斋太
发布于 2016/11/09 20:06
字数 1253
阅读 82
收藏 0
点赞 0
评论 0


Oracle 11g透明网关连接Sqlserver

oracle 透明网关是oracle连接异构数据库提供的一种技术。通过Gateway,可以在Oracle里透明的访问其他不同的数据库,如SQL Server, DB2, Sybase等等,就像远程Oracle数据库一样。配置后的sql查询的处理流程

clipboard

一、环境信息

Oracle11g
IP地址 172.17.84.29
Oracle根目录 /u01/oracle/app/product/11.2.0/dbhome_1
Oracle端口 1521

Oracle gateway11

IP地址 172.17.22.230
gateway11根目录 D:\product\11.1.0\tg_1
gateway端口 1521
SID HR

Sqlserver2012

IP地址 172.17.22.230
数据库名 HR
用户名 sa
密码 admin_123

Oracle透明网关下载地址: http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_gateways.zip

二、Oracle透明网关配置

2.1. gateway安装

解压linux.x64_11gR2_gateways.zip,运行setup安装即可,这里我们将透明网关和SQLServer数据库安在了一台服务器上。

clipboard[1]

clipboard[2]

clipboard[3]

下一步,填写SQLServer数据库服务器主机名,如:172.17.22.230;数据库名称:HR

clipboard[4]

clipboard[5]

安装完后,会弹出配置监听界面,因为我们要手工配置,点击取消即可。

安装完Gateway软件后,在ORACLE_HOME目录(D:\product\11.2.0\tg_1)下有一下dg4msql的目录,这就是Gateway软件的目录了。

2.2. 透明网关层配置的SID信息,指明要访问的MSSQL数据库

D:\Oracle\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora目录下有一个initdg4msql.ora的文件。该文件是Gateway的初始参数文件,描述连接的是哪个SQL Server数据库。该文件的格式是initSID.ora,这里的SID在后面需要用到,系统默认的是dg4msql,一般情况这样就可以了。如果改名,如使用HR作为SID,则文件名变成initHR.ora。文件内容如下

# This is a customized agent init file that contains the HS parameters
# that are needed for the Database Gateway for Microsoft SQL Server
#
# HS init parameters
#

HS_FDS_CONNECT_INFO=[172.17.22.230]//HR
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

只要修改HS_FDS_CONNECT_INFO参数就可以了。格式是:[hostname:port]/serverinstance/databasename,其中hostname是机器名称或IP,PORT是SQL Server的端口号,SQL Server2005默认为1433.serverinstance是SQL Server的实例名,一般空着就行。Databasename是SQL Server的数据库名。因为我们在安装过程中指定了主机名和数据库名,这里已经有信息了。

2.3. 透明网关层配置监听器,处理oracle的查询请求

透明网关层的监听配置文件: D:\Oracle\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora

这里PROGRAM指定应用程序名称,因为实例配置文件在D:\Oracle\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora,所以PROGRAM不能改变, SID_NAME就是前面init.ora文件名里指定的SID

# listener.ora Network Configuration File: D:\product\11.2.0\tg_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
 
SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
     (GLOBAL_DBNAME = HR)
     (PROGRAM = dg4msql)
     (SID_NAME = HR)
     (ORACLE_HOME = D:\product\11.2.0\tg_1)
    )
  )
 
    
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.22.230)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
 
ADR_BASE_LISTENER = D:\product\11.2.0\tg_1

启动监听

C:\Users\Administrator>lsnrctl start
 
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 20-7月 -2016 15:0
8:31
 
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
 
启动tnslsnr: 请稍候...
 
TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
系统参数文件为D:\product\11.2.0\tg_1\network\admin\listener.ora
写入d:\product\11.2.0\tg_1\diag\tnslsnr\WIN-158KFV5FSBR\listener\alert\log.xml的
日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.17.22.230)(PORT=1521)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
 
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.22.230)(PORT=1521)))
 
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期                  20-7月 -2016 15:08:47
正常运行时间              00 小时 03 秒
跟踪级别                  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\WIN-158KFV5FSBR\li
stener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.17.22.230)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "HR" 包含 1 个实例。
  实例 "HR", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
 
C:\Users\Administrator>

也可以去windows的服务中查看OracleOraGtw11g_home1TNSListener是否已经启动

2.4 Oracle服务器配置tns

在需要建立dblink的Oracle数据库所在服务器,配置/u01/oracle/app/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

HR =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =172.17.22.230)(PORT = 1521))
    (CONNECT_DATA=(SID=HR))
    (HS=OK)
  )

测试tns

[oracle@elearningtest admin]$ tnsping HR
 
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 20-JUL-2016 15:14:22
 
Copyright (c) 1997, 2013, Oracle.  All rights reserved.
 
Used parameter files:
/u01/oracle/app/product/11.2.0/dbhome_1/network/admin/sqlnet.ora
 
 
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =172.17.22.230)(PORT = 1521)) (CONNECT_DATA=(SID=HR)) (HS=OK))
OK (10 msec)

2.5.建立DB link

create public database link HRdbLink connect to sa identified by "admin_123" using 'HR';

2.6 测试

SQL> select 1 from dual@HRdbLink;

1

----------

1

三、遇到的错误

错误1:initdg4msql.ora错误

[SQL]Select 1 from dual@HRdbLink
[Err] ORA-28545: 连接代理时 Net8 诊断到错误
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: 紧接着 2 lines (起自 HRDBLINK)

原因:

D:\Oracle\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora的HS_FDS_CONNECT_INFO值配置错误

错误2.透明网关的监听卡住,无法重启

相关进程没有彻底关闭,杀掉相关进程 如dg4msql.exe

参考:

https://docs.oracle.com/cd/B28359_01/gateways.111/b31043/conf_sql.htm

本文转载自:http://www.cnblogs.com/xqzt/p/5688659.html

共有 人打赏支持
小强斋太
粉丝 0
博文 181
码字总数 0
作品 0
广州
SQLServer 开启远程访问,也可逆向思维进行关闭

为了可以通过TCP/IP协议远程访问SQLServer数据库,需要做以下几点: 在SQLServer所运行的服务器上,我们必须找到SQLServer所侦听的端口然后添加到WIndows防火墙的【允许入站】中。 一:需要添...

easonjim ⋅ 2015/08/25 ⋅ 0

sqlserver,你的delete语句表名为什么不能别名?

前几天写了几行sql,用于清除环境里面的脏数据,平时开发用的是oracle数据库,看了下里面的语句,处理concat字符串拼接函数看起来稍微特殊点,其它都没有啥问题。百度了下,cancat可以用在收...

heshifk ⋅ 04/23 ⋅ 0

SQL Server on Linux 2017(初识 LINUX下的SQL-SERVER功能应用)

安装环境Centos7: 官方安装必要條件: 必须 RHEL 7.3 或 7.4 机至少 2 GB的内存 1、设置mssql_server的YUM官方源: curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsof...

jwenshan ⋅ 05/28 ⋅ 0

MSSQL-Server On Docker

安装先决条件: • 适用于支持的任一 Linux 分发版的 Docker 引擎 1.8 以上版本,或适用于 Mac/Windows 的 Docker。 有关详细信息,请参阅 Install Docker(安装 Docker)。 • 至少 2 GB 的...

jwenshan ⋅ 05/30 ⋅ 0

使用 Informatica 做将字符串转换成日期

数据源为 SQLServer 数据库,且源字段 varchar 类型。需要抽取到 Oracle 数据库中,并且转换为 date 类型。 由于源表和目标表是两种不同的数据库,且数据类型不同,所以无法在源表限定转换器...

DreamOver ⋅ 06/08 ⋅ 0

Mybatis 分页插件 PageHelper 5.1.4 发布

如果你也在用 Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。 该插件目前支持以下数据库的物理分页 Oracle Mysql MariaDB SQLite Hsqldb PostgreSQL DB2 SqlServer(2005+) I...

Liuzh_533 ⋅ 04/23 ⋅ 0

Oracle11G中通过透明网关查询SqlServer数据库表中的新增字段时,只能查询到原有的字段,无法

在使用oracle透明网关时遇到了这么个问题,在SqlServer数据库的表中加入了一个新字段, 在oracle这边通过透明网关的连接查询 SqlServer 这个表中的 新增字段时,无法查询到这个新增字段 是什...

碧海云天 ⋅ 2014/08/15 ⋅ 0

各个数据库的无order by选取某一列的默认排序

Oracle: oracle对无order by的语句返回的结果不进行排序,oracle此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。但...

Aeroever ⋅ 04/25 ⋅ 0

SQL 2017 SQLPS执行Ad-SqlAvailabilityDatabase异常

SQL Server 2017 SQLPS执行Ad-SqlAvailabilityDatabase遇到问题 这个错误简直逆天,查了下该cmdlet的帮助 常规参数里有Debug。 执行Debug,输出如下: PS C:Windowssystem32> Add-SqlAvailab...

UltraSQL ⋅ 05/23 ⋅ 0

“SQLServerAgent当前未运行”问题解决

在执行SQLServer计划任务的时候,出现了如下所示的错误: 解决方法: 配置工具--sqlserver 配置管理器--SQLSERVER服务--右侧最下面--点击启动AGENT即可 ==>如有问题,请联系我:easonjim#16...

easonjim ⋅ 2016/04/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 41分钟前 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部