系统:WindowsXP
数据库:Oracle10g
安装位置及文件夹均默认症状:启动监听的时候自动停止
      Oracle服务正常启动,在命令行(cmd)用命令(sqlplus 用户/密码)能进入数据库且能查询数据使用过的手段:
      重新配置监听、使用命令启动都没有用
      重新安装实例、卸载Oracle重新安装还是一样的问题
      删监听、清除注册表里有关监听的项重启机器再建监听还是一样问题日志文件:
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-2月 -2008 15:20:36Copyright (c) 1991, 2005, Oracle.  All rights reserved.系统参数文件为E:\Oracle10g\product\10.2.0\db_1\network\admin\listener.ora
写入E:\Oracle10g\product\10.2.0\db_1\network\log\listener5.log的日志信息
写入E:\Oracle10g\product\10.2.0\db_1\network\trace\listener5.trc的跟踪信息
跟踪级别当前为0以 pid=3988 开始
监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=huanghz)(PORT=1521)))
TNS-12560: TNS: 协议适配器错误
 TNS-00530: 协议适配器错误
  32-bit Windows Error: 38: Filename too long就是不清楚这里所说的filename指的是哪个文件,希望大家能帮帮忙,小弟在此谢过了

解决方案 »

  1.   

    把 listener.ora 贴出来看看 HOST换成IP吧  另外你是不是自动获取IP的????
      

  2.   

    试试能否手动启动?1,命令行进入:cmd2,c:\>sqlplus   /nolog   
      sql>conn /as sysdba   
      SQL>startup   
      

  3.   

    你确定你的机器上有无安装FIREWALL之类的东西,有很多防病毒软件都可能导致错误, 如果有,暂时关闭这些防火墙,再试将LISTENER重起吧. 另, 你在服务器端使用 sqlplus user/pass 可以成功是合理的, 这样根本不经过LISTENER.
      

  4.   

    回1楼IP是自动获取的
    listener.ora 内容如下:SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = E:\Oracle10g\product\10.2.0\db_1)
          (PROGRAM = extproc)
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = huanghz)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
        )
      )//host改成localhost也是一样的问题
      

  5.   

    回3楼杀毒软件为 NOD32
    另外安装了360
    将这两个软件退出并关闭Windows自带防火墙后,问题依旧
      

  6.   

    建议你 不要用自动获取IP 难道你安装ORACLE的时候没出警告么?你一定是忽略过去的....
    换成固定IP  把HOST 那填写固定IP试试
      

  7.   

    我之前在另一台机器上装的Oracle没出过这个问题,和我现在用的机器用的是一张系统盘安装的,也是DHCP,自动获取IP
      

  8.   

    尝试了将设成固定IP,重启服务以后,监听还是起不来,Filename too long郁闷啊 
      

  9.   

    有的时候数据库的SID过长也容易出这个问题
    或者在检查一下 杀毒软件 防火墙之类的软件 先关一下试试
      

  10.   

    我数据库的SID是默认的ORCL
    把杀毒软件、Windows自带的防火墙也关了,host改成ip地址/127.0.0.1都尝试了一下,重启了下Oracle服务
    还是不能启动监听,在Window的管理工具->服务里启动监听的时候报过两个不同的错,
    1、监听启动后自动停止。一些服务自动停止因为它们没什么可做,比如性能服务。
    2、无法启动
    在日志文件里的描述是一致的,都是Filename too long关于实例名,我在之前曾用HZ和huang试验过,也是报的这个错,不能启动监听
      

  11.   

    Check if Microsoft Winsock Proxy(WSP) Client is enabled on the
        Windows NT Server, if that is the case then go to windows Control Panel,
        click WSP icon and select the disable Proxy Client option.
      

  12.   

    回14楼不好意思,英语水平不高Microsoft   Winsock   Proxy(WSP)这个在哪设置啊,是指Intenet里的代理吗?我没有设置过代理的
      

  13.   

    把你配置的有关监听器的TRACE和LOG都关掉先,你在sqlnet.ora文件中看看有没有问题.IP自动获取的? 那你有安装WINDOWS 的LOOPBACK适配器吗?
      

  14.   

    回17楼把网卡卸载后重装驱动,问题依旧
    回18楼slqnet.ora 里的内容为
    SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)现已将IP设为固定,LOOPBACK适配器是什么啊,是一个额外的软件吗?
      

  15.   

    你的tnsnames.ora是什么内容?贴出来看看。可能是这里面有错。 
      

  16.   

    回20楼tnsnames.ora内容如下:
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = huanghz)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
      

  17.   

    回21楼刚试了一下,关闭了杀毒软件(NOD32)、360安全卫士、Windows自带防火墙(没装)结果:涛声依旧。。郁闷,折腾一周了,实在不行,难道要重装系统。。
      

  18.   

    今天把Oracle卸载了,清理了一下注册表,重新拷了一个安装程序,解决了用DHCP时候网络检测不通过的问题,重新安装Oracle多么希望能启动监听啊,又失望了。
      

  19.   

    你装了WINDOWS LOOPBACK网卡吗? 希望不是个低级错误.
      

  20.   

    如果你用的是DHCP的话,LOOPBACK ADAPTER是必须安装的. 检查方法:c:\ipconfig /all看看有没有
      Connection-specific DNS Suffix  . :
      Description . . . . . . . . . . . : Microsoft Loopback Adapter
    ....没有的话,先装上再说吧
      

  21.   

    回楼上已安装 Microsoft   Loopback   Adapter 昨天重装Oracle的时候,所有检测项均已通过
      

  22.   

    可以在’开始‘,’程序‘,“管理工具”,”服务“,OracleOraHome92TNSListener 设置成手动再启动
      

  23.   

    你的磁盘的格式是什么啊,ORACLE要求磁盘格式必须是NSFT格式.将你的TNSNAMES.ORA文件中小写的orcl改成大写.并最好能确保这个名称是你的全局数据库名称.还要保证你的1521这个端口没有被其它应用程序所占用.也没有被锁住.
      

  24.   

    回29楼重装Oracle之后已经自动变成手动启动了,不清楚怎么回事回31楼listener.log内容如下:
    TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 22-2月 -2008 16:58:17Copyright (c) 1991, 2005, Oracle.  All rights reserved.系统参数文件为F:\oracle\product\10.2.0\db_1\network\admin\listener.ora
    写入F:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
    写入F:\oracle\product\10.2.0\db_1\network\trace\listener.trc的跟踪信息
    跟踪级别当前为0以 pid=1244 开始
    监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
    监听该对象时出错: (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PARTIAL=yes)(QUEUESIZE=1))
    不再监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
    TNS-12560: TNS: 协议适配器错误
     TNS-00530: 协议适配器错误
      32-bit Windows Error: 38: Filename too long
      

  25.   

    非常感谢bai_jiong,监听已经启动,
    办法:tnsnames.ora中的orcl改成ORCL谢谢
    managergh、vc555、pytpyt1000对我耐心的解答另外也非常感谢大家的帮助让我学到不少东西,谢谢
      

  26.   

    listener.ora里面的ip地址要和你 hosts表中的本地ip地址一致,否则listener 是起不来的
      

  27.   

    是这样,你看你listener那里的主机名是什么,如果是IP,是不是和你当前的IP一致,如果是计算机名,是不是和你当前的计算机名一致,这个要求一致的
      

  28.   

    操作方法是:打开net manager,点到监听程序下面的listener那里,然后点地址一,看主机名是不是和你计算机名一致