ERROR ORA-12541: TNS:no listener

本文介绍了当遇到Oracle与PL/SQL重装后无法登录的问题,并显示ORA-12541:TNS:nolistener错误时的解决步骤。首先通过lsnrctl status检查监听状态,发现listener.ora文件配置错误,随后修正文件中SID_LIST_LISTENER参数的括号匹配问题,最终成功启动监听。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

电脑中的Oracle与PL/SQL重装后,无法用户登录,显示ORA-12541: TNS:no listener

 

第一步 查看监听的状态

C:\ > lsnrctl

LSNRCTL> status

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS: 无监听程序
 TNS-12560: TNS: 协议适配器错误
  TNS-00511: 无监听程序
   64-bit Windows Error: 2: No such file or directory
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
TNS-12541: TNS: 无监听程序
 TNS-12560: TNS: 协议适配器错误
  TNS-00511: 无监听程序
   64-bit Windows Error: 61: Unknown error

 

第二步 启动监听

LSNRCTL> start

启动tnslsnr: 请稍候...

TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
系统参数文件为F:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
写入f:\app\administrator\diag\tnslsnr\PC201508122322\listener\alert\log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
TNS-01155: 在 LISTENER.ORA 中指定的 SID_LIST_LISTENER 参数不正确
 NL-00303: NV 字符串中存在语法错误

此处显示listener.ora文件有错误,至日志目录,检查发现SID_LIST中的括号不匹配,多了一个括号,修改文件后的文件如下:

# listener.ora Network Configuration File: F:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

   (SID_LIST =  
          (SID_DESC = 
                (GLOBAL_DBNAME = ORCL) 
                (ORACLE_HOME = F:\app\Administrator\product\11.2.0\dbhome_1) 
                (SID_NAME = ORCL) 
          ) 

         (SID_DESC =
               (SID_NAME = CLRExtProc)
               (ORACLE_HOME = F:\app\Administrator\product\11.2.0\dbhome_1)
              (PROGRAM = extproc)
              (ENVS = "EXTPROC_DLLS=ONLY:F:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
         )
   )

 

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

ADR_BASE_LISTENER = F:\app\Administrator

 

第三步 再次启动监听,已成功

LSNRCTL> start
启动tnslsnr: 请稍候...

TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
系统参数文件为F:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
写入f:\app\administrator\diag\tnslsnr\PC201508122322\listener\alert\log.xml的日
志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期                  23-4月 -2016 18:14:34
正常运行时间              0 天 0 小时 0 分 5 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          F:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
监听程序日志文件          f:\app\administrator\diag\tnslsnr\PC201508122322\listener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "ORCL" 包含 1 个实例。
  实例 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

 


# listener.ora Network Configuration File: F:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

   (SID_LIST = 
    (SID_DESC = 
        (GLOBAL_DBNAME = ORCL) 
        (ORACLE_HOME = F:\app\Administrator\product\11.2.0\dbhome_1) 
        (SID_NAME = ORCL) 
      ) 

     (SID_DESC =
        (SID_NAME = CLRExtProc)
        (ORACLE_HOME = F:\app\Administrator\product\11.2.0\dbhome_1)
        (PROGRAM = extproc)
        (ENVS = "EXTPROC_DLLS=ONLY:F:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
     )
   )

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


ADR_BASE_LISTENER = F:\app\Administrator




一、监听器的启动
    1、启动命令行:
Unix系统:执行命令su -oracle
Window系统:执行命令cmd
    
    2、启动命令行,orcl为监听器的名称:     
       法一、C:>lsnrctl start orcl
       法二、C:>lsnrctl
             LSNRCTL>start orcl


二、监听器的关闭
    1、启动命令行:
Unix系统:执行命令su -oracle
Window系统:执行命令cmd
    
    2、启动命令行,orcl为监听器的名称:     
       法一、C:>lsnrctl stop orcl
       法二、C:>lsnrctl
                   LSNRCTL>stop orcl


二、监听器的状态
    1、C:>lsnrctl
           LSNRCTL>status


    2、查看更加详细的信息
       C:>lsnrctl
       LSNRCTL>services

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值