在MySQL中 redolog undolog binlog 写入的场景,顺序

news/2025/10/18 8:46:58/文章来源:https://www.cnblogs.com/jelly12345/p/19149163

🧩 一、三个日志的基本概念

日志类型作用层面主要功能存放位置
Redo Log InnoDB 引擎层 记录“数据页的物理修改” InnoDB 特有(ib_logfile)
Undo Log InnoDB 引擎层 用于事务回滚 & MVCC InnoDB 表空间中
Binlog Server 层 记录所有事务的逻辑操作,用于主从复制、恢复 全局(MySQL Server)

🧠 二、三种日志的用途和作用详解

1️⃣ Redo Log(重做日志)

目的:保证事务的持久性(D of ACID)

当事务执行 UPDATE/INSERT/DELETE 时,InnoDB 不会立即把数据页刷盘
而是:

  1. 把修改写入内存缓冲区(Buffer Pool)

  2. 同时记录一条 Redo Log(物理变化)

  3. Redo Log 先写入磁盘(WAL,Write-Ahead Logging)

👉 即使宕机,只要 Redo Log 存在,系统重启后也能根据日志“重放”修改。

特点:

  • 是物理日志(记录页号、偏移量、修改内容)

  • 循环写(固定大小的日志文件组)

  • 用于 崩溃恢复


2️⃣ Undo Log(回滚日志)

目的:保证事务的原子性(A of ACID)
当事务执行修改时,会先生成一份 “修改前的数据镜像”,即 Undo Log。

例如:

 
UPDATE account SET balance = balance - 100 WHERE id = 1;

Undo Log 记录:

 
balance = 1000 balance = 900

作用:

  • 事务回滚时恢复旧值

  • MVCC(多版本并发控制)读数据时使用历史版本(快照读)

特点:

  • 是逻辑日志(记录反向操作)

  • 存储在 InnoDB 表空间中(undo tablespace)

  • 事务提交后,Undo Log 会被标记为可回收


3️⃣ Binlog(二进制日志)

目的:保证数据的可复制性和可恢复性

MySQL Server 层维护,记录了所有事务的逻辑操作(如 SQL 或行变化)。

作用:

  • 主从复制:Slave 根据 Binlog 重放数据

  • Point-in-Time 恢复:利用 Binlog + 全量备份恢复任意时刻数据

特点:

  • 是逻辑日志(记录 SQL 或行级变化)

  • 顺序追加写

  • 与存储引擎无关(InnoDB、MyISAM 都会产生)


⚙️ 三、日志写入的顺序(重点)

当一个事务执行时,MySQL 涉及到 redo log、undo log、binlog 三者的交互。
以事务执行 UPDATE 为例:


💡 执行过程图

 
┌──────────────────────────────┐│ MySQL层 ││ (Server + InnoDB) │└──────────────────────────────┘│┌─────────────────┼────────────────┐│ │▼ ▼【内存 Buffer Pool】 【磁盘日志】│ │ 1️⃣ 生成Undo Log(旧值) Undo Log 写入表空间 2️⃣ 修改内存数据页(新值) 3️⃣ 写入Redo Log(记录物理变化) 4️⃣ 写入Binlog(记录逻辑变化) 5️⃣ Redo Log 标记 commit(提交事务)

📜 实际写入顺序(事务提交阶段)

阶段操作说明
写入 Undo Log 为后续回滚做准备
写入 Redo Log(prepare状态) 保证事务可恢复
写入 Binlog 记录逻辑操作(主从复制)
Redo Log 改为 commit状态 标记事务提交成功

✅ 双写机制 + 两阶段提交(2PC)

因为 Redo Log 在引擎层、Binlog 在 Server 层,
为了保证 主从一致性,InnoDB 实现了“两阶段提交”:

🔹 阶段 1:prepare 阶段

  • 写 Redo Log(状态为 prepare)

  • 保证即使崩溃,也能恢复到 prepare 状态

🔹 阶段 2:commit 阶段

  • 写 Binlog 成功后,再将 Redo Log 标记为 commit

💡 为什么要这样?

  • 如果 Binlog 写成功但 Redo Log 未提交 → 数据丢失,主从不一致

  • 如果 Redo Log 提交但 Binlog 未写成功 → 主从不一致

所以“两阶段提交”保证了:

redo log 与 binlog 的一致性 = 数据的最终一致性。


🧾 四、三个日志的恢复逻辑总结

场景依赖日志恢复方式
系统宕机恢复 Redo Log 重做未刷盘的修改
事务回滚 Undo Log 回滚未提交的事务
主从复制 / 数据恢复 Binlog 重放逻辑操作

🔍 五、示例演示事务执行全过程

 
BEGIN; UPDATE account SET balance = balance - 100 WHERE id = 1; COMMIT;

执行过程:

步骤操作日志
1 执行 UPDATE 生成 Undo Log(记录旧值)
2 修改 Buffer Pool 数据 产生 Redo Log(prepare)
3 写 Binlog 记录逻辑 SQL
4 Redo Log commit 标记提交完成
5 数据异步刷盘 后台刷到磁盘(checkpoint)

🧠 六、总结记忆口诀

Undo 保原样,Redo 保结果,Binlog 保过程。

日志层级主要作用写入顺序
Undo Log InnoDB 回滚/快照 第1写
Redo Log InnoDB 持久化恢复 第2写(prepare + commit)
Binlog Server 主从复制/恢复 第3写

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/939358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年证卡打印机厂家权威推荐榜:含证件/PVC卡/IC卡/ID卡/智能卡,宝瑞迪/BOOD品牌优选!

2025年证卡打印机厂家权威推荐榜:含证件/PVC卡/IC卡/ID卡/智能卡,宝瑞迪/BOOD品牌优选!随着科技的不断进步和信息化管理的需求日益增长,证卡打印机在各行各业中的应用越来越广泛。无论是企业、学校、政府机关还是医…

2025 年压滤机厂家最新推荐榜:隔膜 / 污泥 / 真空 / 板框 / 带式压滤机优质企业精选指南

随着环保政策趋严与工业智能化升级,固液分离领域对压滤机的效率、适配性与智能化需求大幅提升。隔膜、污泥、真空等细分类型设备的性能差异显著,化工、矿山、市政等行业的需求更是千差万别。当前市场中,既有深耕多年…

灵芯派(基于Debian系统)

在灵芯派(基于Debian系统)上查看与宇树GO2机器狗连接的网口名称及状态,可以按照以下流程操作。使用 ethtool 命令是判断网口物理连接状态最直接有效的方法。 flowchart TDA[开始:查看网口连接状态] --> B[步骤一…

2025年大连网络营销推广/媒体投放/全案推广/新媒体营销/全媒体推广/代运营公司权威推荐榜

2025年大连网络营销推广/媒体投放/全案推广/新媒体营销/全媒体推广/代运营公司权威推荐榜随着互联网技术的飞速发展,网络营销已经成为企业不可或缺的一部分。在大连,众多企业在寻求网络营销推广、媒体投放、全案推广…

2025年手持光谱仪/光谱分析仪/便携式光谱仪厂家推荐榜单,矿石/元素/合金/金属/贵金属分析仪器首选!

2025年手持光谱仪/光谱分析仪/便携式光谱仪厂家推荐榜单,矿石/元素/合金/金属/贵金属分析仪器首选!随着科技的不断进步和工业需求的日益增长,手持光谱仪、光谱分析仪及便携式光谱仪在矿石/元素分析、合金/金属/不锈…

低空经济新纪元:AI驱动的智能无人机技巧与应用

低空经济新纪元:AI驱动的智能无人机技巧与应用2025-10-18 08:31 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display:…

详细介绍:增强版 bash “zsh“

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年法兰保护罩/阀门保温罩/法兰罩/法兰防溅罩/法兰保护套厂家推荐排行榜,专业防护与优质服务首选!

2025年法兰保护罩/阀门保温罩/法兰罩/法兰防溅罩/法兰保护套厂家推荐排行榜,专业防护与优质服务首选!随着工业技术的不断进步,法兰保护罩、阀门保温罩、法兰罩、法兰防溅罩和法兰保护套等产品在工业领域中的应用越来…

Aniyomi:功能强大的动漫影视播放阅读器

Aniyomi是一款基于Mihon开发的Android应用,提供完整的动漫、卡通、剧集播放和阅读功能,支持本地内容管理、多种观看模式和追番跟踪服务,让您轻松发现和享受喜爱的影视内容。Aniyomi 全功能播放器和阅读器,基于Miho…

2025年无心/外圆磨床,滚丝机,外圆抛光机,送料机,送料架,自动化,机械手厂家推荐排行榜,专业品质与高效性能之选!

2025年无心/外圆磨床、滚丝机、外圆抛光机、送料机、送料架、自动化、机械手厂家推荐排行榜,专业品质与高效性能之选!随着工业4.0的推进和智能制造的快速发展,无心/外圆磨床、滚丝机、外圆抛光机、送料机、送料架、…

2025年陶瓷过滤机厂家推荐排行榜,陶瓷真空/盘式/矿用/全自动/带式陶瓷过滤机,固液分离设备公司推荐!

2025年陶瓷过滤机厂家推荐排行榜:陶瓷真空/盘式/矿用/全自动/带式陶瓷过滤机,固液分离设备公司推荐!随着工业技术的不断进步和环保要求的日益严格,陶瓷过滤机在矿业、化工、制药等多个领域中的应用越来越广泛。陶瓷…

ICASSP 2022语音识别技术突破与创新

本文介绍了某中心在ICASSP 2022会议上发表的21篇语音识别相关论文,涵盖多模态训练、信号到解释转换、BERT重评分等前沿技术,展示了深度学习在自动语音识别领域的最新进展与应用前景。ICASSP 2022语音识别研究进展 本…

140亿元!曝芯片巨头拟出售通信类业务

微信视频号:sph0RgSyDYV47z6 快手号:4874645212 抖音号:dy0so323fq2w 小红书号:95619019828 B站1:UID:3546863642871878 B站2:UID: 3546955410049087 路透社10月14日引述知情人士报道,日本半导体制造商瑞萨电子…

2025多校冲刺 CSP 模拟赛 6

2025多校冲刺CSP模拟赛6以下是博客签名,正文无关 本文来自博客园,作者:Wy_x,转载请在文首注明原文链接:https://www.cnblogs.com/Wy-x/p/19149141 版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际…

Cisco ASR 9000 Router IOS XR Release 7.11.2 MD - 思科 ASR 9000 路由器系统软件

Cisco ASR 9000 Router IOS XR Release 7.11.2 MD - 思科 ASR 9000 路由器系统软件Cisco ASR 9000 Router IOS XR Release 7.11.2 MD - 思科 ASR 9000 路由器系统软件 Cisco ASR 9000 Series Aggregation Services Rou…

2025年瑕疵检测设备厂家推荐排行榜,表面瑕疵检测,薄膜瑕疵检测,铝箔瑕疵在线检测,外观瑕疵检测机公司精选!

2025年瑕疵检测设备厂家推荐排行榜,表面瑕疵检测,薄膜瑕疵检测,铝箔瑕疵在线检测,外观瑕疵检测机公司精选!随着工业自动化和智能化的快速发展,表面瑕疵检测、薄膜瑕疵检测、铝箔瑕疵在线检测等技术在制造业中的应…

10.16 闲话-k 短路

发晚了qwq10.16 闲话-k 短路 Part.1 左偏树 左偏树是一个堆,支持 \(O(\log n)\) 合并。 假设 \(dist_i\) 表示离 \(i\) 最近的儿子数量不为 \(2\) 的儿子的距离 + 1,孤立点设为 0。 容易发现 \(dist_i \le \log n\) …

初次扫描设计

需求:第一次扫描的时候两者的状态能同步代码展示:/// <summary>/// 第一次扫描/// </summary>private bool FristScan = true; // 第一次扫描执行 ,以后就不再执行if(FristScan){this.togg…

应用安全 --- 安卓加固 之 进程隔离

应用安全 --- 安卓加固 之 进程隔离1. 核心思想 在安卓应用开发中,利用多进程特性是一种有效的安全增强手段。其核心思想是:将一个App划分为多个进程(通常是主进程和一个或多个子进程),并将核心的、敏感的业务逻辑…

关于虚数单位与复数

关于虚数单位与复数#content { max-width: 60em; margin: auto } .title { text-align: center; margin-bottom: 0.2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .t…