mysqlHighAvailability - juedaiyuer/researchNote GitHub Wiki
#MySQL---高可用架构#
H.A.(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性
严重的主从延迟
主从复制中断
锁引起的大量阻塞
软硬件故障造成的服务器宕机
5个9的可用性
(365*24*60)*(1-0.99999)
##如何实现高可用##
###避免导致系统不可用的因素,减少系统不可用的时间###
因素
- 服务器磁盘空间耗尽
- 性能糟糕的SQL
- 表结构和索引没有优化
- 主从数据不一致
- 人为操作失误
###磁盘空间耗尽###
备份或者各种查询日志突增导致的磁盘空间被占满,MySQL由于无法记录二进制日志,无法处理新的请求而产生的系统不可用故障
解决方法
- 建立完善的监控及报警系统
- 对备份数据进行恢复测试
- 正确配置数据库环境
- 对不需要的数据进行归档和清理
增加系统冗余,保证系统不可用时可以尽快恢复
- 避免存在单点故障
- 主从切换及故障转移
单点故障
一个系统中提供相同功能的组件只有一个,如果这个组件失效了,会影响整个系统功能的正常使用.组成应用系统的各个组件都有可能成为单点
如何避免MySQL单点故障
- 利用SUN共享存储或DRDB磁盘复制解决MySQL单点故障
共享存储并不是一种好的解决单点故障的方式
利用多写集群或NDB集群来解决MySQL单点故障
Percona:pxc
如果内存不足NDB集群的性能会非常差
利用MySQL主从复制来解决MySQL单点故障,解决主服务器的单点问题
如何解决主服务器的单点问题
- 主服务器切换后如何通知应用新的主服务器的IP地址
- 如何检查MySQL主服务器是否可用
- 如何处理从服务器和主服务器之间的那种复制关系