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

Oracle 監聽器安裝配置全攻略:Net Manager 圖形化操作、連線測試與六大常見錯誤排查

     編輯:Oracle 資料庫基礎

Oracle 監聽器是伺服器端網路服務,負責接收、驗證 Client 連線請求。本文以 Oracle Net Manager 圖形化工具為主,完整演示監聽器建立、本地服務名配置、服務啟動與連線測試流程,並整理六大高頻連線錯誤代碼與排查指引。

架構角色釐清

  • 監聽器:僅存在於資料庫伺服器端,監聽 Port(預設 1521)
  • 本地服務名:Client 端網路配置,含連線描述符(主機、Port、服務名)
  • 連線流程:Client 發請求 → 監聽器驗證 → 建立專用/共用伺服器進程 → 回應 Client

圖形化配置步驟

啟動 Net Manager

  • Windows:開始 → 程式集 → Oracle - OraHome92 → Configuration and Migration Tools → Net Manager
  • Linux/Unix:$ netmgr

1. 監聽器配置

  1. 選左側樹「監聽程式」→ 點「+」新增 → 名稱 LISTENER(可自訂)
  2. 選「監聽位置」→ 新增地址 → 協定 TCP/IP → 主機名或 IP → Port 1521
  3. 選「資料庫服務」→ 新增資料庫 → 全域資料庫名 myOracle.192.168.1.5(含網域確保唯一) → SID myOracle
  4. 儲存 → 產生 $ORACLE_HOME/network/admin/listener.ora
  5. 2. 本地服務名配置

    1. 選「本地」→ 「服務命名」→ 新增 → 服務名自訂(如 myOracle)
    2. 協定 TCP/IP → 主機 IP → Port 1521
    3. 服務識別:服務名 必須與監聽器配置的全域資料庫名一致
    4. 測試連線(需監聽器與資料庫已啟動)→ 儲存 → 產生 tnsnames.ora
    5. 3. 服務啟動與連線驗證

      $ lsnrctl start$ lsnrctl stop$ lsnrctl statusSQL> STARTUPSQL> SHUTDOWN IMMEDIATE

      注意:若監聽器名稱非 LISTENER,需指定名稱:lsnrctl start myListener

      SQL*Plus 連線測試

      C:\> sqlplus /nolog
      SQL> CONN zgh@myOracle
      已連線。

      六大常見連線錯誤與排查

      作業Linux/UnixWindows
      啟動監聽器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 start
      2. 檢查 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 1521
      2. 雙邊防火牆開放 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

      核心排查心法

      1. 配置一致性:Client tnsnames.ora = Server listener.ora(主機、Port、服務名)
      2. 分層驗證:網路通 → 監聽器活 → 資料庫開 → 服務名匹配
      3. 看錯誤代碼找層級:12541/12500=服務層,12535=網路層,12154/12514=配置層

      結語

      監聽器配置看似繁瑣,實則遵循伺服器端註冊服務、客戶端描述連線的雙邊契約。善用 Net Manager 圖形化工具避免手寫錯誤,建立「配置→啟動→測試→排查」標準化流程,連線問題皆可迎刃而解。

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