最近在啟動監聽器的時候收到了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)
相關參考
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)