conventional checkpoint
将dirty list中的脏数据全量写入数据文件中。先提示dbwr写脏数据,等待dbwr写完脏数据,然后执行文件头和控制文件的写操作。
哪些操作引发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:
完整的incremental checkpoint
数据库将脏数据按照checkpoint queue中Low RBA的顺序增量渐进写出,并且ckpt进程进行轻量级更新,并不会改写控制文件中数据文件的检查点(stop scn)和数据文件头部的检查点(begin scn).
哪些操作引发Incremental checkpoint:
- 间隔时间:可指定每隔多长时间发生一次Incremental checkpoint
- 最小日志的90%:为了不发生日志等待(检查点不会滞后整个日志文件),两个相邻检查点之间的跨度不超过最小日志的90%。
增量检查点的设置和相关的数据字典
通过查看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 额外的因为检查点引起的数据库写入操作 (因为不必要的检查点的产生,设置一个非常小的系统恢复时间将会对性能产生负面影响,为了帮助管理员监测这个参数设置较小时对数据库的影响,这个视图显示了这个列)部分的incremental checkpoint
数据库将相应表空间或者对象的脏数据按照file queue(文件队列)或者object queue(对象队列)中Low RBA的顺序增量渐进写出,并且ckpt进程进行轻量级更新,并不会改写控制文件中相应表空间或者对象的数据文件的检查点(stop scn)和相应表空间或者对象的数据文件头部的检查点(begin scn),只是记录了控制文件检查点的scn(controlfile checkpoint scn)并且根据检查点写出增进的RBA。
-
read only
-
offline
-
begin backup
-
对数据库对象的某些操作
要注意的是
检查点在下一次触发时写上一次完成的检查点。
引入增量检查点后,数据库可已将以前的全
量写出变更为渐进写出,从而极大的降低了对数据库性能的影响
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20844861/viewspace-589034/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20844861/viewspace-589034/