该系列专题为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为提交的事务处理返回一个成功代码,尽管数据缓冲区尚未写入磁盘中。