原帖由 BTxigua 于 2008-9-2 14:26 发表
1、完全检查点
发生完全检查点只有两种情况:
1)DBA手工执行alter system checkpoint
2)数据库正常shutdown(immediate,transcational,normal)
完全检查点的任务就是通知DBWR将所有的dirty buffer写入到数据文件中,同时将最新的checkpoint scn更新到所有的数据文件头部及控制文件。
2、增量检查点
增量检查点发生的两种情况:
1)CKPT进程会监控着检查点队列的长度,当检查点队列的长度达到一定限制时,CKPT会通知DBWR写脏块.CKPT会根据参数的设置和I/O的速度以及繁忙程度,计算出来一个Target rba(目标rba),DBWR会沿着检查点队列,将所有Target rba之前的脏块刷新到磁盘.当CKPT通知完DBWR Target rba后,CKPT的任务就结束了.他并不会等待DBWR写完所有的Target rba之前的脏块.
2)每3秒发生一次增量检查点,ckpt将检查dbwn写入的进度,将重做条目中尚未写入数据文件的最早的lrba(checkpoint position)写入到控制文件中。这里的checkpoint position也时instance recovery的起点。这个每3秒发生一次的增量检查点,也称为检查点的心跳(checkpoint heartbeat)。
3、全局检查点和局部检查点
这两个是针对RAC的多节点和单节点的。
4、文件检查点
针对某个特定的数据文件发生的检查点。
比如alter tablespace users begin backup;
这种情况下将单独触发对users表空间的数据文件发生一个检查点。
学习了,学习了
|