zoukankan      html  css  js  c++  java
  • LGWR和DBWn的触发条件

    Rolling Forward(前滚)

    Oracle启动实例并加载数据库,然后通过Online Redologs中的重做日志,重现实例崩溃前对数据库的修改操作。在恢复过程中对于已经提交的事务,但尚未写入数据文件的那部分数据全部写入数据文件.


    Rolling Back(回滚)

    Rolling Forward之后,虽然已经提交的修改操作更改的数据都已经被写入数据文件,但在实例崩溃时,部分未提交的事务操作的数据也被写入到数据文件,这些事务必须被撤销.

     

     

    触发LGWR进程的条件有: 
      1. 用户提交 
      2. 有1/3重做日志缓冲区未被写入磁盘 
      3. 有大于1M的重做日志缓冲区未被写入磁盘 
      4. 3秒超时 
      5. DBWR 需要写入的数据的SCN大于LGWR记录的SCNDBWR 触发LGWR写入。 

     

    触发CheckPoint(检查点条件有很多,比如

    1. 通过正常事务处理或者立即选项关闭例程时(shutdown immediate或者Shutdown normal), 

    2. 当通过设置初始化参数:

    LOG_CHECKPOINT_INTERVAL,

    LOG_CHECKPOINT_TIMEOUT ,

    FAST_START_IO_TARGET 强制时;
    3. 当数据库管理员手动请求时:

    ALter system checkpoint;
    alter tablespace ... offline;
    4. 每次日志切换时;

    alter system switch logfile

     

    注意:

    1. alter system switch logfile也将触发完全检查点的发生。
    2. alter database datafile ... offline 不会触发检查点进程

    如果是单纯的offline datafile,那么将不会触发文件检查点,只有针对offline tablespace的时候才会触发文件检查点,这也是为什么online datafile需要media recoveryonline tablespace不需要。

     

    对于表空间的offline后再online这种情况,最好做个强制的checkpoint比较好。

     

    关于offline datafile tablespace 的区别也可以参考我的blog

    ALTER DATABASE 与 ALTER TABLESPACE OFFLINE的区别

    http://blog.csdn.net/tianlesoftware/archive/2009/11/30/4898800.aspx

     

     

    以上的触发条件将触发完全检查点,促使DBWR 将检查点时刻前所有的脏数据写入数据文件。另外,一般正常运行期间的数据库不会产生完全检查点

     

    下面很多事件将导致增量检查点,比如:

    1. 在联机热备份数据文件前,要求该数据文件中被修改的块从DB_Buffer 写入数据文件中。所以,发出这样的命令:
    ALTER TABLESPACE tablespace_name BIGEN BACKUP & end backup; 也将触发和该表空间的数据文件有关的局部检查点;

    2. 另外, 
    ALTER TABLESPACE tablespace_name READ ONLY;
    ALTER TABLESPACE tablespace_name OFFLINE NORMAL;
    等命令都会触发增量检查点

     

     

    检查点发生之后数据库的数据文件、控制文件处于一致状态的含义是不需要进行 介质恢复,只表示数据文件头一致,但是并不表示数据文件内容一致,因为数据文件内容可能在没有发生检查点的其它情况下的dbwr写数据文件,这样数据文件内容就不一致,若掉电需要进行崩溃恢复。

     

    触发DBWR进程的条件有: 
    1.  DBWR超时,大约3秒 
    2. 系统中没有多余的空缓冲区来存放数据 
    3.  CKPT 进程触发DBWR

  • 相关阅读:
    centos6.5-搭建LNMP
    mysql组织结构
    mysql主从复制
    centos6.5-搭建mysql5.7.9
    操作系统的历史
    用户&权限&系统
    awk是全局周期
    在vm上面安装Linux系统
    Linux rpm yum 等安装软件
    linux中execve函数的用法
  • 原文地址:https://www.cnblogs.com/princessd8251/p/3308895.html
Copyright © 2011-2022 走看看