教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 资料大全 >

ORACLE 创建DBlink访问SQL SERVER数据库

来源:网络收集 时间:2026-09-08
导读: Oracle中使用透明网关链接到 Sqlserver 在最近项目中需要从Oracle中访问SQL Server数据库, 自然想到了透明网关. 因为Oracle数据库是 Linux上的, 而Linux上的Oracle9i不包括连接到SQL Server的透明网关.就在一台单独的Windows 服务器上安装了透明网关用做Orac

Oracle中使用透明网关链接到

Sqlserver

在最近项目中需要从Oracle中访问SQL Server数据库, 自然想到了透明网关. 因为Oracle数据库是

Linux上的, 而Linux上的Oracle9i不包括连接到SQL Server的透明网关.就在一台单独的Windows

服务器上安装了透明网关用做Oracle访问SQL Server的桥梁.

环境如下:

Oracle Database Server:Linux + oracle 9.2.0.4 IP:10.194.129.197

Transparent Gateway:Windows 2003 server IP: 10.194.129.225

MS SQL Server:Windows 2003 server + SQL Server 2005 IP: 10.194.129.225

1、 Transparent Gateway for SQL Server安装

从Oracle 9i数据库安装光盘setup.exe安装,选择安装客户端

安装类型选择:管理员

安装完客户端后,重新运行setup.exe,安装产品选择Oracle 9i Database 9.2.0.1.0, 安装类型选择"

自定义",安装组件选择Oracle Net Services和Oracle Transparent Gateways, 并在此项下选择

Oracle Transparent Gateway for Microsoft SQL Server, 安装过程中可以不设置连接到SQL Server

的信息.如下图所示:

以下的IP地址及数据库以实际环境为准

2、 编辑%ORACLE_HOME%\tg4msql\admin\init%ORACLE_SID%.ora, 该文件包含了TG for

SQL Server的配置信息, 其中%ORACLE_SID%是给TG的"SID", 默认为tg4msql. 修改文件中的行 HS_FDS_CONNECT_INFO="SERVER=10.194.129.225;DATABASE=185life"

其中SERVER后为SQL Server所在的服务器名称或ip地址,Database为连接到的数据库名称.

当然,如果在SQL Server服务器上,有两个sql server实例,则使用‘服务器名"实例名’的方式设置上面

的SERVER值,如:

HS_FDS_CONNECT_INFO="SERVER=ZZL\MSSQLSERVER;DATABASE=MSDB"

3、 编辑%ORACLE_HOME%"network"admin"listener.ora, 编辑对应listener的SID_LIST

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(SID_NAME=%ORACLE_SID%)

(ORACLE_HOME=oracle_home_directory)

(PROGRAM=tg4msql)

)

)

例如:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = tg4msql)

(ORACLE_HOME = d:\oracle\ora92) #oracle的主目录

(PROGRAM = tg4msql)

)

)

其中%ORACLE_SID%必须为第二布中设置的SID, 默认值为tg4msql. 修改listener.ora文件后需重

启listener使修改生效.如果没有listener.ora文件,请用Net Configuration Assistant或Net Manager

新建一个LISTENER.

以上操作都是在Transparent Gateway所在机器上。

4、 在Oracle服务器上:编辑需要连接到透明网关的Oracle Server的

$ORACLE_HOME\network\admin\tnsnames.ora, 例如:

TG4MSQL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.194.129.225)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = tg4msql)

)

(HS = OK)

)

HOST指向Transparent Gateway所在的机器的IP,Service_name为第3步中的SID_NAME

使用tnsping测试服务名是否连通,命令:tnsping tg4msql。如果不通,请检查防火墙及网络配置。

5、 在Oracle数据库中建立连接, 指向TG for SQL Server.

CREATE DATABASE LINK tg4msql CONNECT TO "user" IDENTIFIED BY "password" USING 'tg4msq

其中tg4msql是tnsnames中建立的连接字符串.

ms sql server的用户名和密码必须小写,而且要加双引号

否则会报如下错误:

错误信息:

ORA-28500: connection from ORACLE to a non-Oracle system returned this messsage:

[Transparent gateway from MSSQL][Microsoft][ODBC SQL Server

Driver][SQL Server]??

'sa'????? (SQL State:28000; SQL Code: 18456)

ORA-02063: preceding 2 lines from LINK_ZZL

错误原因:

在CREATE DATABASE LINK LINK_ZZL的连接字符串中,ms sql server的用户名和密码必须小写,而且要加双引号

6、确保CATHS.sql已被运行。

以SYS用户连接上去,查看有没有SYS.HS_FDS_CLASS,如果没有,运行

$ORACLE_HOME/RDBMS"ADMIN"CATHS.SQL

6、 测试, 如运行select * from emp@tg4msql等.

访问dblink时说明:

这是基于网关的方式,因此不能在断开网络的情况下本地的oracle连接本地的ms sql server 否则会报如下错误:

ORA-28545: error diagnosed by Net8 when connecting to an agent

NCRO: Failed to make RSLV connection

ORA-02063: preceding 2 lines from LINK_ZZL

7、BUG解决。

如果在第6步出现以下错误提示,则以SYS运行

ERROR at line 1:

ORA-28522: error initializing heterogeneous capabilities ORA-28522: error initializing heterogeneous capabilities ORA-28559: FDS_CLASS_NAME is <GTW>9.2.0.5.0_128, FDS_INST_NAME is <link>

ORA-02063: preceding 3 lines from %s

ORA-00604: error occurred at recursive SQL level 1

ORA-24274: no row exists in the HS$_BASE_CAPS table for these parameters

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86

ORA-06512: at "SYS.DBMS_HS_UTL", line 431

ORA-06512: at "SYS.DBMS_HS_CHK", line 51

ORA-06512: at "SYS.DBMS_HS_UTL", line 48

ORA-06512: at "SYS.DBMS_HS", line 38

ORA-06512: at line 1

…… 此处隐藏:1651字,全部文档内容请下载后查看。喜欢就下载吧 ……
ORACLE 创建DBlink访问SQL SERVER数据库.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/2192264.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)