星期三, 三月 02, 2005
工作笔记- oracle9.2.0.4 通过透明网关访问MS SQL Server
上午接到一个项目需求,要在Oracle 访问 Sql Server 数据库,想起来透明网关似乎是做这个事情的……
我的OS是WIN2000 ORACLE
SQLSERVER2000 HOSTNAME : 172.16.48.45
1: 用自定义安装 Oracle , 选择 TRANSPARENT GATEWAY 选件(我安装的是FOR MSSQL),注意先安装 920 下的 TRANSPARENT GATEWAY 选件,然后重新打补丁到 9204。在安装的时候可以选择将要连接的 SQLSERVER2000 数据库
安装完成了以后有这样一个目录 ORA_HOME 下的 tg4msql
2: 配置 LISTENER.ORA
在 LISTENER.ORA增加
(SID_DESC =
(PROGRAM=tg4msql)
(ORACLE_HOME = D:oracleora92)
(SID_NAME = tg4msql) # SID 可以自己命名
)
3: 在 tg4msql 目录下的 admin
默认有 inittg4msql.ora 文件 ,如果上面的 SID 不是 tg4msql ,那么需要创建一个
init
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=172.16.48.45;DATABASE=jxt"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
4: 重启 LISTENER
5: 配置 tnsnames.ora
在 tnsnames.ora 中增加
tg4msql =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.48.239)(PORT = 1521))
)
(CONNECT_DATA =
(SID = tg4msql )
)
(HS=OK)
)
6: 建立 DATABASE LINK
CREATE PUBLIC DATABASE LINK JXT_MSQL
CONNECT TO SA IDENTIFIED BY PASSWORD
USING ' tg4msql '
7: 完成,测试
select * from t_test@JXT_MSQL;
注意:
在测试的时候 ,遇到了ORA-28511 lost RPC connection to heterogeneous remote agent using SID=%s
在 metalink 找到问题所在 ,The TG4MSQL has been installed into an existing RDBMS directory that has had the
Fix
To resolve the problem re-apply the 9204 patchset to the RDBMS directory to bring the gateway executable up to v



