常规检查点和增量检查点

比较常规检查点和增量检查点的区别[@more@]

1、常规检查点(完全检查点)

Oracle 8之前采用。

buffer cache中,通过dirty list(脏块列表)管理修改过的bufferbufferdirty list上无序排列,并且由于buffer被不断地修改,在列表上的位置会不断变化,ckpt触发时,需要将所有dirty buffer写入磁盘,并且将检查点信息记录到控制文件和数据文件头部。

会带来很大的I/O压力。

2、增量检查点

Oracle 8及之后版本采用。

增加checkpoint queue,将dirty buffer记录到checkpoint queue,并按照low rba()第一次对该buffer进行修改的redo byte address)进行排序,即使该buffer被多次修改,在checkpoint queue上的顺序不会改变(相对于lrba,被修改后的rba被称为hrba)

执行增量检查点是,ckptlrba由低到高的顺序,将checkpoint queue中的buffer写到磁盘。增量检查点信息不会记录到控制文件中的数据文件部分,也不会记录到数据文件头部,只是记录控制文件检查点SCNcontrolfile checkpoint at scn),并根据增量检查点的写出增进RBA信息。

减少数据库性能,checkpoint queuerba和检查点关联,可以以此来确定恢复的起点。

检查点队列通过latch保护:

select name,gets,misses from v$latch where name = 'checkpoint queue latch';

包括了多个子latch

select name,child#,gets,misses,sleeps from v$latch_children where name='checkpoint queue latch';

3、观察增量检查点的写出增进

第一次dump controlfile:

Controlfile Checkpointed at scn: 0x0000.00084096 08/12/2010 14:29:08

增量检查点:只记录在controlfile中。

THREAD #1 - status:0x2 flags:0x0 dirty:111

low cache rba:(0x9.a3d4.0) on disk rba:(0x9.a56c.0)

on disk scn: 0x0000.0008408a 08/12/2010 14:27:12

注:low cache rda - 恢复的起点,代表之前的rba所对应的dirty buffer已经写入数据文件;

On disk rba:恢复的重点,代表已经写入到redo log文件的最新的redo日志。

第二次dump controlfile:

Controlfile Checkpointed at scn: 0x0000.00084185 08/12/2010 14:32:00

增量检查点发生改变。

THREAD #1 - status:0x2 flags:0x0 dirty:1728

low cache rba:(0x9.a57a.0) on disk rba:(0x9.10b15.0)

on disk scn: 0x0000.000841a9 08/12/2010 14:31:48

脏块数量和low rbaon disk rba都发生改变,到数据文件头中的checkpoint scn不发生改变。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/56630/viewspace-1036692/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/56630/viewspace-1036692/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值