今天羣裏有人問關於數據庫進程的事情,當然,他對oracle的後臺進程不是很熟悉。當時我舉了個例子,是關於LGWR,但是由於我學藝不精,當時只想起來了這個進程會被commit激發,實在是貽笑大方。回來以後查了一下書,於是記錄在此,也算是和大家的分享吧。
LGWR被觸發的情況:
1 commit。在提交之後,oracle會先把確認信息寫到日誌緩衝區裏,然後再激發LGWR,將日誌緩衝區內的Redo Entry寫到聯機重做日誌文件裏。
2 如果尚在日誌緩衝區內的Redo Entry超過三分之一以上日誌緩衝區大小的話,就會觸發LGWR,將Redo Entry寫到聯機重做日誌文件裏。
3 LGWR每三秒觸發一次。
4 DBWR被觸發,但是髒緩衝相關的Redo Entry還沒有寫到聯機重做日誌文件裏,這個時候會首先讓LGWR將Redo Entry寫到聯機重做日誌文件裏,之後DBWR纔會寫髒數據到數據文件裏。
把這個記錄在雲端,以備不時之需。