首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Windows 下 Oracle 監聽服務啟動失敗排查:主機名不一致、註冊表 ImagePath 缺失、防火牆端口阻擋全覆蓋

     編輯:Oracle 資料庫相關知識

典型現象

  • SQL*Plus 正常,PL/SQL Developer 報 ORA-12541: TNS:no listener。
  • 服務管理器中 OracleOraHome90TNSListener 手動啟動報「系統找不到指定路徑」。

四大排查方向

1. 主機名一致性

  • 檢查 listener.ora 中 HOST = 值與系統 計算機名 完全一致 (大小寫敏感)。
  • 修改後重啟 Listener 服務。

2. 註冊表 ImagePath 缺失/錯誤

  • 打開 regedit,定位:
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OracleOraHome92TNSListener
  • 雙擊 ImagePath,若為空或路徑錯誤,設置為:
    E:\oracle\ora92\BIN\TNSLSNR

    (替換為實際 ORACLE_HOME\BIN\TNSLSNR 路徑)。

3. 端口衝突/被屏蔽

  • Listener 相關端口:1521 (客戶端)、2100 (OEM)、8080 (HTTP)、1027 (動態分配)。
  • 用瑞星/360「網絡活動」或 netstat -anb 查看端口佔用進程。
  • 衝突時修改 listener.ora 端口或停用佔用程序。

4. 防火牆例外配置

  • XP/2003 內建防火牆:控制面板 → Windows 防火牆 → 例外 → 添加程序 → 選 TNSLSNR.EXE 或添加端口 1521/TCP。
  • 第三方防火牆 (ZoneAlarm、Comodo 等) 同理添加信任規則。

一鍵修復腳本 (參考)

@echo off
reg add "HKLM\SYSTEM\CurrentControlSet\Services\OracleOraHome92TNSListener" /v ImagePath /t REG_EXPAND_SZ /d "%ORACLE_HOME%\BIN\TNSLSNR" /f
net stop OracleOraHome92TNSListener
net start OracleOraHome92TNSListener
pause
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved