The instance abnormally terminates because of a power outage. Which statement is true
about redo log files during instance recovery?
A.
Online and archived redo files are required to accomplish instance recovery
B.
All redo log entries after the last checkpoint are applied from redo log files to data files
C.
Inactive and current redo log files are required to accomplish recovery
D.
All redo log entries recorded in the current log file until the checkpoint position are
applied to data files
Answer B, its probably the best answer here but it is not, in my opinion, the right answer.
The redo is not applied directly to the data files, because instance recovery requires …
1. Roll forward phase, i.e. it does a “buffer cache” recovery, using all the redo log entries since the SCN of the last checkpoint. This in effect rebuilds the “buffer cache” to the state it was in before the crash for both COMMITted and unCOMMITted transactions.
It reinstates all changes to data blocks and changes to undo blocks via
– the appropriate block is loaded from the datafiles into the database buffer cache
– the change from the redo log file is applied to the buffers
– it populates the undo segment that was protecting unCOMMITted transactions
2. Rollback phase, this happens after the database is “open for business as usual”.
Any …
– COMMITted transactions not yet saved to the datafiles at the time of the crash, are simply reinstated into memory and also into the undo segments, these will eventually be written out by DBWR, just as in a normal database situation.
– unCOMMITted transactions that had been written to the datafiles, are rolled back as the undo segments are applied i.e. “transaction recovery”
Peace to all
I am happy with the D answer
https://docs.oracle.com/cd/A87860_01/doc/server.817/a76965/c28recov.htm
Control files also record information about checkpoints.
Every three seconds, the checkpoint process (CKPT) records information in the control file about the checkpoint position in the online redo log.
This information is used during database recovery to tell Oracle that all redo entries recorded before this point in the online redo log group are not necessary for database recovery; they were already written to the datafiles.