oracle通过透明网关(Oracle Transparent Geteways),访问ms sql server和其他数据库
环境:
1、在安装有oracle服务器端,ms sql server的客户端,通过oracle的透明网关访问ms sql server数据库
2、在ms sql server服务器上创建用户conn_ora,并且要能访问ms sql server数据库msdb
安装Oracle Transparent Geteways:
1、'开始'菜单的'Oracle Installation Products'下的'Universal Installer'
\\192.168.0.8\e$\数据工具\oracle9.2\ORANT920\ORA92_1\NT\I386\stage\products.jar
下一步-
2、选择安装类型:
自定义,下一步
3、选择可用产品组件:
将 'Oracle Transparent Geteways 9.2.0.1.0'下的'Oracle Transparent Geteways for Microsoft SQL Server 9.2.0.1.0'选中;
将 'Oracle Transparent Geteways 9.2.0.1.0'下的'Oracle Transparent Geteways for Sybase 9.2.0.1.0'选中;
下一步;
4、设置Sybase路径
选择你的'SYBASE的完整安装路径';
下一步
5、设置数据库服务器名 和数据库名称???
Microsoft SQL Server:192.168.0.111
Microsoft SQL 数据库:msdb
服务器名称或者ip地址,数据库名字
6、继续安装:
\\192.168.0.8\e$\数据工具\oracle9.2\ORANT920\ORA92_2\NT\I386\stage
\\192.168.0.8\e$\数据工具\oracle9.2\ORANT920\ORA92_3\NT\I386\stage
7、安装完成:
此时,oracle安装主目录下有了'tg4msql'目录
C:\oracle\ora92\tg4msql
设置环境参数,创建dblink:
1、C:\oracle\ora92\tg4msql\admin下的inittg4msql.ora文件
文件内容:
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server
#
# HS init parameters
#
HS_FDS_CONNECT_INFO="SERVER=ZZL;DATABASE=MSDB"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
说明:
HS_FDS_CONNECT_INFO=ZZL.MSDB和
HS_FDS_CONNECT_INFO="SERVER=ZZL;DATABASE=MSDB"和
HS_FDS_CONNECT_INFO="SERVER=192.168.0.111;DATABASE=MSDB"
都可以,两种写法,其中‘SERVER’是服务器名称或者ip,DATABASE是数据库名称,
当然,如果在192.168.0.111这台服务器上,有两个sql server实例,则使用‘服务器名\实例名’的方式设置上面的SERVER值,
如:HS_FDS_CONNECT_INFO="SERVER=ZZL\MSSQLSERVER;DATABASE=MSDB"
2、设置listener.ora文件
位置:C:\oracle\ora92\network\admin
文件内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orademo)
(PROGRAM = orademo)
(ORACLE_HOME = C:\oracle\ora92)
(SID_NAME = orademo)
)
(SID_DESC =
(PROGRAM = tg4msql)
(ORACLE_HOME = C:\oracle\ora92)
(SID_NAME = tg4msql)
)
)
其中新增:
(SID_DESC =
(PROGRAM = tg4msql)
(ORACLE_HOME = C:\oracle\ora92) #oracle的主目录
(SID_NAME = tg4msql)
)
3、配置tnsnames.ora文件
位置:C:\oracle\ora92\network\admin
文件内容:
# TNSNAMES.ORA Network Configuration File: C:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
SDLGDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.8)(PORT = 1521))
)
(CONNECT_DATA =
(SID = SSTORA)
(SERVER = DEDICATED)
)
)
ORADEMO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = zzl)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orademo)
(SERVER = DEDICATED)
)
)
zzl_sql200 = #数据库连接名称,任意命名
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521)) #'192.168.0.111'为 oracle服务器的机器名
)
(CONNECT_DATA =
(SID = tg4msql)
)
(HS=OK) #Oracle Server要调用异构服务来处理
)
其中新增:
zzl_sql200 = #数据库连接名称,任意命名
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521)) #'192.168.0.111'为 oracle服务器的机器名
)
(CONNECT_DATA =
(SID = tg4msql)
)
(HS=OK) #Oracle Server要调用异构服务来处理
)
4、配置init.ora.1115200612231
位置:C:\oracle\admin\orademo\pfile
将global_names设置为真值,及global_names=true
5、重新启动服务:
在window的开始的运行中执行:
net stop OracleOraHome92TNSListener
net stop OracleServiceORADEMO
net start OracleOraHome92TNSListener
net start OracleServiceORADEMO
说明:OracleOraHome92TNSListener 是监听服务,OracleServiceORADEMO是实例服务
6、创建dblink:
以普通用户登录oracle:如cs/cs@orademo
--drop DATABASE LINK link_zhaozhenlong;
CREATE DATABASE LINK link_zhaozhenlong CONNECT TO "sa" IDENTIFIED BY "xxb" USING 'zzl_sql200';
说明: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的用户名和密码必须小写,而且要加双引号
7、在pl/sql中执行:
select * from sysobjects@link_zhaozhenlong where rownum <=5;
结果如下:
1 sysrowsetcolumns 4 S 4 0 0 0 0 0 2005-10-14 1:36:15
2 sysrowsets 5 S 4 0 0 0 0 0 2005-10-14 1:36:15
3 sysallocunits 7 S 4 0 0 0 0 0 2005-10-14 1:36:15
4 sysfiles1 8 S 4 0 0 0 0 0 2003-4-8 9:13:38
5 syshobtcolumns 13 S 4 0 0 0 0 0 2005-10-14 1:36:15
访问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
分享到:
相关推荐
通过Oracle的透明网关和dblink直接取sqlserver表中的数据
oracle通过ODBC建立dblink访问SqlServer数据库配置
本文详细描述了在oracle10g或11g中使用dblink访问sql server,使用oracle的透明网关来访问异构的数据库,方便一些习惯使用oracle的开发人员操作sql server数据库
oracle通过odbc方式,连接到sqlserver数据库。比透明网关方式更加简单
使用透明网关实现oracle访问sqlserver,通过安装透明网关gateway,配置透明网关后,使用dblink的方式访问sqlserver数据库。
目前通过Oracle11g连接SAP的HANA数据库Oracle11g的透明网关插件gateways中没有该选项,只能通过ODBC创建dblink连接HANA数据库,文档中包含有如何创建本地数据源ODBC,如何创建并配置相关ora文件,如何创建dblink等...
服务器均为windows server 2012,oracle 为11.2,mysql 为5.7
sqlserver关于表中存在text字段的导入oracle
在网上看了很多资料,感觉不是很仔细,很多同学遇到这个问题,就详细说明一下在局域网环境下Navicat连接SQL Server和Oracle 19c的方法,PL/SQL Developer连接Oracle
两台数据库服务器之间通过创建dblink进行数据库连接,并且数据库之间可以相互进行数据查询读取操作,操作简单易懂
Oracle创建DBlink连接MYSQL数据库
oracle 创建dblink的详细步骤,以及使用oracle快照快速的刷新,保持本地与远程数据库的同步
在SQL Server 2005 建立DBLink 到 Oracle10g 的详细过程。以及遇到的问题解决办法。
在oracle中创建dblink可以连接其它的oracle数据库。对其它的oracle数据库进行操作。
详细解绍SQL Server2005 DBLINK链接Oracle 9i详解,含有企业管理器下完整的截图过程,及DBLink查询语法介绍
Oracle数据库下创建dblink的sql语句,附带解释说明
oracle 存储过程 函数 dblink 绝对对工作和平时学习有价值的资料。针对个人具体情况做修改即可使用
oracle通过DBlink连接mysql搭建过程
本文实例讲述了SQLSERVER简单创建DBLINK操作远程服务器数据库的方法。分享给大家供大家参考,具体如下: --配置SQLSERVER数据库的DBLINK exec sp_addlinkedserver @server='WAS_SMS',@srvproduct='',@provider='...
本周由于公司一个系统的oracle数据库需要采集另一个系统mysql数据库的数据,于是对oracle通过dblink连接mysql进行了研究,测试环境是单实例oracle 10g 64位,折腾了半天搞定了,但是生产环境是10g rac,原本以为会很...