In order to understand why the recovery of an instance is necessary, we need to know following background:
- Log Journal
- System Schange Number
Log JournalOracle save all changes in a logbook. This logbook are Redo Log Files (sometimes the logbooks are also called Transaction Logs). The Redo Log File works in Groups.
There are at least two Groups. Groups are made of Members.
There are one or more member in each Group. All members in a Group are copies.
Time to time, a Group is identified by a different number called Sequence. The Sequence is the chapter of a logbook.
There is always a CURRENT Group: it is the actual chapter where Oracle is writing. A Group can be ACTIVE. This mean that the information in that chapter are necessary to rebuild the last moments of life in case of unexpected death (abort).
System Change NumberOracle use numbers in order to measure it life. These numbers are integer and called SCN (System Change Number).
Each SCN is associated with time. When the changes are forever (commit), Oracle save this number in the logbook.
The SCN is unique into database, but it has a different name based on the context it is used.
For example the V$LOG view, show 2 SCN: FIRST_CHANGE# and NEXT_CHANGE#. Their name are “Low SCN” and “High SCN”.
Oracle release the SCN after a COMMIT. What I mean is that Oracle release the SCN when the changes are made final.
System Change Number is a too long name, so it called simply “Change”.
RACIn RAC, each insance have it Redo Log Group. One Group is called “Thread”. A Group is unique in the database. Each Thread have it CURRENT Group.
The SCNs are unique in all database. Each instance always know the SCN of the other instances.
- I modified some phrases. I'm sorry, but I don't speak well english
- Also I wrote the wrong name of High SCN, so I changed the LAST_CHANGE# with NEXT_CHANGE#.