Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

REDO 与 UNDO 怎样参与崩溃恢复?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

redo 用于重放需要恢复的页修改,undo 支持回滚和旧版本读取。崩溃恢复不只是把已提交 SQL 再执行一次,而是结合日志状态恢复数据并处理未完成事务。

讲清原理

数据页可能尚未写回,重做日志先记录修改;恢复后仍需撤销不应保留的事务变化。undo 不是 binlog,redo 也不是只保存业务原始 SQL,两者用途和生命周期不同。

InnoDB 崩溃恢复和备份后重放 binlog 对应不同故障
InnoDB 崩溃恢复和备份后重放 binlog 对应不同故障

例子与易错点

事务回滚不代表所有磁盘记录立刻消失,旧版本和清理仍有自己的规则。不要把关掉关键刷盘保护说成无条件安全提速,持久性需要配置与存储共同保障。

相关题 · 第 9 题、第 56 题

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。