我在本机安装了orcal 和sql server2000 在本地调试可能过,但在与远端的sql server2000 就不行,见下文:网关透明已经装好 1.配置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=220.168.211.122;DATABASE=vote_2007"HS_FDS_CONNECT_INFO =220.168.211.122.vote_2007
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER2.配置listener.ora :
 
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = F:\oracle\ora90)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = yjf)
      (ORACLE_HOME = F:\oracle\ora90)
      (SID_NAME = yjf)
    )
    
    (SID_DESC =
    (PROGRAM = tg4msql)    
    (ORACLE_HOME =F:\oracle\ora90)
    (SID_NAME = tg4msql)
   )
  
)3. 配置tnsnames.ora :
   tg4msql=
  (DESCRIPTION=
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL=TCP)(HOST=zq-7c230e603639)(PORT=1521))
    )
    (CONNECT_DATA=(SID=tg4msql)
     )
    (HS=ok)
  )4。设置global_names=false5.停止listen 然且start listen 
6.测试 tnsping tg4msql 成功了
7.进入sqlplus 连接库 并创建 create database link mstest connnect to toupiao identified by ccddee using 'tg4msql'
8. select * from cdtph2008@mstest 
这里就报错了ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:
[Transparent gateway for MSSQL]DRV_InitTdp: Could not open MS-SQL Connection
ORA-02063: 紧接着2 lines(源于MSTEST)请大家帮看看。

解决方案 »

  1.   

    前一阵子搞这个搞了几天,不过现在忘了。
    你试试把tnsnames里面的host改一下的看看。
      

  2.   

    上个月也正常安装了透明网关,自己简单总结了一下..
    请参考:
    http://blog.csdn.net/rockywu/archive/2009/06/04/4242883.aspx
      

  3.   

    一、环境如下:
    ORACLE 10g 安装在:192.168.0.250  的window2003 server
    (版本:Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production)
    SqlServer 2000安装在:192.168.0.233   的window2003 server
    二、下载透明网关(GATEWAY)
    10g下,透明网管是一个单独组件,可以到oracle官方网站下载
    http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201winsoft.html
    这个安装包有300m。
    可惜只找到秀明网关版本:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 32bit Production
    三、安装透明网关
    将透明网关安装在sqlserver服务器上,点击setup.exe,启动安装界面,安装oracle transparent gateway for microsoft sql server;下一步,输入sqlserver地址和sqlserver 数据库名,这里可以输入正确的,也可以随便输入,或者留空,现安装完成后再配置。安装完后,会弹出配置监听界面,点击取消即可。整个过程安装在点类似DB安装或client安装。四、配置透明网关参数文件找到透明网关路径:D:\oracle\product\10.2.0\tg_1\tg4msql\admin
    安装透明网关时会生成一个默认参数文件:inittg4msql.ora,它的sid是tg4mssql,可以使用这个文件,也可以新建一个文件。现在COPY一份命名为initUFDATA_002_2009.ora,名字最好与SQL SERVER数据库一致,且要注意格式:init<sid>.ora,可以理解为oracle的参数文件,现在编辑参数文件:
    # 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=192.168.0.233;DATABASE=UFDATA_002_2009"
    HS_FDS_TRACE_LEVEL=OFF
    HS_FDS_RECOVERY_ACCOUNT=RECOVER
    HS_FDS_RECOVERY_PWD=RECOVER
    HS_FDS_CONNECT_INFO设置有多种格式,如:
    HS_FDS_CONNECT_INFO=server_name.db_name,但这种写法server_name不能为IP,且端口必须为默认的1433,如:
    在安装透明网关如果设置服务器和数据库即为上面格式。五、透明网关服务器上配置监听找到listener文件所在路径D:\oracle\product\10.2.0\tg_1\NETWORK\ADMIN\listener.ora,这些配置与DB配置类似# listener.ora Network Configuration File: d:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
    # Generated by Oracle configuration tools.SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
          (PROGRAM = extproc)
        )
          (SID_DESC= 
             (SID_NAME=UFDATA_002_2009) 
             (ORACLE_HOME=D:\oracle\product\10.2.0\tg_1)
             (PROGRAM=tg4msql) 
        ) 
      ) SID_Name与参数文件的名称initUFDATA_002_2009.ora相对应,且PROGRAMN要为tg4msql
    六、启动监听
    启动监听和DB配置一样,
    在CMD命令符,输入lsnrctl start
    C:\Documents and Settings\rocky>lsnrctl startLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 04-6月 -2009 21:5
    7:56Copyright (c) 1991, 2005, Oracle.  All rights reserved.启动tnslsnr: 请稍候...TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
    系统参数文件为D:\oracle\product\10.2.0\tg_1\network\admin\listener.ora
    写入D:\oracle\product\10.2.0\tg_1\network\log\listener.log的日志信息
    监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=fcserver.winbo4x4.com)(PORT=1521
    )))正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    LISTENER 的 STATUS
    ------------------------
    别名                      LISTENER
    版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
    ction
    启动日期                  04-6月 -2009 21:57:58
    正常运行时间              0 天 0 小时 0 分 1 秒
    跟踪级别                  off
    安全性                    ON: Local OS Authentication
    SNMP                      OFF
    监听程序参数文件          D:\oracle\product\10.2.0\tg_1\network\admin\listener.o
    ra
    监听程序日志文件          D:\oracle\product\10.2.0\tg_1\network\log\listener.log监听端点概要...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=fcserver.winbo4x4.com)(PORT=1521)))
    服务摘要..
    服务 "PLSExtProc" 包含 1 个例程。
      例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    服务 "UFDATA_002_2009" 包含 1 个例程。
      例程 "UFDATA_002_2009", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    命令执行成功
    可以看到UFDATA_002_2009注册了静态监听服务
    在服务生成OracleOraTg10g_home1TNSListener的服务(如果透明网关在DB数据库机器上,则有N多个Listener服务,可以停止其它Listener,直接在透明Listener即可)查看Listener状态:
    C:\Documents and Settings\rocky>lsnrctl statusLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 04-6月 -2009 21:5
    8:06Copyright (c) 1991, 2005, Oracle.  All rights reserved.正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    LISTENER 的 STATUS
    ------------------------
    别名                      LISTENER
    版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
    ction
    启动日期                  04-6月 -2009 21:57:58
    正常运行时间              0 天 0 小时 0 分 9 秒
    跟踪级别                  off
    安全性                    ON: Local OS Authentication
    SNMP                      OFF
    监听程序参数文件          D:\oracle\product\10.2.0\tg_1\network\admin\listener.o
    ra
    监听程序日志文件          D:\oracle\product\10.2.0\tg_1\network\log\listener.log监听端点概要...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=fcserver.winbo4x4.com)(PORT=1521)))
    服务摘要..
    服务 "PLSExtProc" 包含 1 个例程。
      例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    服务 "UFDATA_002_2009" 包含 1 个例程。
      例程 "UFDATA_002_2009", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    命令执行成功
    七、配置tnsname.ora
    D:\oracle\product\10.2.0\tg_1\NETWORK\ADMIN目录下配置tnsnames.ora文件,如下:UFDATA_002_2009=  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.233)(PORT = 1521))    )    (CONNECT_DATA =      (SID=UFDATA_002_2009)    )    (HS = OK)  )注意HS=OK,这主要由于是用于Oracle server调用异构服务器进行处理必须的。现在使用tnsping测试:
    C:\Documents and Settings\rocky>tnsping ufdata_002_2009 TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 05-6月 -2009 08:16:30 Copyright (c) 1997, 2005, Oracle.  All rights reserved. 已使用的参数文件:D:\oracle\product\10.2.0\tg_1\network\admin\sqlnet.ora  已使用 TNSNAMES 适配器来解析别名Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.233)(PORT = 1521))) (CONNECT_DATA = (SID=UFDATA_002_2009)) (HS = OK))OK (20 毫秒)
    一切正常,由透明网关必须通过其它ORACLE库进行访问其它库(dblink),该步骤可以省略,这里使用tnsping测试。
    八、创建访问SQL SERVER访问账号
    由于使用DBLINK不能为空密码,为了使用数据安全性,在192.168.0.233服务器创建一个登录账号为oracletosql,密码为oracletosql,并设置权限访问UFDATA_002_2009数据库权限。
    九、Oralce 创建DBLINKcreate public database link UFDATA2009 connect to "oracletosql" identified by "oracletosql" using  '(DESCRIPTION =               (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.233)(PORT=1521))              (CONNECT_DATA=(SID=UFDATA_002_2009)             ) (HS = ok))';
    注意DESCRIPTION的HS与tnsname.ora中的HS=OK。
    10、测试连接并使用SQL
    SQL>Select * From DUAL@UFDATA2009;SQL>  DUMMY------X连接正常
    由于ORACLE 数据库采用PL-SQL而SQL SERVER采用T-SQL且异构数据问题,即使用采用标准SQL仍可能无法正常访问。为了使用ORACLE 方便使用SQL SERVER的数据
    现进行以下构建:
    建立表视图,屏蔽@UFDATA2009 DBLINK连接,重要的是在PLSQL Developer可以使用智能感知功能。
    Create Or Replace View DJ_UFDATA_HR_SHOWAs Select *      from  hr_v_HR31_show@UFDATA2009 With Read Only; 构建标准ORACLE访问视图DJ_UFDATA_HR,在构建DJ_UFDATA_HR视图大部分使用智能感知形式得出字段,否则即使用写的字段名和智能感知一样也可能出错(无效字段或索引等等错误信息),且必须使用AS 命别名为ORACLE方便访问。 Create Or  Replace View DJ_UFDATA_HRAs select "HR"."cPsn_Num" As cPsn_Num,      "HR"."cPsn_Name" As cPsn_Name,      "HR"."cDept_Name" As cDept_Name,      "HR"."cDept_num" As cDept_num,      "HR"."cPsnProperty" As cPsnPropertyfrom  DJ_UFDATA_HR_SHOW "HR"With Read Only;总结:
    在进行配置透明网关访问SQL SERVER时,整个过程的SID(DBLINK命名随意)最好命名与SQL SERVER数据库一致,如UFDATA_002_2009,否则很容易出现以下错误信息:
    ORA-28545: error diagnosed by Net8 when connecting to an agentUnable to retrieve text of NETWORK/NCR message 65535ORA-02063: preceding 2 lines from UFDATA2009
    另外在DBLINK访问用户账号最好使用小写且使用””双引号,如” oracletosql” ,这样可以SQL SERVER2000和SQL SERVER2005访问,另外就是ORACLE 方便访问SQL SERVER的SQL程序。
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rockywu/archive/2009/06/04/4242883.aspx
      

  4.   


    检查一下,远端的服务器是否已经开放了端口,是否已经打了SQL Server的patch。