mysqlHighAvailability - juedaiyuer/researchNote GitHub Wiki

#MySQL---高可用架构#

H.A.(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性

严重的主从延迟

主从复制中断

锁引起的大量阻塞

软硬件故障造成的服务器宕机

5个9的可用性

(365*24*60)*(1-0.99999)

##如何实现高可用##

###避免导致系统不可用的因素,减少系统不可用的时间###

因素

  1. 服务器磁盘空间耗尽
  2. 性能糟糕的SQL
  3. 表结构和索引没有优化
  4. 主从数据不一致
  5. 人为操作失误

###磁盘空间耗尽###

备份或者各种查询日志突增导致的磁盘空间被占满,MySQL由于无法记录二进制日志,无法处理新的请求而产生的系统不可用故障

解决方法

  1. 建立完善的监控及报警系统
  2. 对备份数据进行恢复测试
  3. 正确配置数据库环境
  4. 对不需要的数据进行归档和清理

增加系统冗余,保证系统不可用时可以尽快恢复

  1. 避免存在单点故障
  2. 主从切换及故障转移

单点故障

一个系统中提供相同功能的组件只有一个,如果这个组件失效了,会影响整个系统功能的正常使用.组成应用系统的各个组件都有可能成为单点

如何避免MySQL单点故障

  1. 利用SUN共享存储或DRDB磁盘复制解决MySQL单点故障

共享存储

共享存储并不是一种好的解决单点故障的方式

DRDB

利用多写集群或NDB集群来解决MySQL单点故障

Percona:pxc

DRDB

如果内存不足NDB集群的性能会非常差

利用MySQL主从复制来解决MySQL单点故障,解决主服务器的单点问题

如何解决主服务器的单点问题

  1. 主服务器切换后如何通知应用新的主服务器的IP地址
  2. 如何检查MySQL主服务器是否可用
  3. 如何处理从服务器和主服务器之间的那种复制关系