MYSQL高可用集群方案总结
一,常见的高可用MYSQL解决方案
高可用解决方案:
1,数据共享或同步数据,数据共享可通过SAN(Storage Area Network)来实现,数据同步可通过rsync软件或DRDB技术来实现
2,处理failover,宕机迁移至备份服务器,不影响业务运行
主从复制解决方案:
MySQL自身的高可用解决方案,数据同步方法采用的是MYSQL replication技术,MYSQL replication技术是日志复制的过程,一主多从,从服务器拉取主服务器的二进制日志文件,然后再将日志文件解析成相应的SQL在从服务器上执行,来达到数据的一致性。
注意:此处的从服务器只能提供读操作,并且当主服务器发生故障事,必须手动failover,将一台从服务器变成主服务器,实现90%的SLA(服务水平协定),一般在应用环境,MYSQL replication技术配合高可用的集群软件来实现自动的failover,达到95%的SLA
MMM高可用解决方案:
MMM(Master-Master Replication Manager for MYSQL)MYSQL主从复制管理器,提供了MYSQL主主复制配置的监控,故障转移和管理的一套可伸缩的脚本套件。在MMM高可用解决方案中,典型的应用是双主多从架构,通过MYSQL replication技术实现两台服务器互为主从,且在任何时候只有一个节点可以写入,避免多点写入的数据冲突。同时,当可写的主节点故障时,MMM套件可以立刻监控到,然后将服务自动切换到另一个主节点,继续提供服务,来实现MYSQL高可用。这种方案是比较成熟的的MYSQL高可用解决方案,可以实现99%的SLA。
Heartbeat/SAN高可用解决方案:
此解决方案是借助第三方软硬件实现的,这个方案处理failover的方式是高可用的集群软件Heartbeat,它监控和管理各个节点间的连接的网络,并监控集群服务,当节点出现故障或者服务不可用时,自动在其他节点启动集群服务。
在数据共享方面,通过SAN存储在共享数据,在正常状态下,集群主节点将挂载存储进行读写,当集群发生故障时,Heartbeat会首先通过一个仲裁设备将主节点挂载的存储设备释放,然后在备用节点上挂载存储,启动服务。这种方式特点是成本高,存在脑裂的可能,可实现99.99%的SLA
Heartbeat/DRDB高可用解决方案:
这个也是借助第三方软件实现的,处理failover依旧采用Heartbeat,不同的是,数据共享方面采用了基于块级别的数据同步软件DRDB(Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案)来实现。和SAN不同的是,SAN是共享,DRDB是通过服务器之间的网络复制数据。特点:复杂,存在脑裂问题,可实现99.9的SLA
MYSQL Cluster高可用解决方案:
MYSQL Cluster由一组服务节点构成,每个服务节点上均运行着多种进程,包括MYSQL服务器、NDB Cluster的数据节点、管理服务器,以及专门的数据回访程序,特点,功能强大,配置繁琐,可达到99.999%的SLA