mysql5.7新特性组复制官网简易翻译

组复制
在mysql57中出了组复制的功能,在高可用性上对dba来说更加方便了,组复制提供了容错能力,只要组中的大多数的成员存活,那么系统就是可用的,组复制有2中形式,多master,所有server都能接受更新和单master自动选主,只有master接受更新,有更新冲突的时候,会采用先提交获胜的策略,回滚掉后提交的,组复制中对于读写的事务的提交并不是有原始的server单独决定的,需要所有的server决定是否提交,在原始server上提交的时候,该server会发送一个广播,包含行改变及行的唯一标识符,然后这个事务有个全局总顺序,确保每个server上接收的是相同顺序的事务,在多master模式中,应用端需要处理一些该模式下的异常。

普通的mysql异步复制方式如下:

这里写图片描述

组复制的方式:
这里写图片描述
1492139108174-268.png

组复制中的失败检测

内部有机制来发现及报告哪个server是静默的并假定是死亡的,失败检测器提供可能失败sevrver的信息,如果组都同意这个server可能是死亡的,那么就认定他是死亡的server,并排除。当server没有回应的时候,就开始检测过程,但一个server与组中其他成员孤立的时候,这个server会怀疑别的server都失败了,但他不能与组中大多数达成一致,他的怀疑就是无效的,所以他是不能执行任何的本地事务的。

组成员

server不但要同意事务提交,还要维护当前视图,如果server将一个新的server认为是组的一部分,那么组会自动重新配置,同样的,,一个server离开后,组信息也会重新配置。如果因为异常原因,server在离开组后,如果组没有达成一致,那么为了防止脑裂的发生,系统会被block,需要管理员去手工处理修复。

容错能力

Group Size

Majority

Instant Failures Tolerated

1

1

0

2

2

0

3

2

1

4

3

1

5

3

2

6

4

2

7

4

3

组复制中的一些限制

1数据表要使用innodb存储

2表上要有主键

3使用ipv4

4网络的性能要好

5复制要使用行复制的模式

6gtid模式要打开

7事务的savepoints不被支持

8多master上不支持外键

9多主上serializable事务隔离级别不会被支持
个人感觉,使用了57这个功能后,可以替换mha,不知道稳定性怎么样,待测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值