Hi All,
Suppose that we have 4 different log files. When log file 1 gets full then LGWR switch to log file 2 and Oracle initiated a checkpoint. At this point all modified data blocks in the buffer cache will be written into disk. DBWR get all modified blocks and give it to the OS process in order to write these blocks into disk. The most important thing is log file 1 cannot be re-used by LGWR until all modified blocks are flushed protected by log file 1. So, every log file switch, this scenario happen. Please correct me, if I am wrong.
My question is, in rare cases Checkpoint not complete error might be appear in the alert log file. That means log file 1 is tried to use again before all modified blocks are flushed. However, isn't it very odd? I mean, in order to reuse log file 1, LGWR should finish the other three log files. Suppose we have 4 log files. After first switch, there should be two more switches. For each switch checkpoint happen. After complete the whole log files. When LGWR start to reuse log file 1, shouldn't all modified blocks have already been written by this time?
Version: Oracle 11g R2
Thanks in advance
Regards