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

mysql5.6 做MHA注意哪些以及开启半同步复制是否对主库性能有影响

发布网友 发布时间:2022-04-29 19:18

我来回答

1个回答

热心网友 时间:2022-04-09 07:10

在谈这个特性之前,我们先来看看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
如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 嘴唇上有黑印用蜜蜡和棉线去除了胡须 mysql5.6比mysql5.5提升多少 Mysql5.6以后,说 innode 的 select 性能不输 myisam 了,为什么 mysql5.6.3需要优化吗 诺德股份盈利分析?诺德股份主力是谁?诺德股份股份诊股? 我想知道男生下面被打了一下会有多疼? 还有会痛很久? 600110 诺德股份公告?分析诺德股份股票,有大神说下吗?诊股平台诺德股份? 用一个生鸡蛋去磕另一个生鸡蛋,那么,被打破的一定是被磕的,为什么? 下面哪个不是mysql5.6的新特性 诺德股份战略分析?诺德股份主力意图?诺德股份股票股诊股? 诺德股份预测分析?诺德股份主力洗盘?诺德股份股股票诊股? 以下哪个不是mysql5.6新特性 nosql 诺德股份行情分析?诺德股份主力控盘?股票诺德股份诊股? 以下哪个不是mysql5.6新特性 诺德股份股票基本面?诺德股份财务指标分析?诺德股份叉牛诊股资金? mysql 5.6 怎么样 以下哪个是mysql 5.6的新特性,icp 诺德股份行业分析?诺德股份主力流出?诺德股份 诊股? 深度分析诺德股份?股票诺德股份股吧?牛叉诊股诺德股份? 诺德股份基本面和技术面分析?诺德股份大数据分析股票?诺德股份股票手机牛叉诊股? 诺德股份 技术分析?诺德股份 淘股吧?诊股诺德股份? mysql 5.6 5.7区别 mysql 5.6 5.5 哪个好 游戏王 求助 问一下时械神怎么克制 跟时械神打蛋疼死了 还有极星卡组怎么灭 最近被克制的好惨 家里养金鱼有什么风水说法吗? 华为p30转换插头是什么型号的? 家中养金鱼风水有什么讲究 家里养金鱼风水禁忌,养金鱼的方法有哪些 华为nova5z电池更换 家里养鱼有哪些风水讲究 金鱼风水助财运,但是你知道养金鱼该注意什么吗 家里养鱼好不好 华为nova5z怎么换电池排线 选择哪个的华为手机 Type-C 转接头更好?有好用的品牌吗? 请问风水专家,家里只养一条黑色的小金鱼没事吗? 请教关于养金鱼和风水的讲究。 养金鱼的风水问题,请老师指教 金鱼养几条风水好 金鱼风水禁忌 家中有病人,养金鱼是否与风水有关 家里养鱼和风水 金鱼怎么养风水好 家养金鱼的风水