1.在准备阶段,所有修改操作先记录到redo log buffer,记录事务状态为prepare
2.立即刷盘,把redo log buffer的数据写入磁盘的redo log文件
3.在提交阶段,将事务操作写入到bin log并刷盘
4.把redo log buffer的事务状态改为commit,更新磁盘中的redo log文件的事务状态
5.在mysql崩溃恢复时, 先扫描redo log
6.如果发现是事务状态是prepare,检查事务是否有对应的binlog记录
7.如果有bin log,重做redo 事务
8.如果没有bin log,回滚undo 事务
9.如果事务状态是commit,跳过
redo log两段式提交如何保障数据不丢失
于 2025-03-31 00:16:46 首次发布