Mysql高可用方案对比
Mysql高可用 
HA解决方案	简介	开发语言	发布时间及组织	目前状态	架构方式	切换方式	优点	缺点	适用场景	安装使用
MHA	Master High Availability的简称,目前在MySQL高可用方面是一个相对成熟的解决方案	Perl	日本DeNA公司youshimaton(现就职于Facebook公司)开发并开源,于10年发布	开源社区活跃,有相关维护人员	至少3节点,主DB1台,从DB2-N台,IP地址N+2	自动切换,从服务器:选举具有最新更新的slave,尝试从宕机的master中保存二进制日志,应用差异的中继日志到其它的slave,应用从master保存的二进制日志,提升选举的slave为master,配置其它的slave向新的master同步	MHA除了支持日志点的复制还支持GTID的方式,同MMM相比,MHA会尝试从旧的Master中恢复旧的二进制日志,只是未必每次都能成功。如果希望更少的数据丢失场景,建议使用MHA架构。	MHA需要自行开发VIP转移脚本,配置相对繁琐,只监控Master的状态,不监控Slave的状态	作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。目前业界最普遍的高可用方案	yum或下载安装包手动安装
MMM	Multi-Master Replication Manager的简称,用于管理mysql主主架构的工具集	Perl	Google03年前的开源项目	最新资料日期为09年或12年,已停止维护	主DB2台,从DB0-N台,IP地址2N+1	手动切换,在slave上完成已传输的binlog,在master上关闭read_only,迁移VIP到slave	工具包相对比较完善,不需要额外的开发脚本	故障简单粗暴,容易丢失事务。必须是基于日志点的复制,不能支持gtid	读写都需要高可用,或基于日志点的复制方式	不建议使用
MGR	MySQL Group Replication的简称,MySQL 5.7版本开始支持无损半同步复制(lossless semi-sync replication),从而进一步提示数据复制的强一致性。实现了分布式架构下的数据一致性,同时提供高可用,高扩展,高可靠,金融级分布式方案。	MYSQL的插件,C或C++开发	MYSQL官方2016年12月12日在5.7.17版本发布的新技术	开源社区活跃,有相关维护人员	最少3节点,最多9节点,基于paxos协议复制,不同于异步复制的多Master复制集群。单主模式下,MGR集群会选出primary节点负责写请求,primary节点与其它节点都可以进行读请求处理.	自动切换,切换时间实测大概在3s左右	基本无延迟,延迟比异步的小很多,支持多写模式,但是目前还不是很成熟,数据的强一致性,可以保证数据事务不丢失	仅支持innodb,只能用在GTID模式下,且日志格式为row格式	对主从延迟比较敏感,希望对写服务提供高可用,又不想安装第三方软件,数据强一致的场景	MYSQL-server5.7.20及以上版本自带
MySQL InnoDB Cluster	MySQL官方17年发布的高可用架构方案——MySQL InnoDB Cluster	底层基于MGR的高可用架构方案								
Mycat	国内从业者基于阿里内部项目Cobar二次开发的改良版,属于数据库中间件,后端支持Mysql、Oracle、Mongodb等多种数据库	Java(Java1.7)	15年正式发布成熟社区版	风评较差,资料不足,开源社区不太活跃		自动切换,检测salve心跳,不通则切换		资料提示可能存在多点写入风险		下载安装包手动安装
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号