mysql高可用集群方案

Posted rouqinglangzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql高可用集群方案相关的知识,希望对你有一定的参考价值。

这里有一篇关于mysql高可用方案的干货文章:[干货分享] 一文了解数据库高可用容灾方案的设计与实现

网友们公司中的使用方案讨论:想问各位大大 MySQL 是怎么做高可用的?

一、Mysql高可用解决方案

方案一:共享存储

一般共享存储采用比较多的是 SAN/NAS 方案。

方案二:操作系统实时数据块复制

这个方案的典型场景是 DRBD,DRBD架构(MySQL+DRBD+Heartbeat)

 

方案三:主从复制架构

主从复制(一主多从)

MMM架构(双主多从)

MHA架构(多主多从)

 

方案四:数据库高可用架构

这种方式比较经典的案例包括 MGR(MySQL Group Replication)和 Galera 等,最近业内也有一些类似的尝试,如使用一致性协议算法,自研高可用数据库的架构等。

1.MGR(MySQL Group Replication,MySQL官方开发的一个实现MySQL高可用集群的一个工具。第一个GA版本正式发布于MySQL5.7.17中)

2.Galera

 

其它方案:

MySQL Cluster(ndb存储引擎,比较复杂,业界并没有大规模使用)

PXC(Percona XtraDB Cluster)

 

如何选择合适的Mysql集群架构?

MHA看业务规模和需求选择

mysql官方的Mysql Cluster。比较复杂,团队有人、资源充足,可以考虑尝试,貌似用的人不多。

小团队或资源不足或小项目直接建议阿里云、腾讯云

 技术图片

二、部分常见方案的简介

1.Mysql主从架构

技术图片

2.MySQL+MHA 架构

参考:生产环境MySQL数据库集群MHA上线实施方案

技术图片

MHA,全称为MasterHigh Availability Manager and Toolsfor MySQL,是日本的一位MySQL专家采用Perl语言编写的一个脚本管理工具,该工具仅适用于MySQLReplication 环境,目的在于维持Master主库的高可用性。

MHA是基于标准的MySQL复制(异步/半同步)。

MHA是由管理节点(MHA Manager)和数据节点(MHA Node)两部分组成。

MHA Manager可以单独部署在一台独立机器,也可以部署在一台slave上。

 

3.MySQL+MMM 架构

可参考:MySQL-MMM实现MySQL高可用

技术图片

 

MMM优缺点
  优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性。
  缺点:Monitor节点是单点,可以结合Keepalived实现高可用。

4.MySQL+DRBD 架构(MySQL+DRBD+Heartbeat)

 官网:https://www.linbit.com/en/drbd-community/drbd-download/

 

三、读写分离解决方案

  • 客户端解决方案(应用层):TDDL、 Sharding-Jdbc (常用shardding-jdbc)
  • 中间件解决方案(代理层):mysql proxy、mycat、altas  (常用mycat)

技术图片          技术图片 

 

客户端解决方案的特点:

优点:

  1、程序自动完成,数据源方便管理

  2、不需要维护,因为没用中间件

  3、理论支持任何数据库 (sql标准)

缺点:

  1、增加了开发成本、代码有入侵

  2、不能做到动态增加数据源

  3、程序员开发完成,运维参与不了。

 

中间件解决方案的特点:

优点:

  1、数据增加了都程序没用任何影响

  2、应用层(程序)不需要管数据库方面的事情

  3、增加数据源不需要重启程序

缺点:

  1、程序依赖中间件,导致切换数据库变的困难

  2、增加了proxy 性能下降

  3、增加了维护工作、高可用问题。

 

参考:

浅谈MySQL集群高可用架构

[干货分享] 一文了解数据库高可用容灾方案的设计与实现

以上是关于mysql高可用集群方案的主要内容,如果未能解决你的问题,请参考以下文章

高可用性负载均衡的mysql集群解决方案

Flink高可用集群搭建

Mysql 集群高可用方案 MHA

MySQL高可用集群之MHA

# IT明星不是梦 #MySQL高可用集群之基于MyCat部署HaProxy实现高可用

MySQL集群之五大常见的MySQL高可用方案(转)