Can someone help me out to understand the Instance Recovery Process
561863Oct 17 2008 — edited Oct 19 2008First of all thanks for all those who answer my post, all the help is really apreciated.
I would like to understand the Instance Recovery Process more deeply then the Administration Guide of Oracle Docs can tell me.
What I have until now of the Instance Recover is:
1. Oracle determines what files are not synchronized.
2. All the data from the redo log files is applied to the redo log buffers. The buffers do not participate on the normal database transactions because they are marked for recover.
All this data is applied to the Datafiles (commited and uncommited transactions).
This step is called rolling-forward.
3. Undo are used to roll back uncommited transactions. After this step the datafiles will not have uncommited data on them. The instance at this point is available to the users but the blocks being used are not.
4. All the files are now sync.
My questions are:
-Step 1, which process determines what files are not sync? Do the Smon reads up the controlfile and the datafile headers and then make a list of who is not sync?
-Step 2, What is the process that reads up the information of the redo log files and fill the redo log buffer? Is this the CKPT? And how he is warned that he could start reading the files after the step 1 is made? There is an semaphore that is set for it?
-Step 2, What process applies the commited and uncommited information of the redo log buffer to the datafiles? When he start to apply this information the instance is already partially available to users?
-Step 3, What is the process that reads up the Undo to rollback the uncommited transactions? This process must be made after the Step 2 is complete because could be blocks from the undo tablespace on the redo log buffers right? And when this step 3 starts, the process is triggered by another semaphore?
-When the step 3 is done, what process changes the status of the database from partially open to open, or this is just how we call it when the database has still datablocks marked for recovery?
Thanks again in advance for the help, there are no practical reasons to known this information, I'm just a curious person who could not find this information on the google..
Ricardo Rodriguez