Oracle 監聽器是伺服器端網路服務,負責接收、驗證 Client 連線請求。本文以 Oracle Net Manager 圖形化工具為主,完整演示監聽器建立、本地服務名配置、服務啟動與連線測試流程,並整理六大高頻連線錯誤代碼與排查指引。
開始 → 程式集 → Oracle - OraHome92 → Configuration and Migration Tools → Net Manager$ netmgrLISTENER(可自訂)TCP/IP → 主機名或 IP → Port 1521myOracle.192.168.1.5(含網域確保唯一) → SID myOracle$ORACLE_HOME/network/admin/listener.oramyOracle)TCP/IP → 主機 IP → Port 1521tnsnames.ora| 作業 | Linux/Unix | Windows |
|---|---|---|
| 啟動監聽器 | C:\> lsnrctl start | |
| 關閉監聽器 | C:\> lsnrctl stop | |
| 查看狀態 | C:\> lsnrctl status | |
| 啟動資料庫 | C:\> oradim -startup -sid myOracle | |
| 關閉資料庫 | C:\> oradim -shutdown -sid myOracle |
| 錯誤代碼 | 含義 | 排查方向 |
|---|---|---|
| ORA-12541 TNS:no listener | 監聽器未啟動 | 1. lsnrctl start2. 檢查 Client IP/Port 設定 |
| ORA-12500 TNS:listener failed to start dedicated server process | 資料庫執行個體未啟動 | Windows: oradim -startup -sid <SID> |
| ORA-12535 TNS:operation timed out | 網路不通或防火牆阻擋 | 1. ping/telnet IP 15212. 雙邊防火牆開放 1521 |
| ORA-12154 TNS:could not resolve the connect identifier | 服務名錯誤或 tnsnames.ora 格式錯 | 1. 確認服務名拼寫 2. 檢查 tnsnames.ora 首行服務名前無空格 |
| ORA-12514 TNS:listener does not currently know of service requested | 服務名與監聽器註冊的不符 | Net Manager 檢查服務識別欄位 = 監聽器的全域資料庫名 |
| Windows 監聽器服務找不到路徑 | 註冊表 ImagePath 遺失 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome92TNSListener\ImagePath設為 D:\oracle\ora92\BIN\TNSLSNR |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceMYORACLE\ImagePath
= d:\oracle\ora92\bin\ORACLE.EXE MYORACLE
監聽器配置看似繁瑣,實則遵循伺服器端註冊服務、客戶端描述連線的雙邊契約。善用 Net Manager 圖形化工具避免手寫錯誤,建立「配置→啟動→測試→排查」標準化流程,連線問題皆可迎刃而解。