什么是MySQL高可用架构,基于主从复制的高可用方案

Aiapple | | 访问(93)

  高可用(High Availabiltity)

  1、应用提供持续不间断(可用)的服务的能力

  2、系统高可用性的评价通常用可用率表示

  造成不可用的原因

  1、硬件故障(各种)

  2、预期中的系统软硬件维护

  3、软件缺陷(应用代码,服务程序都可能存在bug)

  4、攻击,泄露,认为失误...等安全事件

  5、对于系统来说,不可用时间是各关键组件不可用时间的总和.....

  提高可用性的主要手段

  1、冗余,Redundancy

  2、关键软硬件通过备用冗余避免故障时长时间的不可用

  3、数据软件,硬件,存储的数据,都需要通过冗余确保故障时可替换

  可用性目标

  任何故障都不会造成数据丢失->可以较快速恢复服务(高可用)

  MySQL主从复制高可用方案需要改进的问题

  1、主从服务器各自有IP地址,发生主从切换后应用需要修改重启;

  2、如何让应用快速找到从库;VIP/DNS

  3、人工判断主库是否故障再发起切换需要花较多时间

  4、如何自动探知;监控探知并自动VIP/DNS;

  5、主从复制存在客观延迟,切换后可能造成事务数据丢失。

  6、由于网络延时,如何避免数据丢失

  解决方案

  1、为了避免应用人工修改切换IP,引入VIP(virtual ip)漂移方案。

  2、DNS,应用服务器,使用域名;平时,将域名注册在主库上,而主库挂掉,将域名注册到从库就可以了。

  高可用中间层与RDS

  VIP/DNS解决 应用切换问题

  监控和管理服务器解决自动判断故障切换和VIP/DNS漂移

  VIP/DNS管理+探活+主从关系切换 = 高可用中间层

  透明切换管理+靠谱数据探活+使用切换 = 高可用中间层

  云环境+高可用中间层+底层数据库=一种PaaS=基本RDS

  高可用中间层

  MHA

  1、自动选择复制延迟最小的从节点并试图补全日志(但大部分主机故障下行不通)

  2、通常要求两从以上,会进行主从关系切换

  3、不提供VIP管理方案

  MMM

  1、提供了基本的VIP管理功能

  2、适合双主配置的一对主机,不会主动切换主从关系

  3、不支持主从数据延迟判断和补全

  一般使用MHA,开源。

  较完善的mysql高可用方案

  半同步复制+高可用中间层+VIP管理方案

  高可用中间层=靠谱探活+主从切换+使用VIP管理的接口

  例如:

  半同步复制+MHA(高可用中间层)+Keeplive(VIP管理方案)

  半同步复制+RDS

  文章来源:https://www.cnblogs.com/Aiapple/p/5794901.html