首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 監聽器無法啟動 7 步快速排除法 (Windows 版)

     編輯:Oracle 資料庫基礎

故障現象

  • 用戶端連線報錯:`ORA-12541: TNS:no listener`
  • 執行 `lsnrctl status/start` 報錯:`TNS-01103: 地址的協議專用組件指定不正確`、`TNS-12560: 協議適配器錯誤`、`32-bit Windows Error: 61/997`
  • Windows 服務管理員啟動 `OracleOraHome81TNSListener` 失敗:`錯誤 3:系統找不到指定的路徑`,且服務可執行檔路徑為空。

根因分析

Windows 註冊表中監聽器服務的 `ImagePath` 鍵值遺失或損毀,導致服務控制管理器 (SCM) 找不到 `tnslsnr.exe` 執行檔,進而無法啟動監聽器進程。

7 步修復程序

步驟 1:確認錯誤現象

C:\> lsnrctl status
TNS-01103: 地址的協議專用組件指定不正確
TNS-12541: TNS:無監聽器
...
C:\> lsnrctl start
Failed to start service, error 3.

步驟 2:檢查 Windows 服務

開啟 `services.msc`,找到 `OracleOraHome81TNSListener`,屬性中「執行檔路徑」為空白。

步驟 3:開啟註冊表編輯器

執行 regedit
定位至:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome81TNSListener

步驟 4:修復 ImagePath 鍵值

  • 若 `ImagePath` 不存在:右鍵新增 → **可擴充字串值** → 名稱 `ImagePath`。
  • 若存在但值錯誤:雙擊修改。
  • 數值資料 設為:F:\Oracle\Ora81\BIN\TNSLSNR (請依實際 Oracle Home 路徑調整,必須指向 `tnslsnr.exe` 完整路徑)。

步驟 5:啟動 Windows 服務

在 `services.msc` 中右鍵啟動 `OracleOraHome81TNSListener`,應能正常啟動。

步驟 6:驗證監聽器狀態

C:\> lsnrctl status
連接至 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=robust)(PORT=1521)))
LISTENER 的 STATUS
--------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 8.1.6.0.0
啟動日期 ...
正常運行時間 0 天 0 小時 2 分 6 秒
服務摘要...
PLSExtProc (1 handler)
orc2 (1 handler)
orcl (2 handlers)
命令執行成功

步驟 7:測試用戶端連線

SVRMGR> CONNECT INTERNAL/SYS@ORCL;
連接成功。

延伸檢查與預防

  • listener.ora 設定:確認 `HOST` 參數使用正確主機名/IP,`PORT` 預設 1521 無衝突。
  • 防火牆:確保 TCP 1521 端口對應用伺服器開放。
  • 多 Oracle Home:若安裝多版本,確認服務名稱後綴 (`OraHome81`, `OraHome92`, `OraDb11g_home1`) 對應正確 Home 路徑。
  • 權限問題:服務登入身分建議用 `Local System` 或具備 `Log on as a service` 權限的專用帳號。
  • 備份註冊表:修改前匯出該分支備份,便於快速回滾。

常見錯誤代碼對照

代碼含義典型原因
TNS-01103協議專用組件指定不正確listener.ora 格式錯誤、ImagePath 遺失、DLL 缺失
TNS-12541無監聽器服務未啟動、端口被佔用、防火牆阻擋
TNS-12560協議適配器錯誤網路層故障、驅動程式問題、ImagePath 錯誤
Windows Error 3系統找不到指定路徑ImagePath 指向不存在的路徑
Windows Error 997I/O 作業重疊服務啟動超時、相依服務未就緒
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved