溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PMON、SMON、DBWR與LGWR的作用有哪些

發(fā)布時間:2021-12-30 16:21:10 來源:億速云 閱讀:143 作者:柒染 欄目:云計算

本篇文章為大家展示了PMON、SMON、DBWR與LGWR的作用有哪些,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

PMON進程:該進程在用戶進程出現故障時執(zhí)行進程恢復,負責清理內存儲區(qū)和釋放該進程所使用的資源。例:它要重置活動事務表的狀態(tài),釋放封鎖,將該故障的進程的ID從活動進程表中移去。PMON還周期地檢查調度進程(DISPATCHER)和服務器進程的狀態(tài),如果已死,則重新啟動(不包括有意刪除的進程)。 

PMON有規(guī)律地被呼醒,檢查是否需要,或者其它進程發(fā)現需要時可以被調用。

PMON進程還負責在反常中斷的連接之后的清理工作。例如,如果因某些原因專用服務  “故障”或被kill掉,PMON就是負責處理(恢復或回滾工作)和釋放你的資源。PMON將發(fā)出未提交工作的回滾,釋放鎖,和釋放分配給故障進程的SGA資源。

除了在異常中斷之后的清理外,  PMON監(jiān)控其他oracle后臺進程,如果有必要(和有可能)重新啟動他們。如果共享服務或一個分配器故障(崩潰),PMON將插手并且重啟另一個(在清理故障進程之后)。PMON將觀察所有Oracle進程,只要合適或重啟他們或中止進程。例如,在數據庫日志寫進程事件中,LGWR故障,實例故障。這是一個嚴重的錯誤,最安全的處理方法就是去立即終止實例,讓正常的恢復處理數據。(注意這是很少發(fā)生的事情,應該立即報告oracle支持)。

PMON為實例做的另一件事是去使用  Oracle TNS監(jiān)聽器登記。當一個實例開啟的時候,PMON進程投出眾所周知的端口地址,除非指向其他,來看是否監(jiān)聽器正在開和運行著。眾所周知/默認端口是使用1521?,F在,如果監(jiān)聽器在一些不同端口開啟會發(fā)生什么?這種情況,機制是相同的,除了監(jiān)聽器地址需要被LOCAL_LISTENER參數明確指定。如果監(jiān)聽器運行在庫實例開啟的時候,PMON和監(jiān)聽器通訊,傳到它相關參數,譬如服務器名和實例的負載度量。如果監(jiān)聽器沒被開啟,PMON將周期性的試著和它聯系來登記自己。 

SMON進程:該進程實例啟動時執(zhí)行實例恢復,還負責清理不再使用的臨時段。在具有并行服務器選項的環(huán)境下,  SMON對有故障CPU或實例進行實例恢復。SMON進程有規(guī)律地被呼醒,檢查是否需要,或者其它進程發(fā)現需要時可以被調用。 

SMON還負責做所有系統(tǒng)級的工作。相對于  PMON對單個進程感興趣,SMON是一個系統(tǒng)級別的觀點,是一種用于庫的“垃圾收集者”。它做的工作包括如下7件:

1 清理臨時表空間:伴隨這  “真正”的臨時表空間的出現,清理臨時表空間的雜事已經減輕了,但它還沒完全消失。例如,當建立一個索引,在創(chuàng)建期間分配給索引的擴展區(qū)被標志為TEMPORARY。如果Create Index會話因某些原因異常中斷,SMON負責清理他們。其他操作創(chuàng)建的臨時擴展區(qū),SMON同樣會負責。

2 接合空閑空間:如果你正使用數據字典管理表空間,  SMON負責把那些在表空間中空閑的并且互相是鄰近的extent接合成一個較大的空閑擴展區(qū)。這發(fā)生僅在帶有默認的pctincrease設置為非零的存儲子句的字典管理表空間。

3 把對于不可用文件的事務恢復成活動狀態(tài):它的角色類似在庫啟動期間。這時,因為文件不能用于恢復,  SMON恢復在實例/崩潰恢復期間被跳過的故障事務。例如,文件可能已經在不可用或沒裝載的磁盤上。當文件變可用了,SMON將恢復它。

4 執(zhí)行一個  RAC中故障節(jié)點的實例恢復:在一個oracle RAC配置中,當群集中的一個庫實例失?。ɡ纾瑢嵗龍?zhí)行的機器故障了),一些群集中的其他節(jié)點將開啟故障的實例的重做日志文件,為故障實例執(zhí)行所有數據的恢復。

5 清理  OBJ$:OBJ$是一個包含庫中幾乎每一個對象(表,索引,觸發(fā)器,視圖等等)的記錄的行級數據字典表。許多次,這兒存在的記錄代表已刪對象,或代表不在這兒的對象,在oracle的信賴機制中被使用。SMON是刪除這些不在被需要的行的進程。

6 收縮回滾段:  SMON將執(zhí)行回滾段的自動收縮到它的optimal尺寸,如果它被設置。

7 “脫機  ”回滾段:對于DBA來,讓一個有active事務的回滾段,脫機或不可用,這事是可能的。Active事務正使用這脫機回滾段是可能的。在這情況下,回滾不是真正的脫機;它被標志為“懸掛offline”。在后臺進程中,SMON將周期性盡力讓它真正脫機,直到成功。它做許多其他事情,譬如存在DBA_TAB_MONITORING視圖中的監(jiān)控統(tǒng)計數據的洗刷,在SMON_SCN_TIME表中發(fā)現的時間戳定位信息的SCN的洗刷,等等。SMON在期間能消耗很多CPU,這應該被認為是正常的。SMON周期性的蘇醒(或被其他后臺進程叫醒)來執(zhí)行這些管家的家庭雜事。

DBWR進程:該進程執(zhí)行將緩沖區(qū)寫入數據文件,是負責緩沖存儲區(qū)管理的一個  ORACLE后臺進程。當緩沖區(qū)中的一緩沖區(qū)被修改,它被標志為“弄臟”,DBWR的主要任務是將“弄臟”的緩沖區(qū)寫入磁盤,使緩沖區(qū)保持“干凈”。由于緩沖存儲區(qū)的緩沖區(qū)填入數據庫或被用戶進程弄臟,未用的緩沖區(qū)的數目減少。當未用的緩沖區(qū)下降到很少,以致用戶進程要從磁盤讀入塊到內存存儲區(qū)時無法找到未用的緩沖區(qū)時,DBWR將管理緩沖存儲區(qū),使用戶進程總可得到未用的緩沖區(qū)。

ORACLE采用  LRU(LEAST RECENTLY USED)算法(最近最少使用算法)保持內存中的數據塊是最近使用的,使I/O最小。在下列情況預示DBWR 要將弄臟的緩沖區(qū)寫入磁盤: 

1、當一個服務器進程將一緩沖區(qū)移入  “弄臟”表,該弄臟表達到臨界長度

時,該服務進程將通知  DBWR進行寫。該臨界長度是為參數DB-BLOCK-WRITE-BATCH

的值的一半。 

2、 當一個服務器進程在  LRU表中查找DB-BLOCK-MAX-SCAN-CNT緩沖區(qū)時,沒

有查到未用的緩沖區(qū),它停止查找并通知  DBWR進行寫。 

3、出現超時(每次  3秒),DBWR 將通知本身。 

4、 當出現檢查點時,  LGWR將通知DBWR在前兩種情況下,DBWR將弄臟表中的塊寫入磁盤,每次可寫的塊數由初始化參數DB-BLOCK-WRITE-BATCH所指定。如果弄臟表中沒有該參數指定塊數的緩沖區(qū),DBWR從LUR表中查找另外一個弄臟緩沖區(qū)。如果DBWR在三秒內未活動,則出現超時。在這種情況下DBWR對LRU表查找指定數目的緩沖區(qū),將所找到任何弄臟緩沖區(qū)寫入磁盤。每當出現超時,DBWR查找一個新的緩沖區(qū)組。每次由DBWR查找的緩沖區(qū)的數目是為寢化參數DB-BLOCK-WRITE-BATCH的值的二倍。如果數據庫空運轉,DBWR最終將全部緩沖區(qū)存儲區(qū)寫入磁盤。在出現檢查點時,LGWR指定一修改緩沖區(qū)表必須寫入到磁盤。DBWR將指定的緩沖區(qū)寫入磁盤。 

在有些平臺上,一個實例可有多個  DBWR。在這樣的實例中,一些塊可寫入一磁盤,另一些塊可寫入其它磁盤。參數DB-WRITERS控制DBWR進程個數。 

LGWR進程:該進程將日志緩沖區(qū)寫入磁盤上的一個日志文件,它是負責管理日志緩沖區(qū)的一個  ORACLE后臺進程。LGWR進程將自上次寫入磁盤以來的全部日志項輸出,LGWR輸出: 

1、 當用戶進程提交一事務時寫入一個提交記錄。 

2、每三秒將日志緩沖區(qū)輸出。 

3、 當日志緩沖區(qū)的  1/3已滿時將日志緩沖區(qū)輸出。 

4、當  DBWR將修改緩沖區(qū)寫入磁盤時則將日志緩沖區(qū)輸出。 

LGWR進程同步地寫入到活動的鏡象在線日志文件組。如果組中一個文件被刪除或不可用,  LGWR 可繼續(xù)地寫入該組的其它文件。 

  日志緩沖區(qū)是一個循環(huán)緩沖區(qū)。當  LGWR將日志緩沖區(qū)的日志項寫入日志文件后,服務器進程可將新的日志項寫入到該日志緩沖區(qū)。  LGWR 通常寫得很快,可確保日志緩沖區(qū)總有空間可寫入新的日志項。 

注意:有時候當需要更多的日志緩沖區(qū)時,  LWGR在一個事務提交前就將日志項寫出,而這些日志項僅當在以后事務提交后才永久化。 

ORACLE使用快速提交機制,當用戶發(fā)出  COMMIT語句時,一個COMMIT記錄立即放入日志緩沖區(qū),但相應的數據緩沖區(qū)改變是被延遲,直到在更有效時才將它們寫入數據文件。當一事務提交時,被賦給一個系統(tǒng)修改號(SCN),它同事務日志項一起記錄在日志中。由于SCN記錄在日志中,以致在并行服務器選項配置情況下,恢復操作可以同步。

上述內容就是PMON、SMON、DBWR與LGWR的作用有哪些,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI