作者:张  发表于:2014-08-19
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明

(http://blog.csdn.net/mrz001 )

MySQL高可用方案

1    目前主流的MySQL方案

- MySQL replication with manual failover

- Heartbeat/SAN/Nas

- Heartbeat/DRBD

- NDB Cluster

关于高可用等级

Level of availability

Simple replication    98 to 99.9+%

Master-Master with MMM manager      99%

Heartbeat/SAN (depends on SAN)   99.5% to 99.9%

Heartbeat/DRBD     99.9%

NDB Cluster     99.999%

如果要求MySQL服务达到99.99%,则只有NDB Cluster

关于数据的安全性,

Data 100% safe

MySQL replication   no

Master-Master with MMM manager      no

Heartbeat/SAN (depends on SAN)   yes

Heartbeat/DRBD     yes

NDB Cluster     yes

1.1   现有高可用方案分析

Mysql作为一款开源软件经过多年的发展,已经形成很多套实现高可用方案,并且均都投入生产使用,主要为这几种:mysql + replication 、mysql + heartbeat + 共享存储、mysql + drbd + heartbeat 、 mysql cluster。以下简要对各个方案进行分析。

2    Mysql+replication

Mysql的复制(Replication)是一个异步的复制,从一个Mysqlinstace(称之为Master)复制到另一个Mysql instance(称之Slave)。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(Sql进程和IO进程),另外一个进程在 Master(IO进程)上。

Mysql replication方案拓扑图

2.1   Mysql+replication主从复制拓扑图

方案具体解释:

要实施复制,首先必须打开Master端的binary log(bin-log)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。

2.2   Mysql+replication优缺点

优点:易实施、成本低、经济实惠、后期维护方便,且由于整套系统架构简单,不涉及到存储及双机软件,因此系统出现故障率很低。方便做到读写分离。

缺点:在主机出现问题后不能自动切换到备份机,需要人工干涉更改IP地址。

3    mysql + heartbeat + 共享存储

HA双机热备软件将操作环境推广到一种群集操作系统。群集是一种松散耦合的计算节点集合,提供网络服务或应用程序(包括数据库、web 服务和文件服务)的单一客户视图。

HA双机热备软件的目标是:

1:减少或消灭由软件或硬件故障引起的系统停机时间

2:提供增强的系统可用性,能够不必关掉整个群集就可执行维护

3.1   Mysql+heartbeat+共享存储方案拓扑图

方案具体解释:

本方案采用高可靠性的HA双机热备软件来保证服务的高稳定性及连续性。默认情况下两台mysql机器只有一台机器在工作,当工作机mysql主机出现问题后,系统将自动切换到mysql备机上继续提供服务,而整个过程只需要30秒的时间,当mysql主机故障维修完毕后,服务将自动切换回mysql主机上继续提供服务。

3.2   Mysql+heartbeat+共享存储优缺点

优点:安全性、稳定性高,出现故障系统将自动切换,从而保证服务的连续性。

缺点:相对mysql replication成本提高,需要有共享存储设备。

4    Mysql+drbd+heartbeat

此方案除了刚刚介绍完的heartbeat外,主要用了DRBD这个工具,DRBD是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络RAID-1功能.当你将数据写入本地

文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文件系统中.

本地(主节点)与远程主机(备节点)的数据可以保证实时同步.当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用.

4.1   Mysql+drbd+heartbeat方案拓扑图

4.2    Mysql+drbd+heartbeat优缺点

优点:安全性、稳定性高,出现故障系统将自动切换,从而保证服务的连续性,相对mysql+heartbeat+存储来说对大优点是节约了存储这个硬件设备。

缺点:mysql主机宕机,切换到备机,备机接管服务,待主机修复完配置failback机制的话会发生脑裂情况,需要手工执行命令进行主机接管。

5    Mysql cluster

MySQL集群是一种分布式设计,目标是要达到没有任何单点故障点。因此,任何组成部分都应该拥有自己的内存和磁盘。任何共享存储方案如网络共享,网络文件系统和SAN设备是不推荐或不支持的。通过这种冗余设计,MySQL声称数据的可用度可以达到99。999%。

5.1   Mysql cluster方案拓扑图

5.2   Mysql cluster优缺点

优点:安全性、稳定性高,可以在线增加节点,官方声称可用度可达到99.999%。

缺点:至少三个节点,对主机的数量有要求,无形增加方案成本、对于数据节点要求内存一致、对于引擎只能使用ndb、不支持外键功能、管理复杂

6    总结

mysql cluster 这个方案,数据库引擎必须为NDBCLUSTER,ndb引擎的硬性要求导致了很大的限制;其次管理复杂,需要使用配置并管理3节点(管理节点、存储节点、SQL节点),可靠性最高,成本较高。

Mysql replication 这个方案,配置方便,但对mysql的同步机制没有高可用保障,同时结合keepalived能实现服务自动切换。

Mysql + drbd + heartbeat这个方案虽然能方便的做到主机到备机的切换,也能节约硬件的成本,但是备机向主机回切的过程中drbd的限制容易产生脑裂情况,而且drbd的机制在一定程度上降低了MySQL数据库的性能。

myslq + heartbeat + 共享存储方案,此方案对硬件有要求,需要一个共享存储设备,在出现问题后的故障切换以及主机恢复资源的回切都表现良好,固有条件的情况下优先考虑。

MySQL高可用方案相关推荐

  1. MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

    MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...

  2. mysql高可用方案MHA介绍

    mysql高可用方案MHA介绍 概述 MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10-30秒内),完成故障切换,部署MHA, ...

  3. MySQL高可用方案-PXC环境部署记录

    之前梳理了Mysql+Keepalived双主热备高可用操作记录,对于mysql高可用方案,经常用到的的主要有下面三种: 一.基于主从复制的高可用方案:双节点主从 + keepalived 一般来说, ...

  4. MYSQL(高可用方案)

    本次专题是 MySQL高可用方案选型,这个专题想必有很多同学感兴趣. 高可用的意义以及各种不同高可用等级相应的停机时间我就不必多说了,直接进入主题. 可选MySQL高可用方案 MySQL的各种高可用方 ...

  5. 带你玩转Mysql高可用方案--PXC

    目录 理论篇 基于Galere协议的高可用方案:pxc PXC介绍 PXC特性 PXC优缺点 PXC原理描述 PXC的架构示意图 数据读写示意图 下面看传统复制流程 异步复制 半同步 超过10秒的阀值 ...

  6. MySQL高可用方案之MHA

    目录 一.简介 二.MHA特点 三.搭建MySQL MHA 1.安装MHA 2.在所有服务器上配置无密码认证 3.在manager节点上配置MHA 4. manager节点编辑配置文件,管理 mysq ...

  7. MySQL高可用方案选型参考

    高可用的意义以及各种不同高可用等级相应的停机时间我就不必多说了,直接进入主题. 可选MySQL高可用方案 MySQL的各种高可用方案,大多是基于以下几种基础来部署的: 基于主从复制: 基于Galera ...

  8. mysql高可用架构介绍_介绍详细的MySQL高可用方案

    概述 MySQL高可用,顾名思义就是当MySQL主机或服务发生任何故障时能够立马有其他主机顶替其工作,并且最低要求是要保证数据一致性.因此,对于一个MySQL高可用系统需要达到的目标有以下几点: 数据 ...

  9. 五大常见的MySQL高可用方案

    五大常见的MySQL高可用方案 1. 概述 我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面: 如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间, ...

最新文章

  1. 系统启动过程Linux
  2. [Tomcat]Tomcat6和Tomcat7的区别
  3. 3_深度学习中显卡的使用和显存的分配(20181213)
  4. 稀疏自编码器符号一览表
  5. VTK:选定的顶点和边用法实战
  6. K8S Learning(10)——Pod配置
  7. 使用matlab画半透明椭圆
  8. 高手追小萝莉的故事(洛谷P1184题题解,Java语言描述)
  9. 对ExtendedWebBrowser的再扩展
  10. GCC:使用图对比编码的图神经网络预训练模型 KDD2020
  11. SpringBoot中注册Servlet三大组件
  12. Django—自定义分页
  13. 火狐firebug和firepath插件安装
  14. 干货 | 云解析DNS之网站监控
  15. sqli-labs(32-37)
  16. java strlen_字符串长度函数strlen和mb_strlen的区别示例介绍
  17. linux firefox体验,Firefox插件 让你在桌面浏览器体验Firefox OS(附安装教程)
  18. 分享几个appstore之外的iOS软件下载网址
  19. 几种intel CPU性能对比
  20. 使用selenium自动秒抢淘宝商品(附详细入门指南)

热门文章

  1. 大连计算机office办公,大连办公office软件学习内容
  2. Mac上十个必备的效率软件
  3. 电脑中休眠和待机的区别
  4. 身份证识别sdk在生活中的广泛应用
  5. ps批量处理dds转tga
  6. 【小程序云开发】不用后端也能构建完整的微信小程序
  7. 名帖82 苏轼 行楷《前赤壁赋诗卷》
  8. 用Python写一个植物大战僵尸
  9. 集群(1)---集群的概念
  10. a标签download属性无效_html常用标签大全