当前位置:首页 > 日记 > 正文

浅谈mysql的半同步复制

浅谈mysql的半同步复制
简介

MySQL通过复制(复制)实现了存储系统的高可用性,目前MySQL支持的复制方法是:

异步复制(异步复制):最简单的原理和最好的性能。但主要的准备之间的数据不一致的概率是非常大的。
半同步复制(半同步复制):与异步复制相比,半同步复制牺牲了某些性能,提高了主机和主机之间的数据一致性。
组(组复制复制):分布式基于Paxos算法的数据复制的一致性强。只要大多数的机器是活的,制度是保证可用。半同步复制相比,数据的一致性和系统可用性高复制组。

本文主要讨论MySQL的半同步复制。

半同步复制的基本过程

MySQL的半同步复制的实现是基于mysql.mysql异步复制支持两个稍微不同的半同步复制:after_sync和after_commit(受rpl_semi_sync_master_wait_wait_point)。

当半同步复制打开,主人会等待奴隶的响应或超时才返回。当Slave随着时间的推移,半同步复制退化为异步复制。这也是一个问题,在MySQL的半同步复制的存在。本文不讨论Salve超时的情况(不讨论了异步复制)。

对after_sync模式半同步复制的基本过程

的after_sync模式是半同步复制是由MySQL 5.7的支持,也是默认的半同步复制模式的mysql5.7:

在存储引擎中准备事务。
写交易的binlog,冲binlog磁盘。
等待至少一个奴隶确认接收
将事务提交给存储引擎(s)。

对after_commit模式半同步复制的基本过程

MySQL 5.5和5.6的半同步复制仅支持after_commit:

在存储引擎中准备事务。
写交易的binlog,冲binlog磁盘。
将事务提交给存储引擎(s)。
等待至少一个奴隶确认接收

对after_sync和after_commit两方法的总结

after_sync:在日志复制到主是奴隶,然后提交。

对主提交的所有事务都已复制到奴隶。

所有已复制到主事务中的奴隶事务都不提交(例如,在提交之前,主文件将复制到从属日志)。
然后复制日志的奴隶后after_commit:主犯。

所有主机上的所有提交事务不一定都复制到奴隶。(例如,主提交,还没有登录到从属副本)。

所有复制到奴隶的事务都在主进程上提交。

显然,在after_commit掌握的情况下,不能保证数据的一致性(主犯,没有能够登录到奴隶抄下来)。本文遵循只有after_sync模式。

mysql5.7.3开始支持配置半同步副本等待奴隶的反应数:rpl_semi_sync_master_wait_slave_count。
在after_sync模式异常情况分析

1:主延时开关的异常。

主执行,在binlog刷T事务到硬盘,总停机时间。Slave升级为主人。主人什么时候重启,崩溃恢复回滚T.主数据的一致性的交易。

主执行T的binlog刷交易到硬盘后,奴隶主在收到ACK(pendinglog)停机。Slave升级到大师。

2.1奴隶也未收到该交易的binlog然而,当主人重新启动,崩溃恢复将pendinglog直接的主要数据是不一致的。

2.2从已收到的交易中心主数据的binlog是一致的。

2的异常:主机关闭,而不是切换主机。仅考虑异常1的2.1。

当主人重新启动,pendinglog是直接提交。这时,主要数据是不一致的:

从连接到主并获取该交易的binlog异步复制的主要数据是一致的。

在奴隶可以复制交易binlog,如果主人发生宕机,硬盘损坏,数据不一致,对交易数据丢失。

异常处理

从以上异常情况的简单分析我们得知半同步复制处理主下来后重启(从没有pendinglog响应binlog)特殊情况。

主人下来了,不要换箱:
在崩溃恢复,主人等待连接和从复制到至少一个从副本binlog所有事务已提交。(对大师的地位和选择master_pos_wait()对奴隶)。

主人掉了,主动待机开关的情况:
当老法师重启的pendinglog回滚在崩溃恢复时间。(手动截断的硕士binlog不复制吗部分)

反射

为什么大师重启,崩溃恢复的过程中,是直接提交pendinglog,而不是重试请求的奴隶的反应吗

异步和半MySQL同步复制所引发的奴隶,而奴隶是主动连接主同步binlog。

没有主切换发生,机器重启后无法知道哪个机器是从机。

如果有一个切换,它不再是主人,那么将不会有更多的奴隶。如果你继续等待,它不能正常工作。
总结

MySQL半同步复制存在以下问题:

随着时间的推移,Slave将退化为异步复制。
当主位下降时,数据的一致性不能得到保证,需要进行人工处理。
副本是串行的。
因为在这些问题的主要数据一致性的MySQL的高可用性服务的互联网服务7×24的影响,因此企业纷纷使出自己的补丁:腾讯tdsql,WeChat PhxSQL,Ali AliSQL,网易innosql。

MySQL的官员纷纷推出MySQL组复制mysql5.7 -一个新的复制模式。

参考

MySQL半同步复制的数据一致性

MySQL高可用性解决方案

损失少半同步复制MySQL 5.7.2

增强semisync复制

相关文章

js正则表达式学习笔记

js正则表达式学习笔记

正则表达式,学习笔记,电脑软件,js,正则表达式:在字符串中查找、替换和提取信息。(不支持注释和空白,必须写在一行中) 正则表达式的创建:字符(直接的语法),是一条斜线之间。 例如: var创建了一个规则,将所有结束与字母s字符串匹配,并分配给模式。 …

对两类对象属性的微信程序分配

对两类对象属性的微信程序分配

对象,分配,属性,两类,程序,两种分配值在微信小程序属性的对象 对应config.wxml 1期 对应config.js 数据:{ 定义对象 配置:{ } } SwitchChange:功能(e){ 用于属性分配对象 配置config1 = { }; console.log(E); } SwitchChange:功能(e){ 用于属性分配…

在MySQL1033错误信息文件的问题的

在MySQL1033错误信息文件的问题的

文件,错误信息,解决方案,电脑软件,frm,问题描述 1。采集站数据库 2。没有移动数据的问题,移动后有数据的收集,个别菜单是错误的。 求解过程 0。不同程度的Niang,Gu Ge,没有水果。 1。原始站数据库版本5,新的家庭数据库版本4.2,猜出版本是错误…

PS是如何产生HDR效果的

PS是如何产生HDR效果的

效果,电脑软件,PS,HDR,我们可能有一个滤镜是在HDR时使用手机摄像头,如果仔细观察可能是用手机拍上不同的滤镜来选择最好的拍摄,HDR更通俗点说高清还是细节,一般需要几张我们共同合成的图片,看看图片。 软件名称:Adobe PS图象处理软件8全绿色中…

MySQL的默认编码是UTF-8修改my.ini

MySQL的默认编码是UTF-8修改my.ini

默认编码,方法,修改,电脑软件,MySQL,mysql汉字混沌码的原因 MySQL的默认编码是latin1是i-8859-1别名,但会不支持中文,所以应该改为UTF-8或GBK 1。关闭mysql服务器,这是非常重要的。 2。设置编码的mysql数据库通过my.ini 例如在MySQL数据库…

WPS演示教程如何查看动画效果PPT基

WPS演示教程如何查看动画效果PPT基

教程,动画效果,演示,电脑软件,WPS,当幻灯片显示,每个滑动打开它往往是自然的,我经常插入动画演示。接下来,萧边会告诉你什么是动画效果在WPS演示如何将这些动画效果应用到幻灯片。欢迎来到我们的学习。 在WPS演示中查看动画效果的方法 wps20…

PS图象处理软件只是做了一个粗糙的

PS图象处理软件只是做了一个粗糙的

金属丝,图象,处理软件,电脑软件,PS,制造金属管的原理是用极坐标来扭曲金属的颜色。接下来,萧边介绍了PS图象处理软件的简单方法把纹理的金属导体,这是非常简单的。你可以简单地理解它。 步: 1。建立在PS图象处理软件的一个新的文件,其大小100…

对php7新算子的使用实例分析

对php7新算子的使用实例分析

实例分析,算子,电脑软件,本文阐述了新的php7操作员使用。分享给您参考,如下: null合并运算符 这实际上是三元操作符的转换,减少了代码量。 /原始方法 / / $ LIG = isset(_get美元{ 'lig ' }){ }:_get美元'lig'bee; 光_get { 'lig美元=美元…

如何建立表数字格式的常见问题

如何建立表数字格式的常见问题

常见问题,数字,格式,电脑软件,在word中插入表单时,通常会将数字添加到表中,那么如何快速编号呢让小编辑带你一路设置表格式数。 Word2010设置表数步: 1、打开Word2010中插入,在功能栏选择绘制;形式;然后画的好形式。 2,然后将鼠标定位在第一个单…

PS图象处理软件设计了一个独特的文

PS图象处理软件设计了一个独特的文

软件设计,图象处理,文本,为例,海报,先看看最终结果: 步骤1 -创建背景 首先,一个尺寸的1920倍,打开一个空白文档;1200像素,填充背景色# 242424.copy背景层,命名为胶片颗粒。然后去滤镜-艺术-胶片颗粒。应用设置如下。 设置图层的不透明度为50%,现…

如何改变回车键移动方向excel2010e

如何改变回车键移动方向excel2010e

教程,回车键,电脑软件,在excel2010,回车键时点击,移动的默认方向是向下的,但如何改变到左边或右边应该改变。 改变返回键的方向excel2010步骤 1、双击桌面上的excel2010图标鼠标左键并打开它。开始excel2010表编辑器,如图所示; 2,在打开的窗口…

PS是怎样画五种颜色和五个环的

PS是怎样画五种颜色和五个环的

五种,的是,颜色,是怎样,电脑软件,当我和你唱这首歌的时候,它让我们想起了奥运会,尤其是五环的象征,那么如何使用这个软件来制作五枚五环标记呢我们现在分享生产的步骤和过程,希望能对您有所帮助和启发。 软件名称:Adobe PS图象处理软件8全绿色…