oracle的靜態註冊和動態註冊

老牛的田發表於2024-11-11

問題一:什麼是靜態註冊和動態註冊

  • 靜態註冊:用酒店的例子,靜態註冊就像是酒店的前臺,什麼時候去都有人在,有沒有房間需要你先詢問,然後她再檢視。如果有就可以入住了。
    靜態註冊就是這樣,監聽程式就是前臺,前臺不知道例項的任何資訊,只有客戶請求時才檢查例項是否存在。
  • 動態註冊:用蹲坑的例子,就是你上大號,你看見廁所的門從裡面鎖上,就知道里面有人。
    在oracle中動態註冊的資料庫,必定是已經啟動的。如果例項關閉,註冊資訊就消失。

問題二:怎樣查詢是靜態註冊還是動態註冊?

方法是用lsnrctl status命令:
UNKNOWN------》是靜態註冊
READY/BLOCKED(備用資料庫)-------》是動態註冊

問題三:靜態註冊的原理

從listener.ora檔案中讀取資訊:
GLOBAL_DBNAME:向外提供服務的名字
SID_NAME: 註冊的例項名

問題四:動態註冊的原理

PMON程序去資料庫引數中找資訊:
service_name:相當於靜態註冊的GLOBAL_DBNAME資訊
instance_name:相當於靜態註冊的SID_NAME資訊

預設埠是1521,建議更改,方法是修改引數:local_listener
修改方法:
ALTER SYSTEM SET LOCAL_LISTENER='' scope=both;
local_listener可以設定tnsname.ora中寫好的的服務名,也可以直接將網路設定寫進去,例如:
ALTER SYSTEM SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL=TCP)(HOST=192. 168.2.1)(PORT=1526))' SCOPE=BOSH;

相關文章