往期专题请查看www.zhaibibei.cn
这是一个坚持Oracle,Python,MySQL原创内容的公众号
1. 关于MGR
想要建立一个容错的系统,我们需要使所有的组件冗余,换句话来说就是组件可以被移除而不影响系统的功能,因此最大的挑战是让多个服务器协同起来以达到一致的状态,这时可以当成一个数据库或者最终的状态是一致的,而这些在数据库复制中尤为重要
MySQL组复制通过服务器之间的强大协调提供分布式状态机复制。
当服务器在同一个组时他们自动协调
它既可以设为单主模式也可以设置为多主模式
MGR有一个内置的 group membership service 可以在任何时间点提供组一致性和可用性的视图,当成员有加入和移除时会自动的更新
对于一个提交的事务,MGR会按照一定的顺序去同意该操作,无论是同意提交还是回滚所有服务器是独立的进行的,不过需要所有服务器是做出相同的决定以达到一致性
MGR提供一套内置的自动的,防止脑裂的机制
如果由于某些原因导致无法达成共识,则系统无法继续运行直到问题解决
所有的这些都是由Group Communication System (GCS) 协议提供支持。他提供如下功能
failure detection mechanism
group membership service
safe and completely ordered message delivery
所有的这些都是用来保障组内数据复制一致的
内部采用Paxos 算法作为组通讯引擎
2. 参考资料
https://dev.mysql.com/doc/refman/5.7/en/group-replication-background.html
可点击阅读原文获得更好的阅读体验,推荐在PC端阅读
也可在公众站内搜索中回复 mha 搜索相关内容
或直接打开个人网页搜索
http://www.zhaibibei.cn
往期专题包括:
Python 自动化运维
MySQL 安装
mysqldump命令详解
mysqlbinlog命令详解
xtrabackup工具详解
打造属于自己的监控系统
Python爬虫基础
Oracle awr报告全解析
Oracle ASM全解析
Oracle Data Guard全解析
Oracle ClusterWare全解析
Oracle常见参数解析
Oracle常见故障处理
Oracle SQL优化案例

觉得文章不错的欢迎关注,转发,收藏~




