哪些操作引发conventional checkpoint:
alter system checkpoint
shutdown(除了abort)
日志切换(包括运行alter system switch logfile命令)
日志切换触发的是normal checkpoint,而不是大家所说的增量checkpoint,只不过log switch checkpoint的优先级非常低,当一个log switch checkpoint发生的时候它并不会立即的通知DBWn进程去写数据文件,但是当有其它原因导致checkpoint或者是写入数据文件的RBA超过log switch checkpoint的checkpoint RBA的时候,这次的log switch checkpoint将会被标记成完成状态,同时更新控制文件和数据文件头。switch logfile会触发ckpt进程工作,但是switch logfile并不等待checkpoint完成。
哪些操作引发Incremental checkpoint:
log_checkpoint_interval
设定两次checkpoint之间重做日志块(重做日志块和系统数据块是一样的)数,当重做日志块数量达到设定值的时候将触发checkpoint。
log_checkpoint_timeout
设定两次checkpoint之间的间隔时间,当超时值达到时增量checkpoint将被触发。Oracle建议不用这个参数来控制,因为事务(transaction)大小不是按时间等量分布的。将此值设置成0时将禁用此项设置。
fast_start_io_target
因为log_checkpoint_interval主要看的时候重做日志块的数量,并不能反应buffer cache中脏数据块的修改,因此Oracle又引入了这个参数来实现当脏数据块达到一定数量的时候触发checkpoint,不过此参数实际上控制的是恢复时所需IO的数量。
fast_start_mttr_target
|
通过查看V$INSTANCE_RECOVERY动态性能视图可以查看一些MTTR相关的信息。
SELECT TARGET_MTTR,ESTIMATED_MTTR,CKPT_BLOCK_WRITES,CKPT_BLOCK_WRITES FROM V$INSTANCE_RECOVERY;
TARGET_MTTR 用户设置的参数FAST_START_MTTR_TARGET的值. ESTIMATED_MTTR 根据目前脏块数目和日志块数目,评估的现在进行恢复所需要的时间. CKPT_BLOCK_WRITES 检查点写完的块数目. CKPT_BLOCK_WRITES 额外的因为检查点引起的数据库写入操作 (因为不必要的检查点的产生,设置一个非常小的系统恢复时间将会对性能产生负面影响,为了帮助管理员监测这个参数设置较小时对数据库的影响,这个视图显示了这个列)
检查点在下一次触发时写上一次完成的检查点。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20844861/viewspace-589034/ ,如需转载,请注明出处,否则将追究法律责任。