Oracle 访问 Sql Server

本文详细介绍了如何配置Oracle以通过透明网关访问SQL Server,包括在SQL Server上创建用户并授权,安装和配置Oracle透明网关,修改相关配置文件如init文件、listener.ora和tnsnames.ora,以及设置数据库参数和创建数据库链接。最后提到了可能出现的错误及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主机 
操作系统 
软件环境 
GateWay
192.168.100.6
Windows XP
Oracle 10g 
SQL Server 2000 Client
Finasvr
10.1.1.13
Windows 2000 Server 
SQL Server 2000(访问的数据库是SQLTest) 

一.    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 另外, 蓝色字体标明的几个名称要特别注意!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值