ITPub博客

首页 > 数据库 > Oracle > checkpoint

checkpoint

原创 Oracle 作者:wanghao2979 时间:2018-03-06 09:49:14 0 删除 编辑
通俗的说checkpoint就像word的自动保存一样。




1. checkpoint RBA  (Redo Byte Address)


当一个checkpoint事件发生的时候,checkpoint进程会记录下当时所写的重做日志块的地址即RBA,此时记录的RBA被称为checkpoint RBA。从上一个checkpoint RBA到当前的checkpoint RBA之间的日志所保护的buffer cache中的脏块接下来将会被写入到数据文件当中去。


2. LRBA


数据缓存(buffer cache)中一个脏块第一次被更新的时候产生的重做日志记录在重做日志文件中所对应的位置就称为LRBA。


3. HRBA


数据缓存(buffer cache)中一个脏块最近一次被更新的时候产生的重做日志记录在重做日志文件中所对应的位置就称为HRBA。




Buffer checkpoint Queues (BCQ)


Oracle将所有在数据缓存中被修改的脏块按照LRBA顺序的组成一个checkpoint队列,这个队列主要记录了buffer cache第一次发生变化的时间顺序,然后有DBWn进程根据checkpoint队列顺序将脏块写入到数据文件中,这样保证了先发生变更的buffer能先被写入到数据文件中。BCQ的引入是为了支持增量checkpoint的


Active checkpoint Queue (ACQ)
ACQ中包含了所有活动的checkpoint请求。每次有新checkpoint请求是都会在ACQ中增加一条记录,ACQ记录中包含了相应的checkpoint RBA。checkpoint完成以后相应的记录将被移出队列。




BCQ与 ACQ ,在dump buffer 的时候,内容过多,就不进行分析了.




1.normal checkpoint


   1.1 checkpoint 的3个阶段
    第一阶段,checkpoint进程开始一个checkpoint事件,并记录下checkpoint RBA,这个通常是当前的RBA。
    第二阶段,checkpoint进程通知DBWn进程将所有checkpoint RBA之前的buffer cache里面的脏块写入磁盘。
    第三阶段,确定脏块都被写入磁盘以后进入到checkpoint进程将checkpoint信息(SCN)写入/更新数据文件和控制文件中。


   1.2 什么时候发生 normal checkpoint
     1.日志切换,通过ALTER SYSTEM SWITCH LOGFILE。
     2.DBA发出checkpoint命令,通过ALTER SYSTEM checkpoint。
     3.对数据文件进行热备时,针对该数据文件的checkpoint也会进行,ALTER TABLESPACE TS_NAME BEGIN BACKUP/END BACKUP。
     4.当运行ALTER TABLESPACE/DATAFILE READ ONLY的时候。
     5.SHUTDOWN命令发出时。


2. 增量 checkpoint


   2.1 增量 checkpoint 原理
       因为每次完全的checkpoint都需要把buffer cache所有的脏块都写入到数据文件中,这样就是产生一个很大的IO消耗,频繁的完全checkpoint操作很对系统的性能有很大的影响,为此Oracle引入的增量checkpoint的概念,buffer cache中的脏块将会按照BCQ队列的顺序持续不断的被写入到磁盘当中,同时CKPT进程将会每3秒中检查DBWn的写入进度并将相应的RBA信息记录到控制文件中。
       有了增量checkpoint之后在进行实例恢复的时候就不需要再从崩溃前的那个完全checkpoint开始应用重做日志了,只需要从控制文件中记录的RBA开始进行恢复操作,这样能节省恢复的时间。


   2.2  增量checkpoint 特点
        1.增量checkpoint是一个持续活动的checkpoint。
        2.没有checkpoint RBA,因为这个checkpoint是一直都在进行的,所以不存在normal checkpoint里面涉及的checkpoint RBA的概念。
        3.checkpoint advanced in memory only
        4.增量checkpoint所完成的RBA信息被记录在控制文件中。
        5.增量checkpoint可以减少实例恢复时间


   2.3  增量 checkpoint 与 完全checkpoint的区别
        1.完全checkpoint会将checkpoint的信息写入到控制文件以及数据文件头中
        2.增量checkpoint只会将RBA信息写入到控制文件中。






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

请登录后发表评论 登录
全部评论
主要负责客户现场exadata与exalogic设备的维护工作, 擅长于ORACLE数据库环境/高可用环境的搭建及故障诊断, 并且也获有 11g ocp 证书,10g ocm 证书

注册时间:2017-01-10

  • 博文量
    90
  • 访问量
    84716