常用MySQL不同高可用方案的对比(下图来自官方手册)
能实现自动数据库故障转移的方案只有MySQL Cluster和 DRBD+Heartbeat,这也是两种不依赖Replication的HA方案。
但是,MySQL Cluster(NDB)配置维护复杂,不像Replication一样稳定易用,大部分公司可能不会考虑这一方案;而DRBD的额外性能消耗又比较大,约为20%—30%,在可用性上大打折扣。
因此,对于我们来说,在Replication的基础上设计HA方案是最好的选择。
MySQL支持单向、异步的复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。MySQL5.5 引入了一种半同步复制功能,该功能可以确保主服务器和访问链中至少一台从服务器之间的数据一致性和冗余。
由于MySQL复制的异步性(最多半同步),所以,简单的MySQL Replication + Heartbeat的HA架构只能完成IP的故障转移,而不能完成数据库的故障转移,即不能保证数据一致性。
怎样在故障转移时保证复制架构中的数据一致性
1 找出同步最成功的一台从服务器(也就是与主服务器数据最接近的那台从服务器)。
2 如果主机还能够访问,从主服务器上找回最新从机与主机间的数据差异。
3 在每一台从服务器上操作,确定他们缺少哪些events,并分别进行补充。
4 将最新的一台从服务器提升为主服务器后,将其它从服务器重新指向新的主服务器。
以上这些MHA已经可以实现了。
MHA(Master HA)是一款开源的MySQL的高可用工具,能在MySQL主从复制的基础上,实现自动化主服务器故障转移。
不过,虽然MHA试图从宕机的主服务器上保存二进制日志,但并不是总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失最新数据。
使用半同步复制,可以大大降低数据丢失的风险。MHA可以与半同步复制结合起来,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此他们彼此保持一致性。
Auto Failover Cluster实现方案
在Replication的基础上,MHA能够帮助我们实现数据库的故障转移,但是对于一套完善的自动故障转移群集来说,这是远远不够的,我们还需要实现以下需求:
1 当群集内的数据库进行故障转移时,对外提供服务的虚拟IP也进行转移;
2 MHA管理进程需要以后台守护进程的方式运行,并有监控机制保证MHA管理进程的正常运行;
3 有监控机制保证当主机出现故障时,MHA能确定进行成功的Failover;
4 当故障主机恢复后,能重新回到群集中,并成为新的Slave,自动实现重新同步;
5 由于主机和从机上备份策略不同,进行故障转移后,自动调整cron中的调度(例如全备份)。
完整的自动故障转移群集包括:
- MySQL Replication 实现:数据同步
- MHA(MasterHA) 实现:心跳检测和数据库故障转移
- Heartbeat的IP管理模块 实现:IP故障转移
- Perl实现的自定义管理和监控脚本 实现:自动重新同步和保障Cluster正常工作
架构图
完成后的自动故障转移集群能按照计划实现我们的需求,在内部测试环境的测试结果如下(数据库服务器为4核+8G内存的vmware虚拟机,安装centos5.8+MySQL5.5.21):
测试场景 |
failover耗时 |
保证数据完整性 |
自动重新同步数据 |
主机MySQL服务停止响应 |
< 15seconds |
是 |
是 |
主机CentOS停止响应 |
< 40seconds |
是 |
是 |
复制延迟(未传送日志500M)+MySQL服务停止响应 |
4.2~4.5m |
是 |
是 |
复制延迟(未执行日志500M)+MySQL服务停止响应 |
1.9~2.1m |
是 |
是 |
复制延迟(未传送日志500M)+主机CentOS停止响应 |
< 40seconds |
数据丢失 |
由于数据丢失,无法自动重新同步 |
复制延迟(未执行日志500M)+主机CentOS停止响应) |
2.5~2.7m |
是 |
是 |
目前自动故障转移群集已在我们的生产环境应用近半年,并多次进行切换演练,运行良好。
相关推荐
在本教程中,我们将探讨一种基于`mysql`、`lvs`(Linux Virtual Server)、`keepalived`以及`MHA`(Master High Availability)的解决方案,这种方案可以实现VIP(Virtual IP)漂移,有效防止因单点故障导致的服务...
MySQL High Availability Manager(MHA)是一款用于MySQL集群的高可用性解决方案,旨在自动检测和处理主服务器故障,并在故障发生时将从服务器提升为主服务器,从而最大限度地减少服务中断时间。MHA软件包通常包括一...
### MySQL LVS+Keepalived+MHA 高可用群集应用部署操作手册 #### MHA 架构介绍 MHA(Master High Availability)是一种针对MySQL的成熟高可用解决方案,适用于构建具有高度可靠性的数据库环境。它能够在0到30秒内...
MHA(Master High Availability)是一种用于MySQL的高可用性解决方案,它能够实现在主服务器发生故障时自动切换到备用服务器,从而提高系统的稳定性和可靠性。MHA主要包括两部分:MHA Manager(管理器)和MHA Node...
内容概要:本文详细介绍了应用于电镀生产线的西门子S7-300 PLC控制系统的程序设计、硬件配置以及调试过程中积累的实际经验。主要内容涵盖温度控制、条码记录、行车定位、故障排查等方面的技术细节。文中展示了多个关键功能模块的具体实现方法,如PID温度控制、条码数据处理、行车定位判断等,并分享了一些实用的调试技巧和注意事项。此外,还讨论了硬件配置中的重要细节,如模块地址分配、网络拓扑设计等。 适合人群:从事自动化控制领域的工程师和技术人员,尤其是对PLC编程有一定基础的人群。 使用场景及目标:适用于需要深入了解和掌握电镀生产线自动化控制技术的专业人士。目标是帮助读者理解S7-300 PLC在电镀生产线中的具体应用,提高实际项目的开发效率和可靠性。 其他说明:文章不仅提供了详细的程序代码示例,还分享了许多来自一线的真实案例和实践经验,对于解决实际工程中的问题具有很高的参考价值。
内容概要:本文详细介绍了使用COMSOL Multiphysics进行固体超声导波的二维仿真过程。作者通过建立一个10mm×100mm的铝板模型,应用汉宁窗调制的5周期200kHz正弦激励信号,研究了超声导波在铝板中的传播特性及其模式转换现象。文中涵盖了从模型构建、材料参数设置、网格划分、边界条件设定、激励信号施加到求解设置以及结果分析的完整流程。特别强调了汉宁窗调制的作用,即减少频谱泄漏并提高信号质量。 适合人群:从事超声检测、材料科学、物理学等相关领域的研究人员和技术人员,尤其是那些希望深入了解COMSOL仿真工具及其在超声导波研究中应用的人群。 使用场景及目标:适用于需要精确模拟超声波在固体介质中传播的研究项目,旨在验证理论预测、优化实验设计、评估不同材料和结构对超声波的影响。此外,还可以用于教学目的,帮助学生掌握COMSOL软件的操作方法和超声导波的基础知识。 其他说明:文中提供了详细的参数设置指导和代码片段,有助于读者快速复现仿真过程。同时,作者分享了一些实用技巧,如如何正确设置网格大小、选择合适的窗函数等,以确保仿真结果的准确性。
离职人员分析仪表盘.xlsx
内容概要:本文详细介绍了如何利用LabVIEW搭建一个多功能的虚拟函数信号发生器及其信号分析功能。首先,文章展示了如何通过LabVIEW的前面板和程序框图创建各种常见波形(如正弦波、方波、三角波等),并深入探讨了波形生成的具体实现方法,包括三角波的周期性和斜率计算、白噪声的生成以及自定义公式的解析。接着,文章讨论了信号处理的关键技术,如自相关分析、频谱分析、积分和微分运算,并提供了具体的实现代码和注意事项。此外,文中还分享了一些实用的经验和技术细节,如避免频谱泄漏的方法、处理多频波的技术、防止内存泄漏的措施等。 适用人群:从事信号处理、电子工程、自动化控制等领域的工作技术人员,尤其是那些熟悉或希望学习LabVIEW编程的人士。 使用场景及目标:适用于实验室环境或教学环境中,用于替代传统物理信号发生器进行信号生成和分析实验。主要目标是提高信号生成和分析的灵活性和便捷性,减少对昂贵硬件设备的依赖。 其他说明:本文不仅提供了详细的代码示例,还分享了许多作者在实践中积累的经验教训,帮助读者更好地理解和应用LabVIEW进行信号处理。
线性代数
大雾至尊版V56泛滥无密码.zip
员工生日关怀方案
试用期情况跟踪表.xls
员工激励机制与技巧
员工晋升的自我评价.doc
基于51单片机protues仿真的多功能婴儿车控制器(仿真图、源代码、AD原理图) 该设计为51单片机protues仿真的多功能婴儿车控制器,实现温湿度,音乐,避障,声音监测控制; 1、温湿度检测,婴儿尿湿时会有提醒。 2、声音检测,当婴儿啼哭时也会有提醒。 3、小车避障,小车遇到障碍会后退左转。 4、音乐播放。 5、仿真图、源代码、AD原理图;
内容概要:本文档详细介绍了计算机求职笔试的内容与解答,涵盖编程语言基础、数据结构与算法、编程实践与调试、系统设计与软件工程以及综合题型与开放题五个方面。编程语言基础部分强调了语法规则、数据类型与运算符、面向对象编程的核心概念;数据结构与算法部分讲解了常见数据结构(如线性结构、树与图、哈希表)和高频算法(如排序算法、动态规划、递归与回溯);编程实践与调试部分关注编码能力和调试技巧;系统设计与软件工程部分探讨了设计模式、模块化设计、数据库与网络知识;综合题型与开放题部分则提供了场景题和逻辑思维题的示例。最后给出了备考建议,包括知识体系构建、刷题策略和模拟实战的方法。 适合人群:即将参加计算机相关职位笔试的求职者,特别是对编程语言、数据结构、算法设计有初步了解的应届毕业生或初级工程师。 使用场景及目标:①帮助求职者系统复习计算机基础知识,提升笔试通过率;②通过例题和解答加深对编程语言、数据结构、算法的理解;③提供模拟实战环境,提高时间管理和抗压能力。 阅读建议:建议按照文档提供的知识体系顺序进行系统复习,重点攻克高频题型,利用在线平台刷题练习,并结合实际项目经验进行综合应用,同时注意时间管理和抗压能力的训练。
SecureCRT安装包
物流业人才流失与紧缺现象的对策研究
招聘渠道费用仪表盘P10.pptx
内容概要:本文详细介绍了五相永磁同步电机在Simulink环境下的PI双闭环SVPWM矢量控制建模过程及其优化方法。首先阐述了五相电机相比三相电机的优势,如更小的转矩脉动和更强的容错能力。接着探讨了复杂的Simulink模型搭建,涉及电机本体模块、坐标变换模块、SVPWM模块和PI调节器模块等多个组件。文中提供了具体的Clark变换和PI调节器的代码示例,解释了双闭环控制的工作原理,并详细描述了SVPWM与十扇区划分的具体实现方式。最后展示了模型的性能表现,包括良好的波形质量和快速的动态响应特性。 适合人群:从事电机控制领域的研究人员和技术人员,尤其是对五相永磁同步电机和Simulink建模感兴趣的读者。 使用场景及目标:适用于希望深入了解五相永磁同步电机控制原理并掌握具体实现方法的研究人员和技术人员。目标是帮助读者理解五相电机的特殊性和复杂性,掌握PI双闭环SVPWM矢量控制的建模技巧,提高电机控制系统的设计水平。 其他说明:文章不仅提供了理论知识,还包括了大量的代码片段和实践经验分享,有助于读者更好地理解和应用相关技术。