MYSQL数据库高可用方案探究
MySQL作为最关键的应用数据存储中心,如何保证MySQL服务的可靠性和持续性,是我们不得不细致考虑的一个问题。当master宕机的时候,我们如何保证数据尽可能的不丢失,如何保证快速的获知master宕机并进行相应的故障转移处理,都需要仔细考虑与规划。
要保证MySQL数据不丢失,replication是一个很好的解决方案,而MySQL提供了一套强大的replication机制,replication能极大地提升数据安全,异步复制的方式也保证了sql读写性能不受太大影响。在大量企业长期的使用和实践中,已经形成多套可靠的mysql高可用方案,如: keepalived+replication,MHA, MMM, heartbeat+共享存储,mysql cluster等等。
HA的三种工作方式:
(1)主备方式
工作原理:主机工作,备机处于准备状况;当主机宕机时,可以配置备机接管主机的一切工作,待主机恢复正常后,再按使用者的设定是否将服务切换到主机上运行,mysql自带的replication就是这样的一种工作方式。
(2)双机互备方式
工作原理:两台主机同时运行服务工作且相互检测服务可用性,当任一台主机宕机时,另一台主机立即接管它的一切工作,保证业务连续性和可靠性,该双机热备方式需要第三方HA软件的支持,如keepalived,heartbeat,以及ROSEHA等商业软件。
(3)集群工作方式
工作原理:多台主机一起工作,运行同样的一个或几个服务,各服务定义一个或多个备用主机或实行负载均摊,当某个主机故障时,运行在其上的服务就可以被其它主机接管,集群内任何一个主机宕机不影响业务的持续性。Mysql cluster 就是这样的集群工作方式。
先介绍以下为几种常见的mysql高可用方案:
方案一:
MYSQL+REPLICATION
方案概述:
MySQL复制基于主服务器在二进制日志中记录所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志 每个从服务器从主服务器接收二进制日志并保存到本地文件中,即中继日志。从服务器SQL线程读取中继日志并执行日志中包含的更新,从而使本地数据与主服务器保持一致。
方案拓扑:
优点:
成本低、经济实惠、后期维护方便,整套系统架构简单,故障率低,便于实现读写分离。
缺点:
不能实现故障自动转移,需要人工干涉主从切换,更改应用层的数据库IP地址。
方案二:
MYSQL+KEEPALIVED/HEARTBEAT+共享存储
方案概述:
本方案是典型的双机热备架构,采用高可靠性的HA双机热备软件来保证数据库服务的稳定性及连续性。正常情况下两台mysql主机一台出于active状态,一台出于standby状态,HA软件维持一个VIP提供对外访问,当active主机出现问题宕机后,系统将自动切换到备机上继续提供服务,而整个过程只需要几秒到几十秒的时间即可完成,当mysql主机故障维修完毕后,服务可自动回切。本方案需共享存储的支持,所有mysql数据均保存在共享存储上。
方案拓扑:
优点:
维护简单,安全性、稳定性高,出现故障系统将自动切换,采用vip故障切换应用层无感知。
缺点:
需要有共享存储设备,成本较高,双机热备不支持读写分离。
方案三:
MYSQL+MASTER-MASTER-REPLICATION+LVS/HAPROXY/NGINX
方案简介:
本方案基于mysql replication技术,采用master-master replication的双主复制模式,两台服务
器都可读可写,都处于active状态,前端LVS(或HAPROXY或NGINX)代理并路由访问请求,将
写请求(应用层实现读写分离)分发到server1,将读求分发到server2[或负载均衡到server1和
server2],server1和server2互为主从,当任何一台发生故障时可双向实现故障转移,故障恢复可自
动回切。
方案拓扑:

优点:
秒级故障自动切换,可自动回切,采用固定ip故障切换应用层无感知,可实现读写分离。
缺点:
架构稍显复杂,后期有一定维护难度,包括其他master-master replication 架构的缺点。
方案四:
MYSQL+REPLICATION+MHA
方案简介:
MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用。
在宕机的时间内(通常10—30秒内),完成故障切换,部署MHA,可避免主从一致性问题,不影
响服务器性能,不改变现有部署,支持在线切换,从当前运行master切换到一个新的master上面,
只需要很短的时间,此时仅仅阻塞写操作,并不影响读操作,便于主机硬件维护。在有高可用和数
据一致性要求的系统上,MHA 提供了有用的功能,当master crash后,MHA自动识别slave间
relay log events的不同,然后应用到不同的slave,最终所有slave都同步。
方案拓扑:

优点:
使用vip提供访问请求,有最好的数据一致性,master crash不会导致其它从库不一致性,故障自动
快速切换,方案较为成熟,可实现一主多从,支持读写分离。
缺点:
需3台及以上服务器,发生故障切转移后主程序自动退出,需排除故障后手动添加到ha集群再启动 MHA,维护难度较大。
MYSQL数据库高可用方案探究的更多相关文章
- MySQL数据库高可用方案
一.什么是高可用性: 高可用性=可靠性,它的本质就是通过技术和工具提高可靠性,尽可能长时间保持数据可用和系统运行,实现高可用性的原则,首先要消除单点故障,其次通过冗余机制实现快速恢复,还有就是实现容错 ...
- [转]MYSQL高可用方案探究(总结)
前言 http://blog.chinaunix.net/uid-20639775-id-3337432.htmlLvs+Keepalived+Mysql单点写入主主同步高可用方案 http://bl ...
- 美团点评MySQL数据库高可用架构从MMM到MHA+Zebra以及MHA+Proxy的演进
本文介绍最近几年美团点评MySQL数据库高可用架构的演进过程,以及我们在开源技术基础上做的一些创新.同时,也和业界其它方案进行综合对比,了解业界在高可用方面的进展,和未来我们的一些规划和展望. MMM ...
- Oracle和MySQL的高可用方案对比【转】
关于Oracle和MySQL的高可用方案,其实一直想要总结了,就会分为几个系列来简单说说.通过这样的对比,会对两种数据库架构设计上的细节差异有一个基本的认识.Oracle有一套很成熟的解决方案.用我在 ...
- Windows版本redis高可用方案探究
目录 Windows版本redis高可用方案探究 前言 搭建redis主从 配置主redis-28380 配置从redis-23381 配置从redis-23382 将redis部署为服务 启动red ...
- MySQL MGR+ Consul之数据库高可用方案
背景说明: 基于目前存在很多MySQL数据库单点故障,传统的MHA,PXC等方案用VIP或者DNS切换的方式可以实现.基于数据库的数据强一致性考虑,采用MGR集群,采用consul服务注册发现 ...
- (转)mysql数据库高可用高扩展性架构方案实施
http://shanhu.blog.51cto.com/1293405/1212605-----mysql数据库高可用高扩展性架构方案实施
- 分布式数据存储 - MySQL主从复制高可用方案
前面几篇文章说道MySQL数据库的高可用方案主从复制.主从复制的延迟产生原因.延迟检测及延迟解决方案(并未从根本上解决),这种主从复制方案保证数据的冗余的同时可以做读写分离来分担系统压力但是并非是高可 ...
- docker搭建数据库高可用方案PXC
前言 本方案主要目的是学习, 该方案不太合适于企业项目 是什么? 白话点, 是个提供了必要环境的虚拟机(类似于java的导入部分包一样和c++的头文件差不多), 所以它比普通的VMWare或者Virt ...
随机推荐
- IIS7.0提示“请求筛选模块被配置为拒绝包含双重转义序列的请求”处理办法
请求筛选模块被配置为拒绝包含双重转义序列的请求.HTTP 错误 404.11 - Not Found 解决办法: 1.单击 开始 . 在 开始搜索 框中, 键入 Notepad. 右击 记事本 , 然 ...
- 编辑datagridview单元格
以这3种为例,最简单的是第三种,直接让单元格处于可编辑状态,当完成编辑后触发CellEndEdit事件,最后对输入的数据进行处理. private DateTimePicker dtp = new D ...
- 测试中,重现偶发的BUG问题。
1.严格按用例执行: 2.如果是作随机测试时,把测试步骤的点进行速记; 3.偶发BUG一般都是严重的,保留现场,让开发人员一起分析留下的现场(如数据的变化,界面窗口的变化等,找出问题的引子,那怕是千丝 ...
- Java RMI的轻量级实现 - LipeRMI
Java RMI的轻量级实现 - LipeRMI 之前博主有记录关于Java标准库的RMI,后来发现问题比较多,尤其是在安卓端直接被禁止使用,于是转向了第三方的LipeRMI 注意到LipeRMI的中 ...
- maven 学习
最近有项目需要储备maven的技能,就学习了一下,找到了一个很适合入门的博客,这里记录下网址. https://www.cnblogs.com/whgk/p/7112560.html
- 100405之python程序安装
Python的安装 注意安装的path和.exe可执行文件的命名方式 例如py2或者py3 sublime的安装 一.Sublime Text 3安装(64位Windows操作系统): 1.双击 Su ...
- GMA Round 1 最大值
传送门 最大值 求$f(x)=cos(x)+\sqrt{cos^2(x)-4\sqrt{3}cos(x)+4\sqrt{2}sin(x)+10}$的最大值.保留到小数点后3位. $f(x)+\sqrt ...
- H5C301
标题H5C301 1.html5 h5最新版本.所有主流浏览器都支持h5.但仅ie9及以上支持h5 改变了用户与文档的交互方式:多媒体 新增了其他的特性:语义,本地存储,网页多媒体 抛弃了不合理的标签 ...
- 外卖ERP管理系统(一)
京门时代外卖ERP是北京京门时代科技有限公司旗下一款专业的外卖ERP系统管理软件. 本ERP目前己经对接了百度.饿了么.美团以等各外卖平台,在配送方面对接了闪送快递.人人快递.UU跑腿以及达达配送. ...
- 咏南APP(手机)开发框架
咏南APP(手机)开发框架 有意者可向咏南索取DEMO. 基于DELPHI官方的FIREMONKEY类库构建,不使用任何三方控件. 原生手机框架,支持各种手机硬件操作. 主界面 聊天 照相并分享 短信 ...