About Redo Block Address (RBA)
An RBA (Redo Block Address) points to a specific phyical location within a redo logfile . The "tail of the log" is the RBA of the most recent redo entry written to the redo log file . It is ten bytes long and has three components .
the log file sequence number ( 4 bytes)
the log file block number ( 4 bytes)
the byte offset into the block at which the redo record starts (2 bytes)
For Example : RBA [0x775.2.10] maps to Log squence , Block number with byte offset .
There are different types of RBA available in SGA , the following are :
Low RBA : Dirty buffer contains first redo change address called Low RBA. From x$bh we can check low RBA.
High RBA : Dirty buffer contains last and most recent redo changes address called High RBA. From x$bh we can check High RBA.
Checkpoint RBA : DBWR has written buffers from checkpoint queue are pointing to checkpoint RBA while incremental checkpoint is enabled. This RBA copies in to control file’s checkpoint progress record. When instance recovery occurs that time it starts from checkpointing RBA from control file. We can check this RBA from x$targetrba (sometimes from x$kccrt).
On-disk RBA : That RBA which was flushed in to online Redo Log File on disk. This RBA recorded in to control file record section. We can check from x$kcccp for on-disk RBA (sometimes from x$targetrba).
How RBA comes in Pictures :
CKPT records checkpoint information to controlfile for maintaining book keeping information like checkpoint progress . Each instance checkpoint refers to some RBA (called checkpoint RBA) whose redo prior to this RBA have been written to disk. Hence recovery time is difference between checkpoint RBA and end of the redo log .
Given a checkpoint RBA, DBWR writes buffers from the head of the queue until low RBA of the buffer at the head of the checkpoint queue is greater than the checkpoint RBA . At this point ,CKPT can record this checkpoint progress record in control file (phase 3).
PHASE(1) process initiating the checkpoint (checkpoiting RBA or current RBA is marked) (The RBA of the last change made to a buffer) at the time reuqest is initiated.
PHASE (2) DBWR writes all required buffers i.e all buffers that have been modified at RBAs less than or equal to the checkpoint RBA. After all required buffers have been written, in
PHASE (3) CKPT process records the completion of the checkpoint in control file.
The checkpoint RBA is copied into the checkpoint progress record of the controlfile by the checkpoint heartbeat once every 3 seconds. Instance recovery, when needed, begins from the checkpoint RBA recorded in the controlfile. The target RBA is the point up to which DBWn should seek to advance the checkpoint RBA to satisfy instance recovery objectives.
The term sync RBA is sometimes used to refer to the point up to which LGWR is required to sync the thread. However, this is not a full RBA -- only a redo block number is used at this point.
An RBA (Redo Block Address) points to a specific phyical location within a redo logfile . The "tail of the log" is the RBA of the most recent redo entry written to the redo log file . It is ten bytes long and has three components .
the log file sequence number ( 4 bytes)
the log file block number ( 4 bytes)
the byte offset into the block at which the redo record starts (2 bytes)
For Example : RBA [0x775.2.10] maps to Log squence , Block number with byte offset .
There are different types of RBA available in SGA , the following are :
Low RBA : Dirty buffer contains first redo change address called Low RBA. From x$bh we can check low RBA.
High RBA : Dirty buffer contains last and most recent redo changes address called High RBA. From x$bh we can check High RBA.
Checkpoint RBA : DBWR has written buffers from checkpoint queue are pointing to checkpoint RBA while incremental checkpoint is enabled. This RBA copies in to control file’s checkpoint progress record. When instance recovery occurs that time it starts from checkpointing RBA from control file. We can check this RBA from x$targetrba (sometimes from x$kccrt).
On-disk RBA : That RBA which was flushed in to online Redo Log File on disk. This RBA recorded in to control file record section. We can check from x$kcccp for on-disk RBA (sometimes from x$targetrba).
How RBA comes in Pictures :
CKPT records checkpoint information to controlfile for maintaining book keeping information like checkpoint progress . Each instance checkpoint refers to some RBA (called checkpoint RBA) whose redo prior to this RBA have been written to disk. Hence recovery time is difference between checkpoint RBA and end of the redo log .
Given a checkpoint RBA, DBWR writes buffers from the head of the queue until low RBA of the buffer at the head of the checkpoint queue is greater than the checkpoint RBA . At this point ,CKPT can record this checkpoint progress record in control file (phase 3).
PHASE(1) process initiating the checkpoint (checkpoiting RBA or current RBA is marked) (The RBA of the last change made to a buffer) at the time reuqest is initiated.
PHASE (2) DBWR writes all required buffers i.e all buffers that have been modified at RBAs less than or equal to the checkpoint RBA. After all required buffers have been written, in
PHASE (3) CKPT process records the completion of the checkpoint in control file.
The checkpoint RBA is copied into the checkpoint progress record of the controlfile by the checkpoint heartbeat once every 3 seconds. Instance recovery, when needed, begins from the checkpoint RBA recorded in the controlfile. The target RBA is the point up to which DBWn should seek to advance the checkpoint RBA to satisfy instance recovery objectives.
The term sync RBA is sometimes used to refer to the point up to which LGWR is required to sync the thread. However, this is not a full RBA -- only a redo block number is used at this point.