oracle数据库服务器从10.2.0.1.0升级到10.2.0.3.0,服务器本机可以使用sqlplus连接数据库,其他机器(oracle版本是10.2.0.1.0或者9i)无法使用sqlplus或者PL/SQL连接数据库。  服务器的OS是Fedora7, 客户机都是windows xp.服务器的listener.ora如下:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = database)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )服务器的sqlnet.ora如下:
SQLNET.AUTHENTICATION_SERVICES = (NTS)服务器执行lsnrctl status, 输出如下:(我只建立了一个数据库,名字是fsdev)
LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 16-APR-2008 11:50:26Copyright (c) 1991, 2006, Oracle.  All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=database)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.3.0 - Production
Start Date                16-APR-2008 11:43:55
Uptime                    0 days 0 hr. 6 min. 31 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /opt/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=database)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "fsdev" has 1 instance(s).
  Instance "fsdev", status READY, has 1 handler(s) for this service...
Service "fsdevXDB" has 1 instance(s).
  Instance "fsdev", status READY, has 1 handler(s) for this service...
Service "fsdev_XPT" has 1 instance(s).
  Instance "fsdev", status READY, has 1 handler(s) for this service...
The command completed successfully客户端的tnsnames.ora配置如下:
FSDEV_214 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.214)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = fsdev)
    )
  )错误信息是:
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Apr 16 11:56:31 2008Copyright (c) 1982, 2005, Oracle.  All rights reserved.ERROR:
ORA-12560: TNS : protocol adapter error
Enter user-name:
在服务器端执行./tnsping fsdev, 输出如下:
TNS Ping Utility for Linux: Version 10.2.0.3.0 - Production on 16-APR-2008 12:37:22Copyright (c) 1997, 2006, Oracle.  All rights reserved.Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = database)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = fsdev)))
OK (10 msec)但是在客户端执行tnsping FSDEV_214(FSDEV_214配置连接服务器的fsdev应该没有问题), 输出如下:Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.214)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = fsdev)))
TNS-12560: TNS: protocol adapter error
==========================================================
弄了好长时间了,不知道为什么?大家帮帮我,非常感谢

解决方案 »

  1.   

    我也试图将listener.ora配置为如下:
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = fsdev)
          (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
          (SID_NAME = fsdev)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =  
          (ADDRESS = (PROTOCOL = TCP)(HOST = database)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
        )
      )但是这样配置后,不但远程无法访问这个数据库,连本机都无法访问了。
      

  2.   

    listener.ora中 host=
    改成IP地址试试
      

  3.   


    果然是防火墙的问题,我的服务器上的1521端口被block了,谢谢各位