当前位置: 首页 > news >正文

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

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

日志类型作用层面主要功能存放位置
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.hskmm.com/?act=detail&tid=33472

相关文章:

  • 2025年证卡打印机厂家权威推荐榜:含证件/PVC卡/IC卡/ID卡/智能卡,宝瑞迪/BOOD品牌优选!
  • 2025 年压滤机厂家最新推荐榜:隔膜 / 污泥 / 真空 / 板框 / 带式压滤机优质企业精选指南
  • 灵芯派(基于Debian系统)
  • 2025年大连网络营销推广/媒体投放/全案推广/新媒体营销/全媒体推广/代运营公司权威推荐榜
  • 2025年手持光谱仪/光谱分析仪/便携式光谱仪厂家推荐榜单,矿石/元素/合金/金属/贵金属分析仪器首选!
  • 字符串操作函数
  • 2025年法兰保护罩/阀门保温罩/法兰罩/法兰防溅罩/法兰保护套厂家推荐排行榜,专业防护与优质服务首选!
  • Aniyomi:功能强大的动漫影视播放阅读器
  • 2025年无心/外圆磨床,滚丝机,外圆抛光机,送料机,送料架,自动化,机械手厂家推荐排行榜,专业品质与高效性能之选!
  • 2025年陶瓷过滤机厂家推荐排行榜,陶瓷真空/盘式/矿用/全自动/带式陶瓷过滤机,固液分离设备公司推荐!
  • ICASSP 2022语音识别技术突破与创新
  • 140亿元!曝芯片巨头拟出售通信类业务
  • 2025多校冲刺 CSP 模拟赛 6
  • Cisco ASR 9000 Router IOS XR Release 7.11.2 MD - 思科 ASR 9000 路由器系统软件
  • 2025年瑕疵检测设备厂家推荐排行榜,表面瑕疵检测,薄膜瑕疵检测,铝箔瑕疵在线检测,外观瑕疵检测机公司精选!
  • 开机自启动
  • 10.16 闲话-k 短路
  • 初次扫描设计
  • 关于虚数单位与复数
  • AI深度学习平台快速诊断肌张力障碍
  • 2025年多功能防水篷布厂家推荐排行榜,聚乙烯/帐篷/汽车/宴会/盖草布/泳池布/微喷水带/日用盖/农林用/重型机器用篷布公司精选
  • 2025年干燥机厂家推荐排行榜,小型喷雾/实验室离心喷雾/双锥回转真空/搪瓷双锥/旋转闪蒸/振动流化床/真空耙式/单层带式/多层带式/立式沸腾/卧式沸腾/滚筒刮板干燥机!
  • 2025年润滑油厂家推荐排行榜,工业/汽车/发动机/甲醇发动机润滑油,全合成/长效润滑油公司精选
  • 2025年数粒机厂家推荐排行榜,防爆/新型/高速/高精度/智能/大容量/多通道/电子/视觉/全自动/低噪音/制药/农业/食品/电子元件/光电/定制化/鹌鹑蛋/糖果/坚果/药品/片剂数粒机公司推荐
  • 2025年码垛机厂家推荐排行榜,多样板材/倒板/分拣/上料/下料码垛机,全自动/半自动/龙门/桁架/双工位/单工位/单立柱码垛机械手公司推荐!
  • 2025年CNC高压清洗机厂家推荐排行榜,CNC全自动高压清洗机,CNC去毛刺清洗机,工业CNC高压清洗机公司推荐!
  • 数字化ERP“一图四清单”战略执行体系 - 智慧园区
  • 因果分布变化解释方法解析
  • OAuth/OpenID Connect 渗透测试完整指南
  • 2025年塑料托盘厂家推荐排行榜,网格川字/九脚/田字/双面/平板/吹塑/注塑/焊接/印刷/组装款/高矮脚/反川字/立体库托盘公司精选