【OCP最新題庫解析(052)–題52】 Which two events always request the LGWR

  • 2019 年 10 月 10 日
  • 筆記

該系列專題為2018年4月OCP-052考題變革後的最新題庫。題庫為小麥苗解答,若解答有不對之處,可留言,也可聯繫小麥苗進行修改。

註:OCP-052最新題庫完整詳細解答版請聯繫小麥苗私聊。解題不易,請大家尊重原創。

QQ:646634621

QQ群:547200174、618766405

微訊號:lhrbestxh

Q

題目

Which two events always request the LGWR to write?

A. When DBWn writes dirty buffers.

B. When a log switch occurs.

C. When a checkpoint occurs.

D. When LGWR is notified by a server process that performs a COMMIT or ROLLBACK.

E. When PMON restarts a serve process.

A

答案

Answer:AD

日誌寫進程(LGWR)負責管理重做日誌緩衝區,即將重做日誌緩衝區條目寫入磁碟上的重做日誌文件。LGWR會將上次寫入後複製到緩衝區中的所有重做條目寫入重做日誌文件。

重做日誌緩衝區是循環緩衝區。當LGWR將重做日誌緩衝區中的重做條目寫入重做日誌文件時,伺服器進程隨後可以複製新條目,覆蓋重做日誌緩衝區中的那些已寫入磁碟的條目。LGWR的寫入速度通常足夠快,可以確保緩衝區中始終有空間可供新條目使用,即使對重做日誌的訪問量很大時也是如此。LGWR將緩衝區的一個連續部分寫入磁碟。

LGWR在以下情況下執行寫操作:

用戶進程提交事務處理時

重做日誌緩衝區的三分之一已滿時

DBWn進程將經過修改的緩衝區寫入磁碟(如果需要)之前

每隔3秒

在DBWn可以寫入經過修改的緩衝區之前,必須先將與緩衝區更改相關聯的所有重做記錄寫入磁碟(先行寫協議)。如果DBWn發現一些重做記錄尚未寫入,則會通知LGWR將這些重做記錄寫入磁碟,並等待LGWR完成重做日誌緩衝區的寫入操作,然後才會寫出數據緩衝區。LGWR將向當前的日誌組進行寫入。如果該組中的某個文件已損壞或不可用,LGWR將繼續寫入到該組中的其它文件,並在LGWR跟蹤文件和系統告警日誌中記錄一個錯誤。如果某個組中的所有文件均已損壞,或者該組由於尚未歸檔而不可用,則LGWR無法繼續工作。

當用戶發出COMMIT語句時,LGWR會將一條提交記錄放在重做日誌緩衝區中,並立即將該記錄隨同事務處理的重做日誌一起寫入磁碟中。對數據塊進行的相應更改將延遲,直到能夠更為高效地寫入這些更改時才會執行。這稱為「快速提交機制」。包含事務處理提交記錄的重做條目的原子寫是單個事件,該事件可以確定事務處理是否已提交。Oracle DB為提交的事務處理返回一個成功程式碼,儘管數據緩衝區尚未寫入磁碟中。