MySQL中binlog、redolog与undolog的不同之处解析

在MySQL数据库中,binlog(二进制日志)、redolog(重做日志)和undolog(回滚日志)是三种不同类型的日志文件,它们各自承担着不同的角色以确保数据库的数据一致性和恢复能力。

Binlog (二进制日志)

Binlog是MySQL用来进行数据复制和恢复操作的一个重要组件。它记录了所有修改了数据库状态的语句,比如INSERT、UPDATE、DELETE等。这些记录是以事件形式存储,并且按照它们被执行的顺序来进行记录。

主要用途:

  • 主从复制:通过binlog实现数据在主从服务器之间同步。
  • 点对点恢复:如果需要将数据库回滚到某个特定时间点,可以使用binlog中存储的事件来实现。

特性:

  • 存储格式为二进制。
  • 可配置为按需刷新到磁盘。
  • 可以设置过期时间自动清理旧文件。

Redo Log (重做日志)

Redo Log属于InnoDB存储引擎特有,并且对于保证事务持久性至关重要。当一个事务被提交时,在事务所做更改真正写入表之前,这些更改会先写入到redolog中。如果系统发生故障导致未将内存中修改过但未持久化到磁盘上数据丢失,则可以通过redo log来重新执行这些操作确保数据不会丢失。

主要用途:

  • 故障恢复: 在系统奔溃后使用redo log重新执行那些已经提交但尚未写入硬盘上永久表空间文件里面去得变更操作。

特性:

  • 循环写入方式管理空间。

Undo Log (回滚日志)

Undo Log也是InnoDB引擎专有,在处理事务时非常关键。当进行INSERT、UPDATE或DELETE等操作时, InnoDB会生成相应undo log信息, 该信息能够撤销最近一次修改或者在并发情况下提供旧版本读(即MVCC)所需信息.

主要用途:

  • 提供MVCC: 在多版本并发控制下支持读已提交(Read Committed)和可重读(Repeatable Read)两种隔离级别.
  • 支持DML语句撤销: 如果一个事务需要被回滚, undo log就包含了所有必须应用于数据库以还原原始状态前所作出变化得反向操作.

特性:

  • 存放在共享表空间内部.

总结:

三者各司其职:

  1. BinLog负责记录所有影响数据变动得SQL语句序列, 主从同步与备份还原依赖此机理.
  2. RedoLog确保交易具备ACID属性里面D即Durability永久属性: 即使出现系统奇突然断电情况也能够根据RedoLog完成交易前已经标记为commit状态交易相关影响内容再次刷新至硬盤保存起來.
  3. UndoLog则负责维护多版本并发控制与支援用户层面上可能触及得rollback行为.

每个都扮演回答回溯与错误修正机构角色: BinLog像历史记载员详细记载每件大大小小事件; RedoLog则像紧急救援队伍遇见突發情況追踪最后活动轨迹尽力补救; UndoLog就类似时间机器可倒带历史让一切归位原始样貌同时兼具平行宇宙观察能让多人同时看见各自期望看见历程而互不干扰.

相关推荐
爱喝白开水a3 分钟前
LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板_langchain prompt
开发语言·数据库·人工智能·python·langchain·prompt·知识图谱
想ai抽7 分钟前
深入starrocks-多列联合统计一致性探查与策略(YY一下)
java·数据库·数据仓库
武子康16 分钟前
Java-152 深入浅出 MongoDB 索引详解 从 MongoDB B-树 到 MySQL B+树 索引机制、数据结构与应用场景的全面对比分析
java·开发语言·数据库·sql·mongodb·性能优化·nosql
longgyy31 分钟前
5 分钟用火山引擎 DeepSeek 调用大模型生成小红书文案
java·数据库·火山引擎
ytttr8731 小时前
C# 仿QQ聊天功能实现 (SQL Server数据库)
数据库·oracle·c#
盒马coding2 小时前
第18节-索引-Partial-Indexes
数据库·postgresql
dingdingfish2 小时前
关于Oracle RAC和ADG的学习资料
oracle·database·adg·rac·ha·dr·maa
不剪发的Tony老师2 小时前
CloudDM:一站式数据库开发管理工具
数据库
望获linux3 小时前
【实时Linux实战系列】Linux 内核的实时组调度(Real-Time Group Scheduling)
java·linux·服务器·前端·数据库·人工智能·深度学习
云宏信息3 小时前
【深度解析】VMware替代的关键一环:云宏ROW快照如何实现高频业务下的“无感”数据保护?
服务器·网络·数据库·架构·云计算·快照