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

PL/SQL 連線 Oracle 報 ORA-12541 TNS 無監聽程序:三大排查方案完整指南

     編輯:Oracle 教學

PL/SQL 連線 Oracle 報 ORA-12541 TNS 無監聽程序:三大排查方案完整指南

啟動 Oracle 服務後仍報 ORA-12541: TNS:no listener,通常是監聽服務未啟動、tnsnames.ora 設定錯誤、或主機名/IP 解析問題。提供三級排查流程。

方案一:檢查並啟動 Windows 服務

  1. 「電腦管理」→「服務」找到以下服務並啟動:
    • OracleService(資料庫實例)
    • OracleOraDb11g_home1TNSListener(監聽器)
    • OracleDBConsole(Enterprise Manager,可選)
  2. 若服務啟動類型為「手動」,建議改為「自動」。

方案二:修正 tnsnames.ora / listener.ora 主機名解析

# tnsnames.ora 範例
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))
    (CONNECT_DATA = (SERVICE_NAME = ORCL))
  )

# 若 localhost 解析異常,改為實際主機名或固定 IP
# 例:HOST = mydbserver 或 HOST = 192.168.1.100
  • 同步修改 listener.ora 的 HOST 參數。
  • 修改後重啟監聽服務:lsnrctl stop && lsnrctl start。

方案三:使用 Net Configuration Assistant 圖形化重設

  1. 開始功能表 → Oracle → Configuration and Migration Tools → Net Configuration Assistant。
  2. 選擇「Listener configuration」→「Reconfigure」→ 依精靈重新設定監聽器名稱、通訊協定、端口、主機名。
  3. 完成後自動產生正確的 listener.ora、tnsnames.ora、sqlnet.ora。

命令列快速驗證

lsnrctl status   # 應顯示 LISTENER 狀態 READY,服務 ORCL 狀態 READY
tnsping ORCL     # 應回傳 OK

常見陷阱

  • 防火牆阻擋 1521 端口(Windows 防火牆/雲端安全組)。
  • HOST=0.0.0.0 或 HOST=127.0.0.1 導致遠程無法連線,需綁定實際 IP/主機名。
  • 多張網卡時,listener.ora 需明確指定 HOST=特定IP,否則可能綁定錯誤介面。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved