mysql_更新一条语句_及日志操作
来自 极客时间 mysql章节
mysql更新涉及到两个日志redo log binlog
redo log概念理解
可以理解成环行链表 可重复使用 物理日志 某个数据页上做了什么修改
binlog
逻辑日志 语句的原始逻辑 追加的形式
问题
如果提交事务的时候正好重启那么redo log和binlog会怎么处理?
此时redo log处于prepare阶段,如果不接受这条log,但是binlog已经接受,
还是说binlog会去检查redo log的状态,状态为prepare的不会恢复?
Binlog如果已经接受,那么redolog是prepare, binlog已经完整了对吧,这时候崩溃恢复过程会认可这个事务,提交掉。
(你可以分析下这种情况下,是否符合我们要达到的“用binlog恢复的库跟原库逻辑相同” 这个要求)