首页 > 代码库 > TNS-01201: Listener cannot find executablen 错误

TNS-01201: Listener cannot find executablen 错误

    最近在启动监听器的时候收到了TNS-01201: Listener cannot find executable...的错误提示。这个错误还真是一个一直没有碰到过的错误。咋一看还真不明白是怎么一回事呢。下面是错误的具体描述与解决方案。

 

1、故障描述
#在启动监听器时收到了TNS-01201错误,监听器无法找到可执行文件
oracle@DevDB02:~> lsnrctl start LISTENER_USBO2                        

LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 06-JUN-2014 17:06:37

Copyright (c) 1991, 2006, Oracle.  All rights reserved.

Starting /home/oracle/OraHome10g/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.3.0 - Production
System parameter file is /home/oracle/OraHome10g/network/admin/listener.ora
Log messages written to /home/oracle/OraHome10g/network/log/listener_usbo2.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.202)(PORT=1403)))
TNS-01201: Listener cannot find executable /users/oracle/OraHome10g/bin/oracle for SID USBO2

Listener failed to start. See the error message(s) above...

 

2、故障分析
#Meatlink上给出了关于这个问题的描述(Doc ID 22060.1)
#需要检查ORACLE_HOME环境变量是否指向了一个有效位置
Error:  TNS 1201
Text:   Listener cannot find executable %s for SID %s
-------------------------------------------------------------------------------
Cause:  The executable for the Oracle dedicated server process cannot be
        found.
Action: Check the appropriate SID_DESC in LISTENER.ORA to make sure that
        the ORACLE_HOME component is pointing to a valid location.
 If this component is not set, then check the value of the ORACLE_HOME
 environment variable.
Comment:This error is reported only on UNIX platforms.

 

3、故障解决
#原来监听器中配置的oracle_home不同于当前的ORACLE_HOME
oracle@DevDB02:~> more $ORACLE_HOME/network/admin/listener.ora
LISTENER_USBO2 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.202)(PORT = 1403))
      )
    )
  )

SID_LIST_LISTENER_USBO2 =
  (SID_LIST =
    (SID_DESC =
        (sid_name=USBO2)
        (oracle_home = /users/oracle/OraHome10g)
    )
  )

oracle@DevDB02:~> echo $ORACLE_HOME
/home/oracle/OraHome10g

#由于直接从另外一台机器复制了listener配置内容,新机器与旧机器使用了不同的ORACLE_HOME
#于是收到了上面的错误提示,下面是更正后的内容,再次重启正常
oracle@DevDB02:~> grep home $ORACLE_HOME/network/admin/listener.ora
        (oracle_home = /home/oracle/OraHome10g)
         


Oracle 牛鹏社    

相关参考
    RMAN 配置保留策略    

    Oracle 闪回区(Oracle Flash recovery area)

    Oracle 快照控制文件(snapshot control file)

    中小型数据库 RMAN CATALOG 备份恢复方案(一)

    中小型数据库 RMAN CATALOG 备份恢复方案(二)

    中小型数据库 RMAN CATALOG 备份恢复方案(三)

    基于RMAN实现坏块介质恢复(blockrecover)

    用 DBMS_REPAIR 修复坏块

    RMAN 数据库克隆文件位置转换方法

    基于RMAN的异机数据库克隆(rman duplicate)

    基于 RMAN 的同机数据库克隆

    基于用户管理的同机数据库克隆

    基于RMAN从活动数据库异机克隆(rman duplicate from active DB)

    RMAN duplicate from active 时遭遇 ORA-17627 ORA-12154

    Oracle 冷备份

    Oracle 热备份

    Oracle 备份恢复概念

    Oracle 实例恢复

    Oracle 基于用户管理恢复的处理

    SYSTEM 表空间管理及备份恢复

    SYSAUX表空间管理及恢复

    Oracle 基于备份控制文件的恢复(unsing backup controlfile)

    RMAN 概述及其体系结构

    RMAN 配置、监控与管理

    RMAN 备份详解

    RMAN 还原与恢复

    RMAN catalog 的创建和使用

    基于catalog 创建RMAN存储脚本

    基于catalog 的RMAN 备份与恢复

    RMAN 备份路径困惑

    自定义 RMAN 显示的日期时间格式

    只读表空间的备份与恢复

    Oracle 基于用户管理的不完全恢复

    理解 using backup controlfile

    使用RMAN实现异机备份恢复(WIN平台)

    使用RMAN迁移文件系统数据库到ASM

    基于Linux下 Oracle 备份策略(RMAN)

    Linux 下RMAN备份shell脚本

    使用RMAN迁移数据库到异机

    RMAN 提示符下执行SQL语句

    Oracle 基于 RMAN 的不完全恢复(incomplete recovery by RMAN)

    rman 还原归档日志(restore archivelog)