星期三, 三月 02, 2005

工作笔记- oracle9.2.0.4 通过透明网关访问MS SQL Server

上午接到一个项目需求,要在Oracle 访问 Sql Server 数据库,想起来透明网关似乎是做这个事情的……

我的OSWIN2000  ORACLE 9.2.0.4 机器是  172.16.48.239
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.ora  例如: LISTENER里定义SID sql2000 那么文件名为:initsql2000.ora ,内容和 inittg4msql.ora 中一样

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 9.2.0.4 patchset applied. The base gateway 9.2.0.1 is not compatible with the 9.2.0.4 patchset, all components involved must be at the same version.

Fix

To resolve the problem re-apply the 9204 patchset to the RDBMS directory to bring the gateway executable up to v9.2.0.4. .

 

 

 

发表评论

标题

在此添加评论

称呼

邮箱地址(可选)

个人主页(可选)