Oracle数据库与Sel Server数据库的连接
我实验Oracle数据库连接Sql Server数据库。
下面是我的配置过程,请各位前辈指点迷津。在下在此谢过了!Oracle数据库和透明网关程序安装在同一台机子上。ip:192.168.0.45Sql Server数据库 位于另一台机子上。ip: 192.168.0.254 
数据库名CTCMC ,帐号和密码分别为:sa 和 myhOrable 版本 Oracle 10g 10.2.0
安装目录:E:\oracle\product\10.2.0\db_1
官方网站下载并安装了透明网关程序
安装目录:D:\oracle\product\10.2.0\tg_2\用于Oracle数据库的监听服务:OracleOraDb10g_home1TNSListener 监听端口为:1521
安装透明网关时创建了另一个监听服务:OracleOraTg10g_home2TNSListener 监听端口:1522
两个监听服务都正常启动,OracleServiceORCL服务也正常启动。
----------------------
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=192.168.0.254;DATABASE=CTCMC"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
-------------------------
配置了透明网关安转目录中的listener.ora文件和tnsname.ora
listener.ora文件配置内容为:
------------------------
# listener.ora Network Configuration File: D:\oracle\product\10.2.0\tg_2\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\tg_2)
      (PROGRAM = extproc)
    )
      (SID_DESC=
      (SID_NAME = tg4msql)
      (ORACLE_HOME = D:\oracle\product\10.2.0\tg_2\)
      (PROGRAM = tg4msql)
    )
  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.45)(PORT = 1522))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )-----------------------------------------
tnsname.ora文件配置内容为:
-------------------------------------
# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\tg_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )tg4msql =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.45)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SID = tg4msql)
    )
    (HS=OK)
  )配置完毕后重新启动了透明网关的监听服务。
运行tnsping命令,内容如下:
-------------------------------
C:\Documents and Settings\myh>TNSPING tg4msqlTNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 27-11月-
2007 17:45:29Copyright (c) 1997, 2005, Oracle.  All rights reserved.已使用的参数文件:
D:\oracle\product\10.2.0\tg_2\network\admin\sqlnet.ora已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = fhwl-myh)(PORT = 1522))) (CONNECT_DATA = (SID = tg4msql)) (HS=OK))
OK (10 毫秒)
--------------------------------使用system用户登录Oracle数据库,并创建数据库连接:SQL> create database link tosql2k connect to sa identified by myh using 'tg4msql';数据库链接已创建。测试访问Sql Server数据库中的T_sample 表:SQL> select * from T_Sample@tosql2k;
select * from T_Sample@tosql2k
                       *
第 1 行出现错误:
ORA-12154: TNS: 无法解析指定的连接标识符请各位前辈帮忙看看我的配置过程哪出现了问题!!!在下不甚感激!

解决方案 »

  1.   

    问题已经解决: 我配置的内容是透明网关目录下的listener.ora文件和tnsname.ora文件。把配置的内容分别移到了Oracle server 安装目录下的listener.ora文件和tnsname.ora文件两个文件中。然后重新启动Oracle server 的监听服务。
    再测试:
    SQL> select count(*) from T_sample@tosql2k;  COUNT(*)
    ----------
           545I'iS OK!!!!
    自己顶一下!!!