文档章节

Oracle 11g透明网关连接Sqlserver

小强斋太
 小强斋太
发布于 2016/11/09 20:06
字数 1253
阅读 86
收藏 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
广州
sqlserver2005数据库移植到oracle9i问题

首先声明,这俩个数据库之间的移植方法很多,网上也有介绍,例如:sqlserver自带的导入导出工具:(在sqlserver中右击需要移植的数据库,选“任务”——>导出数据库......这里就不介绍了)。...

gavinking
2011/08/06
0
0
jmeter(八)-JDBC请求(sqlserver)

做JDBC请求,首先要了解这个JDBC对象是什么,然后寻找响应的数据库连接URL和数据库驱动。 数据库URL:jdbc:sqlserver://200.99.197.190:1433;databaseName=ebank 数据库驱动:com.microsoft...

劲风online
2015/01/08
0
0
SQLServer2008 新建链接服务器 for Oracle

最近要在SQLServer2008中使用Oracle 10g的一个视图,通过建立链接服务器即可在SQLServer中使用Oracle提供的视图。 前提:SQLServer服务器端需要安装Oracle的客户端 1.配置Oracle连接信息 在t...

燕国三爷
2013/05/10
0
0
RDIFramework.NET ━ .NET快速信息化系统开发框架-第3章 软件安装、配置、运行方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/7979367 RDIFramework.NET ━ .NET快速信息化系统开发框架 第3章 软件安装、配置...

rdiframework
2012/09/14
0
0
基于AEAI ESB的处理大字段

1.背景 数据迁移中大字段一直是个比较头疼的问题,一旦大字段中值大于32K的话就无法用sql语句来实现插入和更新。通用的解决办法一般有两种:存储过程和JDBC。下面主要总结下基于AEAI ESB用J...

数通畅联
2015/01/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

svn 常用操作命令及问题处理

1. 常用命令 1.1. 基本使用 检出 checkout ➜ svn co repo_url -m '检出代码'➜ svn co repo_url saved_dir_name -m '检出代码,并指定目录名' 加入版本控制 add # 添加指定文件➜ svn...

whoru
17分钟前
0
0
记一次jquery validate的扩展(第一次失去焦点时触发校验)

最近在用jquery.validate 做前端表单校验,但是发现每次第一次失去焦点时,如果文本框内容为空,且该字段是必填项, 则不会触发校验,直到提交表单后,再次失去焦点时,才会触发,想对此进行...

foreach
21分钟前
0
0
java生成UUID

UUID介绍: UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以...

编程SHA
24分钟前
0
0
Docker Compose 原理

Docker 的优势非常明显,尤其是对于开发者来说,它提供了一种全新的软件发布机制。也就是说使用 docker 镜像作为软件产品的载体,使用 docker 容器提供独立的软件运行上下文环境,使用 dock...

Java干货分享
38分钟前
0
0
解决过滤器中设置cookie无效的问题

解决过滤器中设置cookie无效的问题 代码现场 filterChain.doFilter(sessionSyncRequestWrapper, response);Cookie emailCook = WebServletUtil.getSelectedCookie(request.getCookies(), ......

黄威
49分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部