请知道的朋友不吝赐教,小弟在此谢过~
现象描述:
Server端,CentOS 4.8
已经建立Listener并确认启动(当然Oracle实例也是启动的),启动后的结果如下:
----------------------------------------------------
Listener Parameter File   /u01/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/oracle/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.110)(PORT=1521)))
Services Summary...
Service "Cherish" has 1 instance(s).
  Instance "Cherish", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
----------------------------------------------------
Client端,Windows xp
在XP里已经配置了net configuration assistant,但是Oracle Net Manager中的该服务名无法连接测试。
1.这里确认用户名和密码正确。
2.XP可以成功Telnet CentOS 1521端口,应该可以排除网络问题。
一些配置文件:
Client端:
sqlnet.ora
----------------------------------------------------
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES)
----------------------------------------------------
tnsnames.ora
----------------------------------------------------
CHERISH =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = Cherish)
    )
  )
----------------------------------------------------
Server端:
tnsnames.ora
----------------------------------------------------
EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )
----------------------------------------------------
listener.ora
----------------------------------------------------
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/oracle/oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_NAME = Cherish)
      (ORACLE_HOME = /u01/oracle/oracle/product/10.2.0/db_1)
      (SID_NAME = Cherish)
    )
  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ListenerHost)(PORT = 1521))
    )
  )
测试错误信息
----------------------------------------------------
正在尝试使用以下用户 ID 连接:sys
测试没有成功。
ORA-12537: TNS: 连接关闭在输入的字段中可能有错误, 
或者服务器连接未就绪。 
----------------------------------------------------由于知识有限,请各位大侠赐教,感激不尽!!

解决方案 »

  1.   

    1.ping  ListenerHost 看是否ping通
    2.查看监听是否启动
    3.用conn 用户名/密码@ip地址:1521/Cherish看是否能够连接上
      

  2.   

    监听是你手动修改tnsnames.ora 这个文件的吗? 建议用net manager 工具来配置监听。 
      

  3.   


    1.可以ping通(现象描述中说了,可以telnet ListenerHost 1521)
    2.确认监听已经启动(这个可以确认)
    3.Windows xp无法Conn
    ----------------------------------
    C:\Documents and Settings\Administrator>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期四 9月 23 20:08:29 2010Copyright (c) 1982, 2005, Oracle.  All rights reserved.SQL> conn sys/sys @192.168.1.110:1521/Cherish
    ERROR:
    ORA-12154: TNS: 无法解析指定的连接标识符
    ----------------------------------谢谢~
      

  4.   


    不是我手动修改文件tnsnames.ora,是使用net manager工具来配置监听的。谢谢~~
      

  5.   

    除了下面的步骤,没有做任何的更改,Windows XP就可以连接测试成功了。1.退出所有的Linux connection
    2.重新开启一个Connection,Loin Linux using Oracle
    3.lsnrctl->stop->start->reload LISTENER
    4.连接测试,成功。
    -----------------------------------------
    正在尝试使用以下用户 ID 连接:scott
    连接测试成功。
    -----------------------------------------
    谢谢 Phoenix_99,谢谢tianlesoftware
      

  6.   


    对的,按照上面步骤后,Client Server可以成功连接,也不知道是不是Oracle的Bug,不是很稳定。