我的防火墙一直是关闭的,我装的SP2后然后装的ORACLE,之后一些小的更新挺多的,我也不知道是不是因为这些

解决方案 »

  1.   

    可能是注册表改动了,看一下HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHomeTNSListener
    是不是缺少了ImagePath键,没有的话就新建一个,键值是监听器所在目录,例如C:\oracle\ora92\BIN\TNSLSNR
      

  2.   


    恩!我也遇到这样的问题!修改下注册表就好了一、连接主机字符串,说没有监听器
    SVRMGR> connect internal/oracle@orcl;
    ORA-12541: TNS:no listener
    SVRMGR>二、运行监听器,说地址的协议专用组件指定不正确
    C:\>lsnrctl
    LSNRCTL for 32-bit Windows: Version 8.1.6.0.0 - Production on 14-3月 -2003 14:17
    :51
    (c) Copyright 1998, 1999, Oracle Corporation. All rights reserved.
    欢迎来到LSNRCTL,请键入"help"以获得信息。
    LSNRCTL> status
    连接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=robust)(PORT=1521)))
    TNS-01103: 地址的协议专用组件指定不正确
    TNS-12541: TNS:无监听器
    TNS-12560: TNS:协议适配器出现错误
    TNS-00511: 无监听器
    32-bit Windows Error: 61: Unknown error
    LSNRCTL> start
    启动tnslsnr:请稍候...
    Failed to start service, error 3.
    TNS-12536: TNS:可能会阻碍*作
    TNS-12560: TNS:协议适配器出现错误
    TNS-00506: *作可能阻塞
    32-bit Windows Error: 997: Unknown error
    LSNRCTL>三、在控制面板中启动服务,出现以下错误
    服务:在本地计算机 无法启动 OracleOraHome81TNSListener 服务。
    错误3:系统找不到指定的路径
    而且OracleOraHome81TNSListener服务的可执行文件的路径是空的。四、进入注册表中修改ImagePath
    在运行处执行REGEDIT进入注册表到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome81TNSListener
    发现ImagePath关键值没有了,增加他,选择可扩充字符串值,编辑字符串的数值数据为:f:\Oracle\Ora81\BIN\TNSLSNR 
    退出注册表。五、再去启动服务,服务启动正常
    六、启动监听器
    C:\>lsnrctl
    LSNRCTL for 32-bit Windows: Version 8.1.6.0.0 - Production on 14-3月 -2003 14:42
    :10
    (c) Copyright 1998, 1999, Oracle Corporation. All rights reserved.
    欢迎来到LSNRCTL,请键入"help"以获得信息。
    LSNRCTL> start
    TNS-01106: 使用名称LISTENER的监听器已经启动
    LSNRCTL> status
    连接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=robust)(PORT=1521)))
    LISTENER 的 STATUS
    ------------------------
    别名 LISTENER
    版本 TNSLSNR for 32-bit Windows: Version 8.1.6.0.0 - Produc
    tion
    启动日期 14-3月 -2003 14:40:15
    正常运行时间 0 天 0 小时 2 分 6 秒
    跟踪级别 off
    安全性 OFF
    SNMP OFF
    监听器参数文件 f:\Oracle\Ora81\network\admin\listener.ora
    监听器日志文件 f:\Oracle\Ora81\network\log\listener.log
    服务摘要..
    PLSExtProc 具有1个服务处理程序
    orc2 具有1个服务处理程序
    orcl 具有1个服务处理程序
    orcl 具有2个服务处理程序
    命令执行成功
    LSNRCTL>七、再去连接,成功
    SVRMGR> connect internal/sys@orcl;
    连接成功。
    SVRMGR>
      

  3.   

    您好,我看了,有那个键,我重启后,服务可以自动加载,
    OracleOraHome81TNSListener
    OracleServiceORCL
    OracleWebAssistant0
    另外我装的是8.1.6版的
    机器装的诺顿杀毒软件不知道是否有影响?
      

  4.   

    之前计算机名是不是改过,在...ora92\network\admin目录下的listener.ora文件里看看
    Host的值是不是当前计算机名
      

  5.   

    以下是listener.ora关于路径的内容,我的计算机名没有改过
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
        )
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
        )
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = king)(PORT = 2481))
          (PROTOCOL_STACK =
            (PRESENTATION = GIOP)
            (SESSION = RAW)
          )
        )
      )SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = d:\Oracle\Ora81)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = orcl)
          (ORACLE_HOME = d:\Oracle\Ora81)
          (SID_NAME = orcl)
        )
      )