undo log和redo log区分

Redo Log(重做日志)和 Undo Log(撤销日志)是数据库系统中用于确保数据完整性和事务一致性的两种不同类型的日志。它们在处理事务、尤其是事务回滚和系统恢复时起着关键作用。

Redo Log(重做日志)

  1. 作用:确保事务的持久性。即使在系统故障或崩溃后,已提交的事务所做的更改也不会丢失。

  2. 内容:记录了事务对数据库所做的更改,即修改后的数据(例如,更新后的记录)。

  3. 写入时机:通常在数据修改之前写入 Redo Log,确保在数据实际写入磁盘前,日志已经被安全地记录。

  4. 使用场景

    • 系统崩溃后重启时,数据库系统使用 Redo Log 来恢复未写入磁盘的数据。
    • 数据库的备份和恢复操作中,Redo Log 用于同步数据。
  5. 特点:顺序写入,保证日志的连续性,便于恢复。

Undo Log(撤销日志)

  1. 作用:提供事务的原子性,用于回滚事务。
  2. 内容:记录了事务对数据库所做的更改的逆操作,即修改前的数据(例如,更新前的记录)。
  3. 写入时机:在数据修改的同时,Undo Log 被写入,以便在需要回滚时撤销更改。
  4. 使用场景
    • 事务执行过程中,如果发生错误或用户手动回滚,使用 Undo Log 来撤销已做的更改。
    • 多版本并发控制(MVCC)中,Undo Log 用于提供数据的旧版本给其他事务读取。
  5. 特点:Undo Log 通常不会像 Redo Log 那样长期存在,它们在事务提交或回滚后可能会被清除。

总结来说,Redo Log 保证了事务的持久性,而 Undo Log 保证了事务的原子性。两者在数据库系统中起着互补的作用,共同维护了数据库的一致性和可靠性。

相关推荐

  1. mysql-binlog,redolog undolog区别

    2024-04-27 21:32:03       40 阅读
  2. redologundologbinlog日志文件详解

    2024-04-27 21:32:03       13 阅读
  3. Mysql日志binlog、redologundolog

    2024-04-27 21:32:03       32 阅读
  4. MySQL中的binlogredolog有什么区别

    2024-04-27 21:32:03       14 阅读
  5. <span style='color:red;'>undolog</span>

    undolog

    2024-04-27 21:32:03      12 阅读
  6. mysql undolog管理

    2024-04-27 21:32:03       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-27 21:32:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-27 21:32:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-27 21:32:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-27 21:32:03       20 阅读

热门阅读

  1. LeetCode-101-对称二叉树

    2024-04-27 21:32:03       14 阅读
  2. Android 14 transtion 动画流程

    2024-04-27 21:32:03       12 阅读
  3. Redis中transactions命令详解

    2024-04-27 21:32:03       11 阅读
  4. QT C++ QCustomPlot 简单使用

    2024-04-27 21:32:03       13 阅读
  5. mac上用brew安装node

    2024-04-27 21:32:03       12 阅读
  6. Python|OpenCV-边缘检测算法之Canny算法(15)

    2024-04-27 21:32:03       12 阅读