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

解決 OracleOraDb11g_home1TNSListener 服務啟動即停止:註冊表 ImagePath 與環境變數 ORACLE_HOME 雙重修復

     編輯:Oracle 教學

解決 OracleOraDb11g_home1TNSListener 服務啟動即停止:註冊表 ImagePath 與環境變數 ORACLE_HOME 雙重修復

Windows 環境下 Oracle 11g 監聽器服務 (OracleOraDb11g_home1TNSListener) 啟動後隨即停止,事件檢視器提示「某些服務在未由其他服務或程序使用時將自動停止」。根因通常為註冊表可執行檔路徑缺少 .exe 後綴,以及系統環境變數 ORACLE_HOME 未設定。本文提供精確修復步驟。

一、錯誤現象

  • 服務管理器 (services.msc) 中啟動 OracleOraDb11g_home1TNSListener → 狀態顯示「正在啟動」 → 秒後變為「已停止」。
  • lsnrctl status 報錯 TNS-01106: Listener using listener name LISTENER has already been started 或 TNS-12541: TNS:no listener。
  • 事件檢視器 System 日誌:Service OracleOraDb11g_home1TNSListener terminated unexpectedly。

二、根因定位

  1. 註冊表 ImagePath 缺少 .exe 後綴:服務啟動參數指向 ...BIN\TNSLSNR (無副檔名),Windows 服務控制管理器 (SCM) 無法正確識別可執行檔類型,導致進程啟動後立即被終止。
  2. 系統環境變數 ORACLE_HOME 為空:監聽器進程啟動時讀取 %ORACLE_HOME% 定位 network/admin/listener.ora、sqlnet.ora,變數缺失導致配置讀取失敗,進程異常退出。

三、修復步驟 (需管理員權限)

1. 修正註冊表 ImagePath

路徑: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb11g_home1TNSListener
值名: ImagePath
原值: D:\oracle_11g\product\11.1.0\db_1\BIN\TNSLSNR
新值: D:\oracle_11g\product\11.1.0\db_1\BIN\TNSLSNR.EXE
-- 關鍵:補上 .EXE 後綴 (不分大小寫)

操作:regedit → 定位路徑 → 雙擊 ImagePath → 在路徑末尾加 .EXE → 確定。

2. 設定系統環境變數 ORACLE_HOME

變數名: ORACLE_HOME
變數值: D:\oracle_11g\product\11.1.0\db_1
-- 指向 Oracle Home 根目錄 (含 BIN、NETWORK、DBS 等子目錄)

操作:Win+Pause → Advanced system settings → Environment Variables → System variables → New (或編輯現有) → 輸入上述值 → 確定 → 重啟 cmd/PowerShell 使生效。

3. 驗證修復

  檢查項正確配置異常徵兆
  註冊表 ImagePath完整路徑 + .EXE服務啟動即停、事件 7000/7023
  系統環境變數 ORACLE_HOME指向有效 Oracle Homelsnrctl 報 TNS-01106、listener.ora 讀取失敗
  系統環境變數 PATH包含 %ORACLE_HOME%\BIN命令列找不到 lsnrctl、sqlplus
  listener.ora 存在性%ORACLE_HOME%\network\admin\listener.ora監聽器啟動但無端點、服務未註冊
  防火牆 1521 埠入站規則允許本機連得遠端連不上


五、原文出處致謝

本解決方案整理自:https://blog.csdn.net/hujunsong/article/details/5539669

核心心法:Windows 服務依賴 註冊表精確指向可執行檔 與 進程環境變數正確解析配置路徑 兩大支柱。任何 Oracle 服務異常 (Listener, DBInstance, DBConsole, VSS Writer),優先檢查這兩項,解決 90% 以上啟動即停問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved