ckpt 的 理解

何时触发检查点

检查点作写什么:

[@more@]

切换日志会触发checkpoint
什么是checkpoint?
checkpoint是一个数据库事件,它将已修改的数据从高速缓存刷新到磁盘,并更新控制文件和数据文件。

什么时候发生checkpoint?
我们知道了checkpoint会刷新脏数据,但什么时候会发生checkpoint呢?以下几种情况会触发checkpoint。
1.当发生日志组切换的时候
2.当符合LOG_CHECKPOINT_TIMEOUT,LOG_CHECKPOINT_INTERVAL(8i),fast_start_io_target,fast_start_mttr_target(9i)参数设置的时候
3.当运行ALTER SYSTEM SWITCH LOGFILE的时候
4.当运行ALTER SYSTEM CHECKPOINT的时候
5.当运行alter tablespace XXX begin backup,end backup的时候
6.当运行alter tablespace ,datafile offline的时候;

所以,我们通过设置合适大小的日志组,日志文件来 控制 ckpt 的切换频率。
一个非常真实的案例:
cpu 的利用率非常高,top 看的时候,有个进程就是oracle 后台进程ora_ckpt_ 占用的cpu 资源比非常大,
通过查询其它的情况,通过加大日志文件,增加日志组,该性能问题得到解决。

当日志切换的时候alter system switch logfile 的时候 : oracle 需要作一下的事情:

1 选择要切换的日志文件 :
ORACLE 从控制文件获取日志文件的信息,选择日志序列号最小的那个,一旦选择这个日志,设置其状态,使之成为
下一个日志文件
2 刷新当前日志并停用重作日志生成:
3 在控制文件,数据文件进行切换并关闭日志。
4 打开新的日志文件:使之成为current ,继续接收日志读写。

ckpt 需要做的工作:

1 捕获当前检查点信息
2 标识脏数据区
3 刷新脏数据区 dbw 进程把脏数据写到数据文件中,所以检查点的快慢很大程度上取决月dbw 的快慢
4 更新数据文件和控制文件

同时理解ckpt 需要理解scn

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

转载于:http://blog.itpub.net/66233/viewspace-995035/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值