增量检查点
增量检查点并不更新控制文件中系统SCN、文件SCN、结束SCN以及数据文件头部的开始SCN,而是每隔3秒由CKPT进程将检查点队列中第一个脏块所对应的LRBA地址(即检查点的位置,前滚起点)记录到控制文件中.
但如果是由日志切换所引起的增量检查点,则同时还会将LRBA地址记录到每个数据文件头中
引起增量检查点的条件有:
fast_start_mttr_target参数(mttr:Mean Time To Recovery 快速启动平均故障恢复时间)
该参数控制数据库对单个实例执行崩溃恢复所花费的时间量(以秒为单位,默认为0,最大值为3600)。
启用快速启动检查点功能时,Oracle将自动根据工作负载情况计算增量检查点的频率(间接影响DBWn进程的频率),以便达到请求的MTTR。如果将该值设置为0, 将禁用此功能。(但工作负载检查无法关闭)
log_checkpoint_timeout参数用于表示检查点位置和重做日志文件末尾之间的时间间隔,以秒为单位,默认情况下是1800秒。
fast_start_io_target参数用于表示数据库发生Instance Recovery的时候需要产生的IO总数,它通过v$filestat的AVGIOTIM来估算的。(9i以后已经废弃)
SQL> alter system set fast_start_mttr_target=90;
System altered.
SQL> show parameter fast_start_mttr_target
NAME TYPE VALUE
------------------------------------ ----------- ---------
fast_start_mttr_target integer 90
日志切换
SQL> alter system switch logfile;
System altered.
部分检查点
触发DBWn进程将buffer cache中相关的数据脏块都会写入相应的数据文件
引起部分检查点的条件有:
表空间下线/只读
SQL> ALTER TABLESPACE tablespace_name OFFLINE;
SQL> ALTER TABLESPACE tablespace_name READ ONLY;
热备份(热备份表空间的时候,为了避免redo log被覆盖,数据库必须运行在归档模式下)
SQL> ALTER TABLESPACE tablespace_name BIGEN BACKUP; //进入热备份状态(锁住数据文件头,并记录块变化日志)
SQL> ! cp
SQL> ALTER TABLESPACE tablespace_name END backup; //退出热备份(解锁数据文件头)