MySQL: redo log

2025/09/08

一、背景

redo log 可以叫作重做日志。主要作用是数据库崩溃后的恢复。

崩溃恢复是“载入状态”而非“执行补偿”,类似于载入存档。

直接应用物理修改,不再经过 sql 解析和各种检查。 为什么“不执行:SQL 解析、索引查找、触发器、外键检查等”呢?是因为生成的各种 log 就是经过的这个阶段的产物。

二、恢复决策

在理想情况下:redo log(COMMIT) 时,binlog 一定已经落盘。

当 redo log 和 binlog 状态矛盾时,以 redo log 为准。宁可主从不一致,也不能丢失已提交的数据。

三、参考

InnoDB Recovery

17.6.5 Redo Log