连接外网的ORACLE出现问题..
远程ORACLE数据库相关配置
==========================================================
tnsnames.ora
----------------------------------------------------------
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.SYNTEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.4)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = SYNTEST)
    )
  )listener.ora
----------------------------------------------------------
# LISTENER.ORA Network Configuration File: D:\oracle\ora92\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.4)(PORT = 1521))
  )SID_LIST_LISTENER =    
    (SID_DESC =
      (GLOBAL_DBNAME = SYNTEST)
      (ORACLE_HOME = D:\oracle\ora92)
      (SID_NAME = SYNTEST)
    )
  )
本地ORACLE客户端相关配置
==========================================================
tnsnames.ora
----------------------------------------------------------
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.SYNTEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      # 标记(1) 阅读时请注意这里[问题描述]中将有此处说明
      (ADDRESS = (PROTOCOL = TCP)(HOST = 218.**.***.**)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = SYNTEST)  
    )
  )说明
==========================================================
1.远程主机无防火墙
2.本地执行 tnsping 218.**.***.** 结果
----------------------------------------------------------
TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 18-7月 -2
007 10:38:25Copyright (c) 1997 Oracle Corporation.  All rights reserved.已使用的参数文件:
D:\oracle\ora92\network\admin\sqlnet.ora已使用 HOSTNAME 适配器来解析别名
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SID=*)(SERVICE_NAME=218.**.***.**))(ADDRESS=(PROTOCOL=TCP)(HOST=218.**.***.**)(PORT=1521)))
OK(10毫秒)
----------------------------------------------------------问题描述
==========================================================
当连接远程ORACLE服务时出错.我的操作为
----------------------------------------------------------
1.打开 ORACLE "Net Configuration Assistant"工具
2.选择"本地NET服务名配置"
3.选择"添加"
4.选择"ORACLE 8i或更高版本数据库或服务"
5.在[服务名:]输入 "SYNTEST"
6.选择"TCP"
7.在[主机名:]输入 "218.**.***.**",选择"使用标准端口号1521"
8.选择"是,进行测试"
  出现错误提示: "ORA-12533:TNS:非法的ADDRESS参数"
  网上查阅资料,将本地tnsnames.ora文件中[标记(1)]处改为
  (ADDRESS = (PROTOCOL = TCP)(IP = 218.**.***.**)(PORT = 1521))
  再次测试
  出现错误提示: "ORA-12541:TNS:没有监听器"==========================================================弄了半天了,也查了些相关资料,但问题还是没能解决.
希望大家多多帮忙...先谢了...

解决方案 »

  1.   

    服务器上没有监听218.***那个IP?在服务器上cmd中执行netstat -an,看看218.***的1521端口是否监听了。还有客户端的sqlnet.ora文件的内容。
      

  2.   

    非常感谢 bobfang(匆匆过客) 的回复.c:\> netstat -an
    ----------------------------------------------------------
    TCP    192.168.1.4:1521       192.168.1.4:3542       TIME_WAIT
    没有相关 218.*** 的信息我想添加 218.*** 的监听,但未成功.错误信息:
    ----------------------------------------------------------
    TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production
    系统参数文件为D:\oracle\ora92\network\admin\listener.ora
    写入D:\oracle\ora92\network\log\listener.log的日志信息
    监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=JCCDMS-SERVER)(PORT=1521)))
    监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=218.**.***.***)(PORT=
    1521)))
    TNS-12545: 因目标主机或对象不存在,连接失败
     TNS-12560: TNS: 协议适配器错误
      TNS-00515: 因目标主机或对象不存在,连接失败
       32-bit Windows Error: 49: Unknown error
    ----------------------------------------------------------
    远程ORACLE数据库相关配置
    ==========================================================
    sqlnet.ora
    ----------------------------------------------------------
    # SQLNET.ORA Network Configuration File: D:\oracle\ora92\NETWORK\ADMIN\sqlnet.ora
    # Generated by Oracle configuration tools.SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (HOSTNAME, TNSNAMES)本地ORACLE客户端相关配置
    ==========================================================
    sqlnet.ora
    ----------------------------------------------------------
    # SQLNET.ORA Network Configuration File: D:\oracle\ora92\NETWORK\ADMIN\sqlnet.ora
    # Generated by Oracle configuration tools.NAMES.DIRECTORY_PATH= (HOSTNAME, TNSNAMES, ONAMES)
      

  3.   

    客户端的sqlnet.ora可以改为
    NAMES.DIRECTORY_PATH= (TNSNAMES)服务器的listener.ora中用主机名,不用IP。netstat中需要看的行是有LISTENING的行。
      

  4.   

    问题前段时间解决了.. 忘了结贴.连接不上的原因是因为远程数据库的类型为"专用服务器",改成"共享服务器"就好了.多谢 bobfang(匆匆过客) .