首页 > 数据库 >mysql 半同步的模式 after_commit 与 after_sync

mysql 半同步的模式 after_commit 与 after_sync

时间:2023-01-07 12:44:55浏览次数:66  
标签:主库 -- after sync ACK mysql commit

参考MySQL半同步after_sync与after_commit - 墨天轮 (modb.pro)

1. after_commit

提交流程:client-->execute sql-->wrtie redolog-->write binlog-->innodb storage commit-->wait ACK-->client receive OK。

2.after_sync

提交流程:client-->execute sql-->wrtie redolog-->write binlog-->wait ACK-->innodb storage commit-->client receive OK。

从提交流程可以看出,两个模式的区别就是提交到存储引擎与等待从库的ACK的顺序。

after_commit模式先提交到存储引擎,那么主库上事务相当于已经完成了,虽然没有等到从库的ACK,没有给客户端以事务成功的反馈,但是在连接主库的其他客户端上是能查询到主库修改的数据,此时发生故障,从库切主库时相当于丢失了数据。也就是说after_commit无法保证主从数据的强一致性。

after_sync模式是主库先要等到从库的ACK,然后再提交到存储引擎,在提交到存储引擎前,主从上都查不到事务的修改,此时发生故障切换,不算丢失数据,因为故障前的事务尚未完成。也就是说after_sync模式可以保证主从的强一致性。

因此推荐使用after_sync模式。

 

搭建主从半同步架构。

执行一个大事务,解析binlog 来查看主从的同步状态。

 

标签:主库,--,after,sync,ACK,mysql,commit
From: https://www.cnblogs.com/JennyYu/p/17032468.html

相关文章

  • Windows配置rsync
    背景Windows上配置了git,支持部分Linux命令,也存在不支持的Linux命令,比如rsync。我想要用rsync实现文件的同步,因此耗费了一个上午进行搜索和配置,把过程记录下,下......
  • MySQL8 - DISTINCT 去重
    DISTINCT-去重查询结果去除重复记录,原表数据不修改SELECT DISTINCTjobFROM emp;DISTINCT只能出现在所有字段的最前方,如果使用在两字段间,则字段的记录数量相互......
  • MySQL7 - 单表查询总结
    单表查询总结语句顺序SELECT...FROM...WHERE...GROUPBY...HAVING...ORDERBY...执行顺序FROM->WHERE->GROUPBY->HAVING->SELECT->ORDERBYFRO......
  • MySQL6 - 分组查询
    分组查询为什么需要分组查询?在实际应用中,可能需要先进行分组,再对每一组数据进行操作什么是分组查询?SELECT ...FROM ...WHERE ...GROUPBY ...ORDERBY .........
  • [LeetCode] 2202. Maximize the Topmost Element After K Moves
    Youaregivena 0-indexed integerarray nums representingthecontentsofa pile,where nums[0] isthetopmostelementofthepile.Inonemove,youcan......
  • 【python】mysql操作封装类,sql小白也会操作mysql
    懒得自己写了,转载于Pythonpymysql简单封装_Clown程序员的博客-CSDN博客_python封装pymysql,保存起来因为原来的写得用起来有点难受,就稍微改了一下推荐到我的博客网站看......
  • 既然有MySQL了,为什么还要有MongoDB?
    大家好,我是哪吒,最近项目在使用MongoDB作为图片和文档的存储数据库,为啥不直接存MySQL里,还要搭个MongoDB集群,麻不麻烦?让我们一起,一探究竟,了解一下MongoDB的特点和基本用法,实......
  • mysql数据库
    mysql数据库1数据库简介、安装以及基本sql语句2mysql修改字符编码、多种存储引擎以及字段类型的说明3约束条件之外键、外键以及外键字段中表与表之间的关系4操作表......
  • MySQl中的冷门索引类型
    MySQL中的冷门索引类型一、Hash索引概念​基于哈希表实现,只有匹配所有列的查询才有效。对于每一行数据,存储引擎都会对所有索引列计算一个哈希码,哈希码是一个较小的......
  • Nodejs Mysql 执行多条SQL语句
    NodejsMysql执行多条SQL语句最近用Nodejs+Express+Mysql写接口碰到一个需要四表联查的接口。。。我特么只会连两张表啊~!网上百度了一波四表联查,由于我接口的数据......