重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
MySQL使用两阶段提交主要解决 binlog 和 InnoDB redo log 的数据一致性的问题.
目前成都创新互联公司已为数千家的企业提供了网站建设、域名、雅安服务器托管、网站托管运营、企业网站设计、市中网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
两阶段提交简图:
两阶段提交原理描述:
阶段1:InnoDB redo log 写盘,InnoDB 事务进入 prepare 状态
阶段2:如果前面prepare成功,binlog 写盘,那么再继续将事务日志持久化到binlog,如果持久化成功,那么InnoDB
事务 则进入 commit 状态(实际是在redo log里面写上一个commit记录)
备注: 每个事务binlog的末尾,会记录一个 XID event,标志着事务是否提交成功,也就是说,recovery 过程中,binlog
最后一个 XID event 之后的内容都应该被 purge。