在2020年1月13日,MySQL官方发布了MySQL8.0.19。
在新的版本中,MySQL官方引入了新的高可用解决方案MySQL InnoDB ReplicaSet。
一、介绍
(图来自官方博客mysqlserverteam.com)
MySQL InnoDB ReplicaSet是基于MySQL 主从复制的一种高可用方案,能够实现手动切换/故障转移。
InnoDB ReplicaSet使用到的技术有:gtid、semi-sync 、clone plugin、 mysql-router、mysqlshell。
clone plugin插件,实现物理备份和传输到从库中。
mysqlshell 通过命令的方式执行命令,构建和管理复制,相当于一个admin的管理方式。
mysql-router 理解为中间件,在MySQL切换的过程中,可以使应用尽量无感知。
gtid和semi-sync保证MySQL复制的一致性。
二、使用限制
InnoDB ReplicaSet本身不能提供高可用性, InnoDB ReplicaSet的限制包括:
解读:使用限制中的2 还是可能会存在,当主从数据延迟较大然后数据库主机突然宕机,会导致数据不一致。
三、具体操作
使用和部署InnoDB ReplicaSet,建议参考官方文档:
https://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-replicasets-introduction.html
操作视频:
https://asciinema.org/a/Lauy6SgHt2yGYzHdwamD1iTVa
大家可以看一下官方文档和视频,先来感受一下。相信不久之后,会有大神写出如何部署InnoDB ReplicaSet的文章。
四、 未来期待
目前官方推荐的高可用解决方案:InnoDB ReplicaSet和 InnoDB Group Replication,提供给大家选择和使用。
InnoDB Group Replication:对数据一致性要求更高,对性能有损失。
在8.0中InnoDB Group Replication有更丰富的管理、监控命令。
InnoDB ReplicaSet:基础的主从复制+手动切换/故障转移。看后续官方发展力度,在某种程度上可以替换mha之类的高可用组件。
五、扩展阅读
https://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-replicasets-introduction.html
https://mysqlserverteam.com/introducing-mysql-innodb-replicaset/
https://asciinema.org/a/Lauy6SgHt2yGYzHdwamD1iTVa
关于「3306π」社区
围绕 MySQL 核心技术,将互联网行业中最重要的数据化解决方案带到传统行业中;囊括其他开源技术Redis、MongoDB、HBase、Hadoop、ElasticSearch、Storm、Spark等;分享干货知识,即便是赞助商,也要求如此,拒绝放水。