MySQL高可架构设计方案
2.1.高可用环境
高可用(High Availability)有两种不同的含义,在广义环境中,是指整个系统的高可用特性,在狭义方面,一般指主机的冗余接管,如主机HA。我们目前的产品及相关系统平台主要都倾向于广义上的高可用。一个良好的高可用环境,不仅仅能避免系统本身的问题,还能防止天灾人祸,并且有一个简单可靠的系统维护方法,同时能在最小的成本资源下产生最大的效益。
高可用的计算方法一般以年在线率来计算,例如规定整个系统一年之中的可用环境要达
到99.95%,那么24*365*(1-99.95%)= 4.38小时(包括计划维护时间)。另外,子系统的可用性一定会高于整个系统的可用性,如整个系统的可用性为99.95%,则对于子系统,可用性可能就是要求达到99.999%。
可用性级别 = 计划外与计划内停机可用性级别99.999?.99?.9?.0?.0%图 2-1 高可用级别对照表
在实际产品开发中,很难达到100%的在线能力,即使真的达到,代价会非常大。一般能达到99.9%以上的可用性的环境,都可以认为是比较高的可用环境。
每年停机时间5分钟53分钟8.8小时87.6小时438小时 成本高可用环境成本业务中断损失在线率99.0?.9?.95?.99?.999%
图 2-2 收益与成本
在公司收益与投入成本计算方面取得一个平衡,则是最终所希望的在线效率,但是收益与成本的计算方法则是决策者与实施者需要着重考虑的问题,适合自己的高可用环境即是最好的,不能盲目地追逐过高的可用性。
2.2.主要风险
在一个高可用的环境中,会遇到各种风险,主要的风险如下 ??系统失败或崩溃(System faults and crashes)
??应用层或中间层错误(Application and middleware failures) ??网络失败(Network failures)
??介质失效,一般指存放数据的媒体介质故障(Media failures) ??人为失误(Human Error)
??分级与容灾(Disasters and extended outages)
??计划宕机与维护(Planned downtime, maintenance and management tasks)
2.3.面临的主要问题
使用MySQL+PC服务器来构建高可用的MySQL集群会遇到一些主要的问题,这些问题如果忽略了或者没有去解决好,是会对高可用造成影响的,设置直接影响到整个产品及系统的稳定运行。
??MySQL会丢数据吗 ??MySQL自身的稳定性怎么样 ??MySQL的性能怎么样 ??MySQL如何快速自动切换 ??MySQL如何进行可靠的容灾 ??MySQL主备库数据的一致性校验 ??MySQL备库同步延迟,备库跟不上主库 ??MySQL在线DDL锁表(阻塞写)怎么解决
??相比商业软件成熟的解决方案,MySQL+PC架构其高可用性如何保证