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

Oracle 監聽器動態註冊實戰:非預設端口 (1590) 配置全過程

     編輯:DB2 教學

Oracle 監聽器動態註冊實戰:非預設端口 (1590) 配置全過程

環境資訊

Oracle Database 11g Enterprise Edition 11.2.0.1.0
Enterprise Linux Server 5.5

場景

預設端口 1521 的監聽器,PMON 會自動註冊服務,無需額外配置。若需在非預設端口(如 1590)運行監聽並實現動態註冊,需完成以下步驟。

配置步驟

  1. 修改 listener.ora($ORACLE_HOME/network/admin/)
LISTENER1 = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.115.78)(PORT = 1590))
    )
  )

建議使用 IP 而非主機名,避免解析問題。

  1. 設定 local_listener 參數(動態註冊關鍵)
ALTER SYSTEM SET local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.115.78)(PORT = 1590))' SCOPE=BOTH;
  1. 設定 service_names(可多個,用逗號分隔)
ALTER SYSTEM SET service_names = 'a,b,c,d,diy,os';
  1. 重啟監聽器驗證
-- 確認現有監聽進程
ps -ef | grep tnslsnr | grep -v grep

-- 強制停止(示範用 kill -9,生產建議 lsnrctl stop)
kill -9 

-- 啟動新監聽
lsnrctl start listener1

驗證註冊結果

啟動後稍等片刻(PMON 定期註冊),執行 lsnrctl status listener1:

Services Summary...
Service "a.localdomain" has 1 instance(s).
  Instance "ORCL3939", status READY, has 1 handler(s)...
Service "b.localdomain" has 1 instance(s)...
...
Service "os.localdomain" has 1 instance(s).
  Instance "ORCL3939", status READY, has 1 handler(s)...

所有 service_names 定義的服務均成功註冊到監聽器,狀態為 READY,表示動態註冊完全正常。

關鍵點總結

  • local_listener 告訴 PMON 向哪個監聽器地址註冊,支援非預設端口。
  • service_names 定義資料庫對外暴露的服務名稱,可多個。
  • 修改參數後需重啟監聽器,PMON 會自動感知並註冊,無需重啟資料庫實例。
  • 生產環境建議使用 lsnrctl stop/start 而非 kill -9。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved