checkpoint检查点机制?

Checkpoint在一致性数据库关闭、实例恢复和数据库操作方面提供一种关键机制。有下面相关的含义:

显示检查点位置的数据结构,是重做流中的SCN,用来实例恢复必须开始的地方;检查点的位置有数据库缓冲区中最老的脏缓冲区决定,检查点位置作为一个指针指向重做流,存储在控制文件和每个数据文件头部;

在数据库缓冲区缓存将修改的数据库缓冲区写入磁盘;

检查点的目的

Oracle使用检查点完成下面目标:

减少实例或介质故障恢复所需的时间;

确保缓冲区缓存的脏缓冲区定时写到磁盘;

确保所有已提交的数据在一致性关闭时写到磁盘;

Oracle数据库何时初始化检查点

检查点进程(CKPT)负责将检查点写到数据文件头部和控制文件中,检查点在各种条件下都会发生,比如,Oracle数据库使用下面的检查点类型:

线程检查点(Thread checkpoints):在某个目标之前,数据库将在某个线程通过redo修改的所有缓冲区写到磁盘,数据库中所有线程检查点集是一个数据库检查点,线程检查点在以下情况下发生:一致的数据库关闭、ALTER system Checkpoint语句、在线日志切换和ALTER Database begin BACKUP语句;

表空间和数据文件检查点(Tablespace and data file checkpoints):表空间检查点是数据文件检查点的集合,表空间中每个数据文件一个检查点。这些检查点发生在将表空间置为read-only状态或将其正常离线,收缩数据文件或执行ALTER tablespace begin BACKUP语句;

增量检查点(Incremental checkpoint):增量检查点是一种线程检查点,部分目的是避免在联机重做日志切换时写入大量的数据块。DBWn至少每三秒检查一次以决定是否有工作要做。当DBWn写脏缓冲区时,它推进检查点的位置,引起CKPT将检查点位置写入到控制文件,但不写入数据文件头部。

其他类型的检查点包括实例和介质恢复检查点,还有schema对象drop或truncate时的检查点。

检查点进程

检查点进程(CKPT)使用检查点信息来更新控制文件和数据文件头部,并给DBWn发信号将块写入磁盘。检查点信息包括检查点位置、SCN,开始恢复的在线重做日志的位置等。

SCN

System Change Number,SCN的值是对数据库所做更改的逻辑时间点(point in time)。Oracle 为每个已提交的事务分配一个唯一的SCN。

了解更多技术知识欢迎关注小编!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值