一. SQLDB的配置
在SQL SERVER上建立用户testuser/testuser, 并授予可访问SQLTest的权限(Oracle数据库通过该用户访问SQL Server)。
二.GATEWAY的配置(%ORACLE_HOME% 如C:\Oracle\product\10.2.0\)
1.安装ORACLE10g的透明网关(Oracle Transparent Gateway)选项 Microsoft SQL Server。 安装时需要选择SQL SERVER主机和数据库(server:10.1.1.13, DB:SQLTest)。
2.安装SQL Server2000,因为是WINDOWS XP,所以只装了SQL Server 2000客户端。
3.拷贝%ORACLE_HOME%\tg4msql\admin\inittg4msql.ora改名为initSID_NAME.ora(example:initFinasvrHZ.ora),这是网关进程启动时需要的初始化文件,修改HS_FDS_CONNECT_INFO这行,其他的内容不变。比如:
HS_FDS_CONNECT_INFO="SERVER=Finasvr;DATABASE=SQLTest" or
HS_FDS_CONNECT_INFO="Finasvr.SQLTest"
4.修改%ORACLE_HOME%\network\admin 下listener.ora内容如下:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
)
#这边的HOST一定是localhost,而不是SQL SERVER那台机器
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\Oracle\product\10.2.0)
(PROGRAM = extproc)
)
(SID_DESC=
(SID_NAME=finasvrhz)
(ORACLE_HOME= C:\Oracle\product\10.2.0)
(PROGRAM=tg4msql)
)
)
5.重启动GateWay上(IP:192.168.100.6)TNSListener服务
三.ORADB的配置($ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1/)
在$ORACLE_HOME/network/admin/tnsnames.ora, 添加下面的内容
finasvrlk = # 连接字符串可以随便取
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.6)(PORT = 1521))
(CONNECT_DATA =
(SID = finasvrhz) #SID_NAME与上面的SID_NAME相同
)
(HS=OK) #固定为OK
)
保存tnsnames.ora后,可以用TNSPING命令测试listener
设置数据库参数global_names=false。
设置global_names=false不要求建立的数据库链接和目的数据库的全局名称一致。global_names=true则要求建立的数据库链接和目的数据库的全局名称一致。
alter system set global_names=false;
建立数据库链接:
create database link sqllink connect to testuser identified by “testuser” using ‘finasvrlk’;
访问SQL Server下数据库里的数据:
select * from temp@sqllink;
使用透明网关只可以用标准的 DML,并及时提交
关于出现ORA-28545错误,在我这发生的原因是因为配置了listner之后没有重新启动它,当然,前提是在设置都正确下,出现了这个错误。
SQL> select * from t@sqllink;
select * from t@sqllink
*
ERROR 位于第 1 行:
ORA-28545: 连接代理时 Net8 诊断到错误
NCRO:无法执行 RSLV 连接
ORA-02063: 紧接着2 lines(源于SQLLINK)
解决:lsnrctl stop / lsnrctl start
另外, 蓝色字体标明的几个名称要特别注意!
相关推荐
通过ORACLE通用连接访问SQLServer数据库的方法
sqlserver关于表中存在text字段的导入oracle
本文详细描述了在oracle10g或11g中使用dblink访问sql server,使用oracle的透明网关来访问异构的数据库,方便一些习惯使用oracle的开发人员操作sql server数据库
Oracle访问sqlserver透明网关配置简要说明
oracle通过odbc方式,连接到sqlserver数据库。比透明网关方式更加简单
oracle透明网关访问sqlserver2000
oracle与sql server互相访问
oracle通过ODBC建立dblink访问SqlServer数据库配置
SqlServer2008通过Oracle provider for OLEDB访问远程Oracle数据库 包括链接服务器环境安装、链接服务器创建、远程建表、修改表,增删改查数据,创建、执行带参与无参存储过程的方法等,资料为作者参考网络资料整理...
C++通过ADO访问SQLSERVERORACLE数据库.doc
SQLServer2008与Oracle11g 同时为现代企业两个重量级的数据库,如何实现他们之 间的互连互通 1.2. 环境信息 SQLServer :2008R2 Oracle:11gR2 1.3. 相关文档 《OracleDB11g初探》《SQLServer2008初探》
ORACLE访问SQL SERVER数据库有一篇《Oracle 异构服务实践》讲得很清楚。 但里面没有讲如何设置访问多个SQL Server数据库, 我就补充一下。 假设我们要在ORACLE里同时能访问SQL Server里默认的pubs和Northwind两...
使用透明网关实现oracle访问sqlserver,通过安装透明网关gateway,配置透明网关后,使用dblink的方式访问sqlserver数据库。
详细安装步骤+个人理解
oracle通过安装透明网关访问sqlserver数据库,透明网关要与数据库的版本保持一致,附件中包含了透明网关及数据库的配置文件及经过整理测试的文档。亲测好用,但是由于不同的环境导致无法访问的 请检查防火墙及安全...
数据库访问类,采用工厂模式,支持Oracle,SQL Server,Access,以及一些常用的数据库相关的操作方法(如构造日期条件、构造In条件)
Oracle11GR2通过透明网关访问SQLSERVER
ORACLE透明网关连接SQLSERVER操作 操作过程有截图,内容清晰。 目录 一、 ORACLE透明网关的安装步骤: 二、 配置透明网关文件inittg4msql.ora 三、 配置透明网关的监听器文件LISTENER.ORA 四、 配置透明网关的TNS...
NHibernate访问oracle,sqlServer实例