Rolling Forward(前滚)

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

Rolling Back(回滚)

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

触发LGWR进程的条件有: 
  1. 用户提交 
  2. 有1/3重做日志缓冲区未被写入磁盘 
  3. 有大于1M的重做日志缓冲区未被写入磁盘 
  4. 3秒超时 
  5. DBWR 需要写入的数据的SCN大于LGWR记录的SCN,DBWR 触发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 recovery而online 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

LGWR和DBWn的触发条件相关推荐

  1. Oracle DBWR,LGWR,CKPT,ARCH 触发条件 总结

    一.  DBWR写磁盘数据触发条件 1. 当进程在辅助LRU链表和主LRU链表上扫描以查找可以覆盖的buffer header[空闲缓冲区]时,如果已经扫描的buffer header的数量到达一定的 ...

  2. minor gc和Major GC,Full GC的触发条件

    Minor GC Minor GC指新生代GC,即发生在新生代(包括Eden区和Survivor区)的垃圾回收操作,当新生代无法为新生对象分配内存空间的时候,会触发Minor GC.因为新生代中大多数 ...

  3. GC详解及Minor GC和Full GC触发条件总结

    GC,即就是Java垃圾回收机制.目前主流的JVM(HotSpot)采用的是分代收集算法.与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用.即:从gcroot开始 ...

  4. FD_WRITE触发条件

    FD_WRITE触发条件: 1.client 通过connect(WSAConnect)首次和server建立连接时,在client端会触发FD_WRITE事件 2.server通过accept(WS ...

  5. JVM:内存分配与回收策略?Full GC 的触发条件?StopTheWorld ?

    内存分配与回收策略 Minor GC 和 Full GC Minor GC:发生在新生代上,因为新生代对象存活时间很短,因此 Minor GC 会频繁执行,执行的速度一般也会比较快. Full GC: ...

  6. 从零开始学_JavaScript_系列(四)——jquery(基础,选择器,触发条件,动画,回调函数)...

    jQuery语法 (1)引用jquery文件及下载库: http://jquery.com/download/ 下载 Download the compressed, production jQuer ...

  7. Minor GC和Full GC触发条件

    本文来说下Minor GC和Full GC触发条件 文章目录 Minor GC触发条件 Full GC触发条件 补充问题 本文小结 Minor GC触发条件 Minor GC触发条件: 当Eden区满 ...

  8. BFC的布局规则以及触发条件

          1   .BFC的含义 :          Block Formatting Contexts(BFC)                                      块级元 ...

  9. GC详解及Minor GC和Full GC触发条件

    GC,即就是Java垃圾回收机制.目前主流的JVM(HotSpot)采用的是分代收集算法.与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用.即:从gcroot开始 ...

最新文章

  1. php oracle count,调用Count列php mysql
  2. hdu 5419(数学期望)
  3. linux find命令格式及find命令详解
  4. DFS迷宫递归所有路径 新手入门
  5. [vue] 你有自己用vue写过UI组件库吗?
  6. 【Python学习】 - PIL - 各种图像操作
  7. 质量运营在智能支付业务测试中的初步实践
  8. 超级外链工具_哪些SEO排名工具是有效的呢?
  9. iOS中的中间人-NSURLProtocol 的原理和使用实例
  10. 从零开始学_JavaScript_系列(22)——dojo(9)(表单、JsonRest的post方法,widget的使用思路)...
  11. 如何在Mac上管理辅助功能键盘的选项?
  12. python求斜边上的高_直角三角形斜边上的高如何求?
  13. 黑客攻防日记---刘欣
  14. java基础学习_集合类04_Map接口、Collections工具类_day18总结
  15. Python保龄球计分Demo
  16. Android 10.0 webview版本升级的方法
  17. 用友NC远程命令执行漏洞通告
  18. pod init 报错 can‘t modify frozen String (FrozenError) [Xcodeproj] Unknown object version (56).
  19. 服务器安装与维护,服务器安装与维护 PPT课件
  20. 家里宽带628连不上_win7系统宽带连接提示错误628的解决方法

热门文章

  1. 如何避免核心代码资源泄漏和如何提高开发效率
  2. 实现tomcat的https单向认证及双向认证
  3. 工厂模式(简单工厂模式)快速理解
  4. KVM Disk Cache简析
  5. (转)The Standard C Library 经典的基础(下)
  6. 试了试Docker桌面应用自带的K8s集群,一个字“简单”
  7. 初始DDD(领域驱动设计)
  8. Sentinel的简单使用
  9. springboot整合Apollo
  10. JAVA虚拟机垃圾回收机制和JAVA排错三剑客