此文件將您提供的內容整理成結構化的 HTML 檔案,包含監聽程序的定義、功能、特性、管理命令、示意圖及新增/刪除監聽程序的步驟與注意事項。
在 Oracle 資料庫中,監聽程序(Listener)是一個在資料庫伺服器上運行的伺服器程式,負責接收客戶端的連線請求,然後將這些請求轉交給對應的資料庫實例處理。它是客戶端與資料庫之間的中介,確保資料庫可以接受遠端或本地的連線。
使用 lsnrctl
工具管理 Oracle Listener:
# 啟動監聽程序 lsnrctl start # 停止監聽程序 lsnrctl stop # 重啟或重新載入設定 lsnrctl reload # 查看監聽狀態 lsnrctl status
監聽程序本身不處理 SQL 查詢,它只負責「接線、轉交」,真正執行查詢的是資料庫實例。
Oracle 預設會有一個主要的監聽程式,通常名稱為:LISTENER
。但您可以依需要新增或刪除多個監聽程序(例如不同的埠口、協議或資料庫實例),這在多實例、多服務或不同安全網段的環境中非常常見。
netca
LISTENER2
)。$ORACLE_HOME/network/admin/listener.ora
中自動新增設定。listener.ora
範例設定(通常放在 $ORACLE_HOME/network/admin/listener.ora
):
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = mydbserver)(PORT = 1521)) ) ) LISTENER2 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = mydbserver)(PORT = 1522)) ) )
然後啟動新監聽程序:
lsnrctl start LISTENER2
listener.ora
。LISTENER2
的設定)。lsnrctl stop LISTENER2 lsnrctl reload
注意項目 | 說明 |
---|---|
監聽埠號 | 不同監聽器應使用不同埠號(例如 1521、1522)。 |
主機名稱 / 網卡 | 若主機有多張網卡或多個 IP,可分別監聽不同網段。 |
資料庫動態註冊 | 監聽程序啟動後,資料庫會自動向監聽器註冊(需設定 LOCAL_LISTENER 參數)。 |
防火牆 | 記得開放對應的 TCP 埠號。 |
lsnrctl start LISTENER2 -- 啟動指定監聽程序 lsnrctl stop LISTENER2 -- 停止指定監聽程序 lsnrctl status LISTENER2 -- 查看監聽狀態 lsnrctl reload -- 重新載入 listener.ora 設定