Fast-Start Time-Based Recovery (FSTBR) was introduced with Oracle9i for the purpose of being able to define a target mean time to recover (MTTR) in the case of crash or instance recovery. Previously, various parameters (log_checkpoint_interval, log_checkpoint_timeout, fast_start_io_target, and db_block_max_dirty_target) needed to be set to try and control the overall MTTR from an instance or database crash. Setting these parameters was not very exact, and it was difficult to translate them into a target MTTR.

With FSTBR, a desired MTTR for the database is defined in seconds. This is done using the FAST_START_MTTR_TARGET parameter. Once this parameter is set, Oracle will configure internal database settings to try and maintain this requirement.

Note: The FAST_START_MTTR_TARGET parameter provides only an estimated MTTR value. Several factors such as IO contention can cause the actual recovery time to extend beyond the requested MTTR.

The FAST_START_MTTR_TARGET parameter can have a value set anywhere from 0 to 3600 seconds. (Setting this value to zero disables this feature, but, other parameters such as LOG_CHECKPOINT_INTERVAL are still in effect). The lower the value, the more often the database will be checkpointing. This in turn can cause performance issues. This parameter is dynamic, so, it can be altered while the database is still operating. This makes it easier to tune the performance/MTTR balance.

The FAST_START_MTTR_TARGET is calculated based on a number of assumptions made by Oracle9i when the database is first opened. Because the value is dynamic and adaptive, it will be adjusted over time as the databse is used. The longer the database is up and running, the better Oracle will be at establishing checkpoint rates that maintain the requested MTTR.

Oracle9i maintains this target MTTR by continuously checkpointing the database, as required, and advancing the checkpoint counter that indicates the position in the redo log that was last checkpointed. Oracle maintains the checkpointing operation so that it will write out changed data at a rate that maintains the requested MTTR. During instance or crash recovery, Oracle9i will start recovering the database beginning at the checkpoint counter address, rather than at the point of the last normal checkpoint (such as occurs with redo log switches), thus reducing the overall time required to perform recovery.

Fast Start Time Based Recovery Related Parameter Changes

With the introduction of FSTBR, some parameter changes have been effected. The following table indicates the changes that have occurred:

Parameter Name Change in 9i
db_block_max_dirty_target This parameter is now obsolete.
fast_start_io_target If set, overrides values calculated by setting fast_start_mttr_target.
log_checkpoint_interval If set, overrides values calculated by setting fast_start_mttr_target.
log_checkpoint_timeout Unchanged

Fast Start Time Based Recovery Related View Changes

The V$INSTANCE_RECOVERY view has changed in Oracle9i to accommodate the new functionality of FSTBR. New columns include:

  • TARGET_MTTR The current setting of the fast_start_mttr_target parameter value. This might not always be the same as the requested parameter value.
  • ESTIMATED_MTTR The current estimate for database MTTR
  • CKPT_BLOCK_WRITES The number of blocks written by checkpoint writes to try to maintain the target MTTR