mysql 组复制-简介

MySQL组复制提供容错能力,确保多数成员存活时系统可用。包括多主和单主模式,采用先提交获胜的冲突解决策略。当网络分区发生时,系统会停止处理,具备内建的脑裂检测机制。组复制中的事务提交需要所有服务器同意,确保全局顺序。在多主模式下,对相同对象的并发DDL和DML操作不支持,且限制了大事务和级联外键。部署和故障处理需要管理员介入,包括手动调整成员和处理网络问题。
摘要由CSDN通过智能技术生成

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

对于一个提交的事务,组中的大部分要确保事务全局序列的顺序性,每个节点单独的决定是提交还是丢弃,然后所有的server确定最终的决定,如果有网络分区发生,导致部分的server没办法访问,发生分区,那么系统将会停止处理直到问题解决。所以组复制中有内建的,自动的脑力检测机制。

组复制跟普通的复制一样,也是shared-nothing的结构

在不同的server上并发的执行事务可能会遇到冲突,这种冲突会在certification的过程中被检测,如果并发的事务,在不同的server上执行,更新了相同的行,就会产生冲突,这种冲突的处理就是先执行的正常,后执行的被回滚。

组复制中的失败检测

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

组成员

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

组复制

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值