方法
一臺數據庫服務器一般只需要一個,一個可以監聽多個數據庫,也可以一個數據庫多個監聽,當然也可以為每個數據庫配置專門的,這要根據具體的情況來配置。事實上,配置監聽就是將數據庫服務的注冊信息寫入指定文件,那樣每次啟動監聽的時候就會自動讀取數據庫的相關信息。我們把實例將數據庫將所提供的服務名及相關信息告知listener的過程稱之為服務注冊,注冊通常包括數據庫的服務名、實例名、SERVER模式、端口號等。我們可以通過Lsnrctl命令查看監聽的運行情況和數據庫的狀態:
Ready:代表實例可以接受連接請求,是動態注冊的監聽;
Blocked:實例目前不能接受連接請求;
Unknown:靜態注冊的監聽。
在運行lsnrctl命令的status時,常會看到如下返回值(下圖紅色部分):
結果顯示,狀態UNKOWN和READY的監聽記錄,它們分別是靜態和動態注冊的監聽。先來說一下動態注冊,動態注冊是在instance啟動的時候,由PMON進程根據init.ora中的instance_name、service_names兩個參數將實例和服務動態注冊到listener中。如果沒有定義service_name,數據庫會根據db_name和db_domain組成的一個全局數據庫名成注冊到中,instance_name是實例名稱,一般和SID值一樣。
動態注冊不必須顯式的配置在listener.ora文件中,當然在listener.ora配置如圖7-4綠色部分的內容來實現動態注冊也無妨,DBA還可以通過SQL語句—“alter system register;”強制PMON向動態注冊。在Oracle 9i之后,不需要任何配置即可實現動態注冊,實例啟動后會自動在本地主機默認的號端口上查找,并進行注冊。
說明:在數據庫服務器啟動過程中,數據庫服務器會向監聽程序注冊相應的服務(無論何時啟動一個數據庫,默認地都有兩條信息注冊到中:數據庫服務器對應的實例和服務。)相當于是這樣:在數據庫服務器和客戶端之間有一監聽程序(Listener),在監聽程序中,會記錄相應數據庫對應的服務名(一個數據庫可能對應有多個服務名),當客戶端需要連接數據庫時,只需要提供服務名,就可以建立客戶端和服務器之間的連接。
注意:Oracle_SID從ORACLE 10G開始,參數文件不再記錄INSTANCE_NAME,此時INSTANCE_NAME動態從系統ORACLE_SID獲得來保持一致。
事實上,我們常說的Oracle數據庫監聽配置,一般都是指靜態注冊—將實例的相關信息手動告知listener,即將數據庫的相關信息配置到listener.ora中。在實例啟動時就會讀取listener.ora文件的配置,listener.ora中的GLOBAL_DBNAME向外提供服務名,listener.ora中的SID_NAME提供注冊的實例名,將實例和服務注冊到監聽程序,靜態配置最大的問題就是無法知道數據庫真正的狀態。
說明:如果關閉數據庫后在查看監聽會發現動態注冊的自動消失了只有靜態注冊的在,動態注冊機制不需要對做任何額外配置,而結果卻比靜態注冊更準確,靜態注冊機制需要針對每個數據庫都做額外配置,但是結果卻不準確。關于監聽的配置,可以使用網絡配置助手(Oracle Net Configuration Assistant)或網絡管理器(Oracle Net Manager),也可以通過“f:app
npruduct11.2.0dbhome_1
etworkadminlistener.ora”直接手動配置。
1)Net Configuration Assistant,主要為用戶提供Oracle數據庫的監聽程序、命名方法、本地NET服務名和目錄配置,網絡配置助手以向導的形式出現,使配置過程簡單,適合初學者,根據向導輸入監聽程序名稱→網絡協議→主機→端口,完成配置。
2)Net Manager和Net Configuration Assistant功能相似,主要內容為本地服務命名和監聽程序配置,但Net Manager將所有配置步驟集合到同一界面,更適合熟練者進行操作。根據界面的提示,點擊“監聽程序”,再點擊左側欄的“+”添加監聽,按步驟輸入:監聽程序名稱→網絡協議→主機→端口,完成配置。
3)通過“$ORACLE_HOME/network/admin/listener.ora”(Linux系統下)“$ORACLE_HOME11.2.0dbhome_1 etworkadminlistener.ora”(Windows系統)直接手動配置,在listener.ora加入下圖紅色部分的內容。
說明:可以通過查看listener.ora文件判斷監聽的注冊方式,如果[監聽名]和SID_LIST_[監聽名]配置是成對出現的,這代表是靜態監聽;如果listener.ora文件只有[監聽名]的配置,監聽就變成動態監聽了,這時它需要由oracle數據庫的pmon主動向監聽注冊,告知監聽有這么一個服務的存在。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com