zoukankan      html  css  js  c++  java
  • 数据库崩溃后对redo log的使用 分类: H2_ORACLE 20130204 14:05 309人阅读 评论(0) 收藏

    用户对数据库做的任何操作均会产生redo log,事实上是先把redo log写到redo log cache中,再把实际数据更改写至buffer cache中。

    Redo log会在以下情况从redo log cache写至online redo log file中:

    l 每隔3秒钟

    l Redo log cache使用了1/3

    l 当数据库定写入器通知重做记录需要写入磁盘时。即在数据写入数据文件前。

    但若此时数据库发生崩溃,而部分数据未写至data file中,则:

    (1)对于未提交事务,执行撤销操作。(是否有可能未commit,但数据已经写入data file。若yes,则有可能buffer cache满了,下次读取数据从data file读取,导致未commit更改生效了。因此不可能yes。但若no,则有部分未提交数据一直占据buffer cache,若满了怎么办?)

    (2)对于已提交事务,但数据未写至data file的,根据redo log执行重做。

    也就是说一切操作均产生redo log,不管是否commit。


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    P2149 [SDOI2009]Elaxia的路线
    电机学第一次课
    大素数区间快判模板
    网络流 最大权闭合子图
    DFS CCPC2017 南宁I题
    稳定婚姻问题模板
    CF438D 线段树 区间求和,区间求膜,单点更新
    对偶图 并查集 BZOJ4423
    BZOJ 1833 数字计数 数位DP
    过一点求对一个直线的垂足
  • 原文地址:https://www.cnblogs.com/lujinhong2/p/4637442.html
Copyright © 2011-2022 走看看