mysql高可用设计方案,如果单mysql的优化始终还是顶不住压力时,这个时候我们就必须考虑mysql的集群方案了,目前可行的方案有:
优势:可用性非常高,性能非常好。每份数据至少可在不同主机存一份拷贝,且冗余数据拷贝实时同步。但它的维护非常复杂,存在部分bug,目前还不适合比较核心的线上系统,所以这个我不推荐。
优势:软件功能强大,数据可在底层快设备级别跨物理主机镜像,且可根据性能和可靠性要求配置不同级别的同步。io操作保持顺序,可满足数据库对数据一致性的苛刻要求。
但非分布式文件系统环境无法支持镜像数据同时可见,性能和可靠性两者相互矛盾,无法适用于性能和可靠性要求都比较苛刻的环境,维护成本高于mysql replication。所以这个大家可根据实际环境来考虑是否部署。
在实际应用场景中,mysql replication是使用最为广泛的一种提高系统扩展性的设计手段。众多的mysql使用者通过replication功能提升系统的扩展性后,通过简单的增加价格低廉的硬件设备成倍 甚至成数量级地提高了原有系统的性能,是广大mysql中低端使用者非常喜欢的功能之一,也是许多mysql使用者选择mysql最为重要的原因。
比较常规的mysql replication架构也有好几种,这里分别简单说明下
mysql replicatioin 方案一:常规复制架构--master-slaves,是由一个master复制到一个或多个salve的架构模式,主要用于读压力大的应用数据库端廉价扩展百家乐凯发k8的解决方案,读写分离,master主要负责写方面的压力。
mysql replicatioin 方案二:级联复制架构,即master-slaves-slaves,这个也是为了防止slaves的读压力过大,而配置一层二级 slaves,很容易解决master端因为附属slave太多而成为瓶劲的风险。
mysql replicatioin 方案三:dual master与级联复制结合架构,即master-master-slaves,最大的好处是既可以避免主master的写操作受到slave集群的复制带来的影响,而且保证了主master的单点故障。
以上就是比较常见的mysql replication架构方案,大家可根据自己公司的具体环境来设计 ,mysql 负载均衡可考虑用lvs或haproxy来做,高可用软件我推荐heartbeat。
mysql replication的不足:如果master主机硬件故障无法恢复,则可能造成部分未传送到slave端的数据丢失。所以大家应该根据自己目前的网络规划,选择自己合理的mysql架构方案,跟自己的mysql dba和程序员多沟涌,多备份(备份我至少会做到本地和异地双备份),多测试,数据的事是最大的事,出不得半点差错,切记切记。