I should say that this is a bit of a simplification, because Oracle enhanced the redo stream a few versions ago so that smon doesn't have to blindly replay ALL redo from the time of the last transaction: it can skip stuff it knows was committed and flushed to disk before the instance crash. But this is a detail that doesn't alter the general points made above significantly).Just for my own clarification,I think it's not the committed data that is skipped by SMON but the data that's checkpointed only. During the +2nd pass+ , the SMON would skip the buffers that were checkpointed before by DBWR and were marked with bwr . Am I right?
user10389461 wrote:I won't explain your original question as it's answered very nicely by Catfive but for the part that whether there is any activity that pushes the committed data right away into the datafiles, I shall just echo what's told already, the answer is a no. It's not that the committed data is not important for the datafile but what is more important is two things. One, the committed data must be written as fast as possible to the disk to make it saved which is done by LGWR using a very small unit of IO . Second, you do want first this to happen that there should be an image available to recover the file if there is any crash so before you do this, Oracle would be ensuring the recovery by writing the committed data to the log file. That's why at commit, there is no importance given to the datafile that it must be updated. As long as we hav ethe data in the redo log files and htey are intact, you can get the committed data whenever you want.
Hi DBA gurus,
I have a small doubt : If the datafiles contains both committed and uncommitted data then howcome there is only committed trans and uncommitted transx. will be rollbacked.
I know that while instance recovery SMON automatically does that but is there any other activity that triggers only committed data in datafiles or what initiates Instance recovery.