问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问MySQL所谓的支持半同步复制是什么意思啊,谢谢

发布网友 发布时间:2022-04-23 16:59

我来回答

2个回答

热心网友 时间:2022-04-08 03:10

http://code.google.com/p/google-mysql-tools/wiki/SemiSyncReplicationDesign

热心网友 时间:2022-04-08 04:28

在谈这个特性之前,我们先来看看mysql的复制架构衍生史。 MySQL的复制分为三种:         第一种,即普通的replication。 搭建简单,使用非常广泛,从mysql诞生之初,就产生了这种架构,性能非常好,可谓非常成熟。 但是这种架构数据是异步的,所以有丢失数据库的风险。         第二种,即mysql cluster。 搭建也简单,本身也比较稳定,是mysql里面对数据保护最最靠谱的架构,也是唯一一个数据完全同步的架构,绝对的零丢失。不过性能就差远些了。        第三种,即semi-sync replication,半同步,性能,功能都介于以上两者之间。从mysql5.5开始诞生,目的是为了折中上述两种架构的性能以及优缺点。“我们今天谈论第三种架构

我们知道,普通的replication,也即mysql的异步复制,依靠mysql二进制日志也即binary log进行数据复制。比如两台机器,一台主机也即master,另外一台是从机,也即slave。


         1. 正常的复制为:事务一(t1)写入binlog buffer;mper 线程通知slave有新的事务t1;binlog buffer 进行checkpoint;slave的io线程接收到t1并写入到自己的的relay log;slave的sql线程写入到本地数据库。 这时,master和slave都能看到这条新的事务,即使master挂了,slave可以提升为新的master。          2. 异常的复制为:事务一(t1)写入binlog buffer;mper 线程通知slave有新的事务t1;binlog buffer 进行checkpoint;slave因为网络不稳定,一直没有收到t1;master 挂掉,slave提升为新的master,t1丢失。 

         3. 很大的问题是:主机和从机事务更新的不同步,就算是没有网络或者其他系统的异常,当业务并发上来时,slave因为要顺序执行master批量事务,导致很大的延迟。


为了弥补以上几种场景的不足,mysql从5.5开始推出了半同步。


即在master的mper线程通知slave后,增加了一个ack,即是否成功收到t1的标志码。也就是mper线程除了发送t1到slave,还承担了接收slave的ack工作。如果出现异常,没有收到ack,那么将自动降级为普通的复制,直到异常修复。

 我们可以看到半同步带来的新问题:         1. 如果异常发生,会降级为普通的复制。 那么从机出现数据不一致的几率会减少,并不是完全消失。         2. 主机mper线程承担的工作变多了,这样显然会降低整个数据库的性能。         3. 在MySQL 5.5和5.6使用after_commit的模式下,  即如果slave 没有收到事务,也就是还没有写入到relay log 之前,网络出现异常或者不稳定,此时刚好master挂了,系统切换到从机,两边的数据就会出现不一致。 在此情况下,slave会少一个事务的数据。 

随着MySQL 5.7版本的发布,半同步复制技术升级为全新的Loss-less Semi-Synchronous Replication架构,其成熟度、数据一致性与执行效率得到显著的提升。


 MySQL 5.7对数据复制效率进行了改进1 主从一致性加强支持在事务commit前等待ACK

新版本的semi sync 增加了rpl_semi_sync_master_wait_point参数 来控制半同步模式下 主库在返回给会话事务成功之前提交事务的方式。

该参数有两个值:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
甲醛一般多久能去除?- 哪位演员没有参加雷霆救兵的军训? 消防队砌一道长8米、宽0.25米、高2米的训练墙.如果每立方米 长40,顶宽80.底宽2米,高6米,坡度0.25米,求方数 家人犯罪对考军校有影响吗? 脚手架的安全网外面挂的2米长,0.25米宽的红白相间的木板,学名叫做什么... 为什么两条腿膝盖下都那么弯啊。会不会影响我长高啊。为什么膝盖腿侧边... 木苏里开放语c了吗 江添在某某里有吐过吗 某某随书赠品有尺子吗 梦到松鼠是胎梦么? mysql mha半同步设置,主库崩溃,会怎么样 强同步复制模式半同步复制模式哪个好 mysql主从复制原理,异步怎么回事?半同步怎么回事 mysql有多个slave参与的半同步复制中,并不一定要等待全部返回 如何实现mysql主从服务器的半同步复制 怎么判断mysql是否是半同步复制 mysql 半同步复制怎么控制数据一致性 mysql的复制 半同步和同步的区别 在微信上买的汽车票怎么取票??需要知道神马 夏天厕所的异味让人难以忍受,该如何解决? 我新买的帕萨特,夏天开空调,异味特别重是怎么回事? 在微信的上海长途客运总站公众号买的汽车票 到哪里怎么取票 女人夏天下体有异味正常吗 微信出行服务汽车票怎么换票 夏天车里有异味怎么办? 夏天闷热导致房间甲醛异味大,该怎么办? 微信买的汽车电子票可以提前去取票吗? 夏天时卫生间的异味儿比较大,有什么办法可以快速去除? 夏天如何去除车内异味 想买一台1200快左右的笔记本电脑,哪款比较好求大神? 做梦梦见有人送我松籽是什么意思,好不好。 现在我在学习MySQL,问问怎么复制粘贴数据库 1200元左右的笔记本电脑 mysql 同步问题,目前是做成环状,但是其中一台断了的时候,有些就不想同步了。 1200淘宝二手笔记本电脑怎么样,可以用吗,是不是假的 梦见松子是黑色的是什么意思? mysql 5.6半同步复制 如果slave挂了,是不是写不进去了 买1200左右的笔记本电脑玩游戏是不是很卡。 梦到自己结婚,还得到了一大包喜糖,其中有很多松子,麻烦高手解梦~~ 如果数据库主从半同步复制主库挂了怎么办 联想笔记本500-15acz 本人小白不懂,这二手本怎么样?可以玩游戏吗,1200值的吗 mysql复制基本原理流程是什么? s71200与笔记本电脑连接步骤 理光MP2014AD 打印机有网卡 如何设置网络扫描? 1200左右能买个什么样配置的笔记本电脑啊?大家给出个主意,本人对笔记本电脑不是太懂! 如何让mysql主从复制宕机后主动链接 有谁知道戴尔1200笔记本怎样换CPU? mysql5.6.20如何开启分区功能 1200元,买什么电脑笔记本最好