1、故障检测。组复制包括一个故障检测机制,它可以找到并报告哪些服务器已经停机。
如果服务器A在规定的时间内没有从服务器B收到消息,就会超时,引起怀疑。那么,如果小组同意怀疑是真的,那么小组决定给定的服务器就会停机。也就是说,小组中的其他成员将采取协调决策,以排除给定成员。
如果服务器与组的其他部分隔离,则怀疑所有其他服务器都失败了,但由于无法与组达成协议(因为无法确保法定票数),则怀疑没有结果。服务器以这种方式与组隔离时,无法执行当地事务。
2、组成员服务。MGR依赖于组成员服务,内置于插件中。
它定义了哪些服务器在线并参与团队。在线服务器列表通常被称为视图。因此,团队中的每个服务器都有一致的视图,包括在给定时间积极参与团队的成员。
服务器不仅要同意提交事务,还要同意当前视图。因此,如果服务器同意新服务器成为组的一部分,组本身将重新配置为集成服务器,从而触发视图变化。相反,如果服务器离开组,组会动态更新配置,触发视图变化。
成员离开成分,主动和被动。主动离开会,启动组的动态重新配置,会触发所有其他成员在没有服务器的情况下必须达成新的视图协议。被动离开(如意外停止或断网)时,故障检测机制会建议重新配置组,这需要组中大部分服务器的同意。如果组不能达成协议,系统就不能动态改变配置,这意味着管理员需要介入解决这个问题。
3、容错。
在实现Paxos分布式算法之上,MGR需要大多数服务器处于活动状态才能达到法定票数,从而做出决定。这样会直接影响到系统能够容忍的故障机数,但是不会影响组复制自己和整体功能。容忍f故障机所需的服务器数n为:n=2*f+1。
在实践中,为了容忍一台故障机,该组必须有三台服务器,因为在这个时候,如果一台服务器出现故障,仍然有两台服务器组成大多数,并且允许系统继续自动做出决定,继续提供服务。但是如果第二台服务器继续失败,那么该组(剩下的服务器)就会被阻止,因为没有大多数票可以决定。
以上就是mysql组复制的用处,希望对大家有所帮助。更多mysql学习指路:MySQL
推荐操作系统:windows7系统、mysql5.8、DELL G3电脑