Skip to main content

mysql高可用架构比较

mysql高可用架构比较

架构选型

在开始计划实施 MySQL 数据库高可用时,我们选择了比较流行的几大方案,分别进行了调研。

  • MHA:适用于一主多从的架构体系,在故障切换过程中,可从宕机的主库上保存二进制日志,最大程度的保证数据不丢失。但是需要 MHA 架构内所有的节点都必须可以 ssh互通。

  • MMM:(Master-Master replication manager for MySQL) 适用于双主架构,是一套支持双主故障切换和日常管理的脚本程序,虽无需架构内 ssh 互通,但是无法保存主库的二进制日志,所以数据一致性不如 MHA 高。

  • PXC:(Percona XtraDB Cluster)是 percona 公司提供的一套高可用方案,需要三个或以上 percona 版本的 DB 节点,该架构保证了数据强一致,但是同等硬件配置下,性能不如 MHA 和 MMM,尤其木桶效应明显,该方案还需依赖外部组件。

  • MGR:(MySQL Group Replication)是 MySQL 官方发布的高可用架构,该方案依赖于 MySQL5.7 版本,适用于主从架构,但是需要类似主库全表包含主键等相关依赖,成熟度不如以上方案,该方案同样需要依赖外部组件。

综上,在结合自身的业务场景,最终选择 MHA 作为 MySQL 集群的高可用方案。以下详细介绍 MHA 的体系结构及部署和测试的各项细节。

在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,或者服务器已经死机,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。