Syntax option:
CHECKPOINT INTERVAL IS n BLOCKS
You can limit how many transactions the database recovery process
(DBR) must redo by setting a checkpoint interval. Setting a
checkpoint interval instructs Oracle Rdb to periodically write
modified pages to disk. This shortens recovery time.
The value you assign to the checkpoint interval specifies the
number of blocks the .aij file is allowed to increase to before
updated pages are transferred. For example, if you set the
checkpoint interval value equal to 100, all processes transfer
updated pages to the disk when 100 blocks were written to
the .aij file since the last checkpoint. Thus all processes
contribute to .aij growth.
If no checkpoint interval is established and a process completes
1000 transactions but fails during number 1001, the DBR must redo
transactions 1 through 1000 and undo number 1001.
When a process attaches to the database, it writes a checkpoint
record to the .aij file and notes the virtual block number (VBN)
of the .aij file at which the checkpoint record is located. If
the checkpoint is located at VBN 120 and the checkpoint interval
is 100 blocks, the process checkpoints again when VBN 220 is
reached.
Because all processes contribute to .aij file growth, a process
may be able to commit many transactions before checkpointing
if update activity by other processes is low. Conversely, if a
process' first transaction is long and if update activity by
other processes is high, the process may be forced to checkpoint
when it commits its first transaction.
When the database checkpoint interval value is reached, Oracle
Rdb executes the following steps:
1. Writes updated pages to the disk.
2. Writes a checkpoint record to the .aij file.
3. Updates the run-time user process block (RTUPB) for each
process to indicate where the checkpoint record is stored
in the .aij file.
The RTUPB is a data structure in the database root file that
maintains information on each process accessing the database.
The database recovery process (DBR) uses the RTUPB checkpoint
entry to determine where in the .aij file recovery must start.