pmon向監聽註冊例項的行為:
在預設情況下(也就是沒有local_listener引數配置的情況下),pmon會根據主機名 (hostname),查詢其ip位址,通常是在/etc/hosts中找對應的條目,如果沒有找到hostname的ip位址,則pmon不會註冊,同 時,必須是本機的ip位址,pmon才能註冊。比如在/etc/hosts中將hostname對應的ip位址改為其他非本機的ip位址,pmon也不會 進行註冊。pmon根據hostname找到ip後,同時判斷這個是本機ip,則會通過這個ip連線至監聽進行註冊。如果listener沒有監聽這個 ip,則pmon也不會註冊,因為通過這個ip連線不上監聽。
舉乙個簡單的例子,現有兩台ibm小機,作雙機熱備,雙機採用hacmp。在監聽設定中,只監聽了ha的服務ip位址,而hostname對應的 ip位址為服務ip繫結的網絡卡上的另乙個位址。在這種情況下,pmon不能進行動態註冊,在客戶端連線這個oracle伺服器時,將會報ora- 12514錯誤。
listener =
(description_list =
(description =
(address = (protocol = tcp)(host = xty_vip )(port = 1521))
(address = (protocol = tcp)(host = 192.168.0.114 )(port = 1521))
(address = (protocol = ipc)(key = extproc0)) )
) 另乙個辦法就是設定local_listener引數,假如listener只監聽了xty_vip(192.168.0.115)這個位址,則通過下面的命令設定local_listener:
alter system set local_listener=' (address = (protocol = tcp)(host = 192.168.0.115 )(port = 1521))'
這裡建議使用ip位址,特別是對rac,後文細述。
local_listener 使pmon改變用hostname連線listener進行註冊的預設行為。改而用local_listener引數指定的位址連線listener進行 註冊。當然local_listener指定的ip位址必須是本機的ip位址。如果是非本機ip,則會忽略此引數,但是會從前乙個已註冊的監聽中取消注 冊。
與local_listener對應的引數有remote_listener引數。remote_listener使pmon在遠端(即非本機)監聽上進行註冊,這個引數在rac中經常使用(用於負載均衡)。
listener
oracle監聽動態註冊時的例項狀態
監聽動態註冊時,監聽中的例項狀態資訊來自pmon程序動態註冊時的例項狀態。一般有3種,分別為 ready blocked和restricted,如下所示。ora10g capaa admin lsnrctl status listening endpoints summary.services su...
監聽的動態註冊和靜態註冊
動態監聽 oracle例項在啟動時,或使用命令alter system register 或每隔一分鐘,pmon程序會向監聽進行動態註冊,pmon程序根據init.ora中的instance name,service names兩個引數將例項和服務動態註冊到listener中 oracle 執行後,...
oracle監聽的靜態註冊
監聽的靜態註冊指的是指定監聽需要服務某個特定例項的客戶端連線。即在listener.ora檔案的sid list listener模組中明確寫明監聽需要處理的例項名字,但監聽並不需要關心資料庫伺服器上是否有真正的例項在執行。在靜態註冊環境下,在listener.ora檔案中主要配置以下內容 sid ...