zoukankan      html  css  js  c++  java
  • 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。


    参考:官方文档
  • 相关阅读:
    CF432D Prefixes and Suffixes
    CF126B Password
    如何实现输入历史记录功能
    python工作中总结
    今 天看到我十年前的一篇技术文章,想到不知不觉学编程十多年了,,
    现在互联网好多bug 想到都烦
    【图论】割点
    【DP】【P1941】【NOIP2014D1T3】飞扬的小鸟
    【线段树】【P3740】 [HAOI2014]贴海报
    【单调队列】【P1714】 切蛋糕
  • 原文地址:https://www.cnblogs.com/alen-liu-sz/p/12975697.html
Copyright © 2011-2022 走看看