这两天试验了很多情况,也看了很多帖子,发现很少说到安装的情况.
我先说一下我的环境: win 2003,oracle 10.2.0.1.0 ,sql server 2005;
                     目的:本机实现互连,做到将sqlserver库里面的数据插入到oracle数据库GLHHM中,来辅助完成数据库的迁移1.安装
   因为oracle 10.2.0.1.0本身没有自带gateways,所以到官方网上下了Oracle Gateways 10.2;
   gateways能和oracle db安装在同一个路径下嘛?  
   
   我现在是分开安装的的,db的路径:D:\oracle\product\10.2.0\db_1\ 
                                  gateways的安装路径G:\oracle\product\10.2.0\tg_1\
   
  安装的过程,配置了监听程序,因为选用默认端口时,提示冲突,所以用了1522端口,监听名为LISTENER1
  Gateways的监听端口能和oracle db的端口一样嘛?都是15212.配置Gateways端的相关文件.2.1 G:\oracle\product\10.2.0\tg_1\tg4msql\admin
  一个是自带的inittg4msql.ora,配置如下
HS_FDS_CONNECT_INFO=HUANGHM.Gtel1
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
  新建了一个initmsql1.ora,配置如下
HS_FDS_CONNECT_INFO=HUANGHM.GTel2
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER2.2 G:\oracle\product\10.2.0\tg_1\NETWORK\ADMIN
   修改listener.ora,红色部分为添加部分
LISTENER1 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = huanghm)(PORT = 1522))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )SID_LIST_LISTENER1 =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = G:\oracle\product\10.2.0\tg_1)
      (PROGRAM = extproc)
    )(SID_DESC =
   (GLOBAL_DBNAME = tg4sql) 
   (PROGRAM = tg4msql)
   (SID_NAME = msql1) 
   (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
)(SID_DESC =
   (GLOBAL_DBNAME = tg4sql) 
   (PROGRAM = tg4msql)
   (SID_NAME = tg4msql) 
   (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
)
  )3.重启gateways端的tnslistener服务4.配置Oracle db服务端的tnsnames.ora添加了如下内容:
msql1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = huanghm)(PORT = 1522))
)
(CONNECT_DATA =
(SID = msql1)
)
(HS = OK)
) tg4msql =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = huanghm)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SID = tg4msql)
    )
    (HS = OK)
  )----为了万一,我在gateways端的tnsnames.ora里面,也加上这些信息5.设置global_names= false
   找到D:\oracle\product\10.2.0\db_1\srvm\admin下面的init.ora文档,修改该属性.6.在命令行下
  sqlplus/nolog;
  conn sys/***@GLHHM as sysdba;
  出现:ORA-12154:TNS:无法解析指定的连接标识符
  去tnsping GLHHM,已经不通了.发现错误信息里面提示"已使用的参数文件"变成了G:\oracle\product\10.2.0\tg_1\NETWORK\ADMIN\sqlnet.ora
  也就是说变成了gateways下面的参数文件路径,问一下这种情况正常嘛?  
  后来,我就把原先db安装路径下的tnsnames.ora里面的tns拷到gateways端的tnsnames.ora,才可以能连上oracle db.  连上后,创建数据库连接
  create public database link dblink1 connect to sa identified by sa using 'msql1';
  create public database link dblink2 connect to sa identified by sa using 'tg4msql';
  提示连接成功!
  
7......
  tnping msql1;
  出现:TNS-3505 无法解析名称
  
  这一切配置就到这终止了.......
  能帮忙看看哪个环节出了问题嘛?附:
  为了写这个帖子,本来可以连接oracle数据库的,我把gateways端的tnsnames.ora文件里面的GLHHM的tns给去掉了,后来加上就没法重启服务
OracleOraTg10g_home1TNSListenerLISTENER1,可以是启动就停止,列表上显示是启动的,但属性上却停止的.导致又tnsping不同GLHHM了
这时候,tnsping msql1,却提示TNS-12533 TNS:非法的ADDRESS 参数...
  
这会真的不知道该怎么一步步着手处理了....