各位大侠,初次在这里发帖,多关照,这个问题在网上找了好久都没找到原因,希望在这里能解决掉。
199.20.10.37是我本机IP。C:\Users\Administrator>tnsping 127.0.0.1TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 14-10月-
2011 11:32:08Copyright (c) 1997, 2010, Oracle.  All rights reserved.已使用的参数文件:
D:\oracle\product\11.2.0\dbhome_2\network\admin\sqlnet.ora已使用 EZCONNECT 适配器来解析别名
尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST
=127.0.0.1)(PORT=1521)))
OK (0 毫秒)C:\Users\Administrator>tnsping 199.20.10.37TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 14-10月-
2011 11:33:30Copyright (c) 1997, 2010, Oracle.  All rights reserved.已使用的参数文件:
D:\oracle\product\11.2.0\dbhome_2\network\admin\sqlnet.ora已使用 EZCONNECT 适配器来解析别名
尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST
=199.20.10.37)(PORT=1521)))
TNS-12541: TNS: 无监听程序

解决方案 »

  1.   


    配置文件感觉没什么问题
    listener.ora# listener.ora Network Configuration File: D:\oracle\product\11.2.0\dbhome_2\network\admin\listener.ora
    # Generated by Oracle configuration tools.SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_2)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_2\bin\oraclr11.dll")
        )
        (SID_DESC =
          (GLOBAL_DBNAME = ORCL)
          (ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_2)
          (SID_NAME = ORCL)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        )
      )ADR_BASE_LISTENER = D:\oracletnsnames.ora# tnsnames.ora Network Configuration File: D:\oracle\product\11.2.0\dbhome_2\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.ORACLR_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
        (CONNECT_DATA =
          (SID = CLRExtProc)
          (PRESENTATION = RO)
        )
      )ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ORCL)
        )
      )
      

  2.   

    LISTENER =
      (DESCRIPTION_LIST =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      )
      )
      

  3.   


    这里改成localhost或主机名都不行
      

  4.   

    打开 C:\WINDOWS\system32\drivers\etc 目录下的 hosts 文件
    在里面添加记录127.0.0.1    localhost
    199.20.10.37 localhost再把监听的 host 改成 localhost
      

  5.   


    按你的方法修改还是不行啊。这个问题以前也遇到过,只是修改tnsnames.ora和listener.ora就OK了,这次不晓得怎么就不行了
      

  6.   

    原因是你监听文件里,监听的 host 是 127.0.0.1 ,所以你 tnsping 199.*.*.* 会找不到监听
    而配置成 localhost ,会根据 hosts 文件里配置的,去找对应 IP,就能监听到另外问一下,你修改 listener.ora 文件后,你重启监听了吗?
      

  7.   

    199.20.10.37就我本机的IP啊,修改文件都,监听都有重启过,为保险起见,我刚又把OracleOraDb11g_home1ClrAgent,OracleOraDb11g_home1TNSListener,OracleServiceORCL3个服务都重启了
      

  8.   

    你将 hosts 文件中,127.0.0.1 那行记录前面加个 #(注释掉)
    然后 你试着 tnsping localhost 看一下输出结果里的 host IP 是多少
      

  9.   

    C:\Users\Administrator>tnsping localhostTNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 14-
    2011 14:13:02Copyright (c) 1997, 2010, Oracle.  All rights reserved.已使用的参数文件:
    D:\oracle\product\11.2.0\dbhome_2\network\admin\sqlnet.ora已使用 EZCONNECT 适配器来解析别名
    尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)
    =127.0.0.1)(PORT=1521)))
    OK (0 毫秒)修改hosts文件要不要重启什么东西?
      

  10.   

    刚用ipconfig /flushdns把DNS刷新了也没用。还有我系统是WIN7,127.0.0.1 localhost这一行原本前面就又#的
      

  11.   

    Windows 7 下我没试过
    我在 xp 和 linux 试过,都是可行的
      

  12.   

    哦,我本机WIN7系统不行,测试服务器上的WIN2003也是这个问题,真纠结
      

  13.   

    通过各方面资料,终于解决。
    在文件listener.ora中LISTENER里加上(ADDRESS = (PROTOCOL = TCP)(HOST = 199.20.10.37)(PORT = 1521))就OK了
      

  14.   

    楼主在文件listener.ora中LISTENER里加上(ADDRESS = (PROTOCOL = TCP)(HOST = 199.20.10.37)(PORT = 1521))就OK了
    可楼主在回复2楼的listener.ora配置中看到已经有这句配置了,这是怎么回事呢