Oracle後台程序

2021-05-27 12:11:51 字數 2166 閱讀 2975

後台程序主要完成以下任務:

ø  在記憶體與外存之間進行i/o操作

ø  監視各個程序的狀態

ø  協調各個程序的任務

ø  維護系統的效能

ø  保證系統的可靠性

當oracle資料庫鏈結非正常終止,oracle將通過pmon程序來啟動、清除中斷或失敗的使用者程序,包括清除非正常中斷的使用者程序留下的會話,回退未提交的事務,釋放會話所占用的鎖,sga區,pga區等資源。此外,pmon程序還定期地檢查排程程式和服務程序的狀態,如果他們失敗,就會嘗試重新啟動並釋放他們所佔的資源。pmon程序會定期地被喚醒,進行檢查。

smon(system monitor)-系統監控程序,在例項啟動時執行例項恢復,並負責清理不再使用的臨時段。smon所做的工作包括:

ø  清理臨時空間

ø  合併空閒空間

ø  針對原來不可用的檔案恢復活動的事務

smon是檢查資料庫系統的,pmon是檢查服務程序的。當資料庫非正常的關閉,再次重啟時,smon程序會自動讀取重做日誌檔案,對資料庫進行恢復,將已經提交的事務寫到資料庫檔案,回退未提交的事務。

dbwr (資料庫寫入程式)後台程序負責管理資料塊快取區及字典快取區的內容。它的作用包括:

ø  管理快取記憶體區,以便服務程序能找到空閒快取塊

ø  當快取中的資料寫到資料庫檔案中,釋放快取區

ø  使用lru演算法管理快取中資料,避免重複讀取資料庫檔案

dbwr程序啟動時間與使用者提交事務的時間無關,就是說當使用者commit事務後,該事務的資料會放到快取記憶體區中,而不是資料庫檔案中。

最好的情況下,dbwn使用非同步i/o將塊寫至磁碟。採用非同步i/o,dbwn會收集一批要寫的塊,並把它們交給作業系統。dbwn並不等待作業系統真正將塊寫出;而是立即返回,並收集下一批要寫的塊。當作業系統完成寫操作時,它會非同步地通知dbwn寫操作已經完成。這樣,與所有的操作都序列進行相比,dwbn可以更快地工作。

根據定義,塊寫入器程序會把塊寫出到所有磁碟,即分散到各個磁碟上;也就是說,dbwn會做大量的分散寫。執行乙個更新時,你會修改多處儲存的索引塊,還可能修改隨機地分布到磁碟上的資料塊。另一方面,lgwr則是向重做日誌完成大量的順序寫。這是乙個很重要的區別。

分散寫比順序寫慢多了。通過在sga中快取髒塊,並由lgwr程序完成大規模順序寫,這樣可以提公升效能。dbwn在後台完成它的任務(很慢),而lgwr在使用者等待時完成自己的任務(這個任務比較快),這樣我們就能夠得到更好的整體效能。

lgwr(日誌寫入程式)後台程序負責把聯機重做日誌緩衝區的內容寫入聯機重做日誌檔案。lgwr分批將日誌條目寫入聯機重做日誌檔案。重做日誌緩衝區條目總是包含著資料庫的最新狀態,這是因為dbwr程序可以一直等待到把資料塊緩衝區中的修改資料塊寫入到資料檔案中。

lgwr是資料庫正常操作時唯一向聯機重做日誌檔案寫入內容並從重做日誌緩衝區直接讀取內容的程序。與dbwr對資料檔案執行的完全隨機訪問相反,聯機重做日誌檔案以序列形式寫入。如果聯機重做日誌檔案是映象檔案, lgwr同時向映象日誌檔案中寫內容。

lgwr後台程序以迴圈方式向聯機重做日誌檔案寫入;當填滿第乙個日誌檔案後,就開始向第二個日誌檔案寫入;第二個日誌檔案填滿後,再向第三個日誌檔案寫入。一旦最後乙個重做日誌檔案填滿, lgwr就開始重寫第乙個重做日誌檔案的內容。

當oracle以archivelog (歸檔日誌)模式執行時,資料庫在開始重寫重做日誌檔案之前先對其進行備份。這些歸檔的重做日誌檔案通常寫入乙個磁碟裝置中。也可以直接寫入磁帶裝置中,但是這往往要增加操作員的勞動強度。

這種歸檔功能由arch (歸檔程序)後台程序完成,利用該效能的資料庫在處理大資料事務時將遇到重做日誌磁碟衝突問題,這是因為當lgwr準備寫入乙個重做日誌檔案時, arch正準備讀取另乙個。如果歸檔日誌目標磁碟寫滿,資料庫還將遇到資料庫鎖定問題。此時,arch凍結,禁止lgw r寫入;從而禁止在資料庫中出現進一步的事務處理;這種情況一起延續到歸檔重做日誌檔案的空間清空為止。

ckpt (檢查點程序)用來減少執行例項恢復所需的時間。檢查點使dbwr把上乙個檢查點以後的全部已修改資料塊寫入資料檔案,並更新資料檔案頭部和控制檔案以記錄該檢查點。

當乙個聯機重做日誌檔案被填滿時,檢查點程序會自動出現。可以用資料庫例項的init.ora檔案中的log_checkpoint_interval引數來設定乙個頻繁出現的檢查點。

注意:檢查點程序並不像它的名字所暗示的那樣,真的建立檢查點--建立檢查點是主要是dbwn的任務。ckpt只是更新資料檔案的檔案首部,以輔助真正建立檢查點的程序(dbwn)。

oracle後台程序

後台程序負責保證資料庫的穩定工作,每當資料庫啟動時,這些後台程序會自動啟動,並且持續整 個例項的生命週期,每個程序負責乙個獨特的任務,表2 4 是一些最重要的後台程序。進 程縮 寫 描 述database writer dbwn 負責把髒資料寫回磁碟 log writer lgwr 負責把日誌資料寫...

oracle後台程序

dbwr dbwr執行將資料塊緩衝區寫入資料檔案的工作。下列情況dbwr會將髒塊寫入磁碟 lgwr lgwr負責將日誌緩衝區寫入到日誌檔案 觸發lgwr寫操作的條件 ckpt ckpt程序在檢查點出現時,對全部資料檔案的檔案頭進行修改,並在控制檔案中記錄該檢查點。smon smon負責例項啟動時執行...

oracle 常見後台程序

常見後台程序包括 資料庫寫程序 dbwn 將資料庫緩衝區快取記憶體中的經過修改的緩衝區 灰資料緩 沖區 以非同步方式寫入磁碟 日誌寫程序 lgwr 將日誌緩衝區中稱為重做資訊的恢復資訊寫入磁碟上的重做日 志檔案 檢查點程序 ckpt 在控制檔案和每個資料檔案頭中記錄檢查點資訊 系統監視器程序 smo...