数据库宕机以后恢复的过程?如何保证事务的ACID特性?
1、MySQL事务提交分为三个过程
① InnoDB)prepare redo log
② Server)write binlog
③ InnoDB)commit redo log
2、MySQL事务的挂掉的四种状态
MySQL重启后,需要判断事务是在哪个阶段挂掉的,crash recovery时,可能会出以下几种状态:
(1)如果在做①的时候挂掉,直接回滚。
(2)如果①好了,做②的时候挂掉:此时redo中是prepare状态,binlog中没有该事务的event,则需要回滚。
(3)如果②好了,做③的时候挂掉:此时redo中是prepare状态,binlog中有该事务的event,则需要提交。
(4)如果③也好了,也就是在引擎层已经commit了:啥都不用做,不需要处理。
作者:知乎用户
链接:https://www.zhihu.com/question/287892854/answer/1472244704
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2021-09-04Linux磁盘UUID冲突解决方案
- 2021-05-20Linux搭建GRE隧道教程
- 2021-11-17Linux系统设置秘钥登录+禁用密码登录(免密登录)
- 2022-05-12开源资产管理系统chemex容器化部署
- 2021-06-23iptables与firewalls网络防火墙相关配置



