监听服务与数据库服务正常启动,但如果用plsql developer连接数据库则长时间没有任何反应,在sqlplus里用数据库实例连接:sqlplus sys@orcl也是长时间没有反应。奇怪的是昨天修改了host文件后能用,但今天就不能用了。这个问题困扰很久了,还望各位高手指点。

解决方案 »

  1.   

    listener配置文件如下:
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = ORCL)
          (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
          (SID_NAME = ORACLE)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = yanchao)(PORT = 1521))
        )
      )
      

  2.   

    tnsnames文件:
    ORCL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 121.250.247.77)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
        )
      )EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
      

  3.   

    查了一下当前连接:
    Proto  Local Address          Foreign Address        State
      TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
      TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
      TCP    0.0.0.0:1035           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:1158           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:5520           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:5560           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:5580           0.0.0.0:0              LISTENING
      TCP    121.250.247.77:139     0.0.0.0:0              LISTENING
      TCP    121.250.247.77:1037    121.250.247.77:1521    ESTABLISHED
      TCP    121.250.247.77:1041    121.250.247.77:1521    ESTABLISHED
      TCP    121.250.247.77:1042    121.250.247.77:1158    ESTABLISHED
      TCP    121.250.247.77:1043    121.250.247.77:1521    ESTABLISHED
      TCP    121.250.247.77:1045    121.250.247.77:1521    ESTABLISHED
      TCP    121.250.247.77:1158    121.250.247.77:1042    ESTABLISHED
      TCP    121.250.247.77:1521    0.0.0.0:0              LISTENING
      TCP    121.250.247.77:1521    121.250.247.77:1037    ESTABLISHED
      TCP    121.250.247.77:1521    121.250.247.77:1041    ESTABLISHED
      TCP    121.250.247.77:1521    121.250.247.77:1043    ESTABLISHED
      TCP    121.250.247.77:1521    121.250.247.77:1045    ESTABLISHED
      TCP    127.0.0.1:1025         127.0.0.1:30606        FIN_WAIT_2
      TCP    127.0.0.1:1028         0.0.0.0:0              LISTENING
      TCP    127.0.0.1:1034         127.0.0.1:30606        ESTABLISHED
      TCP    127.0.0.1:1036         127.0.0.1:30606        FIN_WAIT_2
      TCP    127.0.0.1:1044         127.0.0.1:30606        FIN_WAIT_2
      TCP    127.0.0.1:1046         127.0.0.1:30606        ESTABLISHED
      TCP    127.0.0.1:30606        0.0.0.0:0              LISTENING
      TCP    127.0.0.1:30606        127.0.0.1:1025         CLOSE_WAIT
      TCP    127.0.0.1:30606        127.0.0.1:1034         ESTABLISHED
      TCP    127.0.0.1:30606        127.0.0.1:1036         CLOSE_WAIT
      TCP    127.0.0.1:30606        127.0.0.1:1044         CLOSE_WAIT
      TCP    127.0.0.1:30606        127.0.0.1:1046         ESTABLISHED
      

  4.   

    都是本机,对吧,那全用主机名,或者全用IP地址,然后重启listener.
      

  5.   

    还是不行。windows防火墙也已经关闭,我用的是杀毒软件是NOD32。
      

  6.   

    你查看你的机器名和你配置是否一样。如果不确定就全部改为IP地址。把SERVICE_NAME改为sid,重新试试。
      

  7.   

    侦听器上注册的 SID 是 ORACLE
    ----------------------------------------------------------------------------------
    listener配置文件如下:
    SID_LIST_LISTENER =
      (SID_LIST =
      (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
      )
      (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
      (SID_NAME = ORACLE)
      )
      )
    -----------------------------------------------------------------------------------TNSNAME 中的 SERVICE_NAME 是 ORCL
    -----------------------------------------------------------------------------------
    tnsnames文件:
    ORCL =
      (DESCRIPTION =
      (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 121.250.247.77)(PORT = 1521))
      )
      (CONNECT_DATA =
      (SERVICE_NAME = orcl)
      )
    -----------------------------------------------------------------------------------这两个值应该保持一致,都应该为 ORACLE 数据库 SID 值。
      

  8.   

    这个我改过来了,还是不行。我怀疑是网络连接的问题,之前是动态分配ip,我指定了一个固定的,然后将host文件改为:121.250.247.77  localhost,然后就能连接上了,但重启后就不行了。
      

  9.   

    重建侦听器,将 HOST 设置为主机名。
    HOSTS 文件中不需要保留任何关于本机名的解析。
      

  10.   

    这个,应该跟你的网络连接有关系。动态IP, 那你重启DHCP client服务,然后再tnsping <主机名>试试。