首页 > 数据库 >MHA(MySQL High Availability)高可用性工具补数据功能

MHA(MySQL High Availability)高可用性工具补数据功能

时间:2023-05-27 21:22:35浏览次数:55  
标签:数据库 MHA High 故障 Manager 高可用性 服务器 数据

目录

背景

在介绍 MHA 补数据功能之前先介绍一些关于MHA的基础知识。

MHA(MySQL High Availability)是一个用于实现MySQL数据库高可用性(High Availability)的工具集。

它可以在主从复制架构中实现故障切换和主库切换,以确保数据库服务的稳定运行。

MHA包括两个主要组件:

  • MHA Manager:负责监控 MySQL 主从复制状态,发现故障并进行故障切换。它通常部署在独立的管理服务器上。
  • MHA Node:部署在每个 MySQL 服务器上,用于协助 MHA Manager 完成故障切换操作,如日志解析、差异数据传输等。

MHA 的主要功能如下:

  1. 自动故障切换:当主数据库出现故障时,MHA能够自动将其中一个从数据库提升为新的主数据库,并将其他从数据库重新指向新的主数据库,以实现快速故障切换。

  2. 在线主库切换:在不中断服务的情况下,MHA可以将当前主数据库切换到另一个从数据库,以便进行数据库维护、升级等操作。

  3. 复制延迟检测:MHA可以监控主从复制的延迟情况,确保数据同步的准确性。

  4. 自动修复复制:当从数据库复制出现问题时,MHA可以自动修复复制错误,恢复正常的数据同步。

  5. 灵活的配置和扩展:MHA支持多种配置选项,可以根据实际需求进行定制。同时,MHA具有良好的扩展性,可以方便地应对大型数据库集群的管理需求。

通过这些功能,MHA可以提高MySQL数据库的高可用性,确保业务系统的稳定运行。

MHA补数据功能

当主服务器发生故障,需要进行故障切换时,MHA 会确保从服务器拥有最新的数据。具体操作如下:

  1. MHA Manager 会分析故障主服务器的二进制日志(Binary Log),找到从服务器可能缺失的数据。
  2. MHA Manager 会将这些缺失的数据应用到从服务器上,确保从服务器拥有最新的数据。
  3. 在数据补齐后,MHA Manager 会将其中一个从服务器提升为新的主服务器,并重新配置其他从服务器,使它们从新的主服务器获取更新。

以下是补数据的具体步骤:

  1. 检测主服务器故障:MHA Manager 监控主从复制状态,当检测到主服务器发生故障时,开始故障切换流程。

  2. 分析二进制日志:MHA Manager 分析故障主服务器的二进制日志(Binary Log),找到从服务器可能缺失的数据。如果故障主服务器无法访问,MHA Manager 会尝试从其他从服务器获取尚未应用的二进制日志。这个过程使用mysqlbinlog工具实现。

  3. 应用缺失数据:MHA Manager 将找到的缺失数据应用到从服务器上,确保从服务器拥有最新的数据。这一过程可能涉及多个从服务器,MHA Manager 会确保所有从服务器的数据一致性。MHA使用mysql命令将二进制日志中的SQL语句应用到新主服务器。

  4. 提升新主服务器:在数据补齐后,MHA Manager 会从从服务器中选择一个提升为新的主服务器。通常选择复制延迟最小的从服务器。

  5. 重新配置从服务器:MHA Manager 将重新配置其他从服务器,使它们从新的主服务器获取更新。这样,主从复制关系得以恢复。

通过这个补数据过程,MHA 能够在故障切换时确保数据的一致性,提高数据库的可用性。

关于补数据的补充说明

MHA 的不同版本之间的补数据过程基本相同,但在细节和功能上可能存在一些差异。由于版本较多,这里仅对一些主要版本的变化进行概述:

  1. MHA 0.50:此版本引入了对MySQL 5.6的支持,包括全局事务ID(GTID)的支持。这使得补数据过程可以更好地处理GTID模式下的主从复制。

  2. MHA 0.56:此版本增加了对MySQL 5.7的支持,包括对新的JSON数据类型和虚拟列的支持。此外,还优化了从服务器选择算法,提高了补数据过程的效率。

  3. MHA 0.57:此版本修复了一些在补数据过程中可能遇到的问题,如在应用二进制日志时遇到的错误。此外,还增加了对MariaDB 10.2的支持。

  4. MHA 0.58:此版本主要进行了代码优化和bug修复,提高了补数据过程的稳定性。

需要注意的是,MHA的各个版本之间的补数据过程核心思路是相同的,主要区别在于对新功能的支持、性能优化和bug修复。为了确保最佳的补数据效果,建议使用MHA的最新版本。同时,关注MHA的官方GitHub仓库,了解最新的版本更新和功能变化。

参考

MHA github

标签:数据库,MHA,High,故障,Manager,高可用性,服务器,数据
From: https://www.cnblogs.com/lanyangsh/p/17437373.html

相关文章

  • 【基于容器的部署、扩展和管理】3.5 高可用性和故障恢复机制
    3.5高可用性和故障恢复机制云原生的高可用性是指在云原生环境中,通过自动化工具和技术手段,实现软件发布的高可用性机制。其主要思想是通过自动化部署、自动化监控、自动化修复等手段,提高软件系统的可用性和稳定性,从而减少系统故障和停机时间。故障恢复机制是指在云原生环境中,当系......
  • IPQ8072 or IPQ8072A with the QCN9074/9024 chipset / well-suited for high-end rou
    TheIPQ8072andIPQ8072AarebothpowerfulnetworkingSoCs(System-on-Chip)designedbyQualcommforhigh-performancerouters,enterpriseWi-Fiaccesspoints,andothernetworkingequipment.ThesechipsarepartofQualcomm'sNetworkingProseriesan......
  • 折线图highcharts.js -纯js图表库
    查看演示功能强大、开源、美观、图表丰富、兼容绝大多数浏览器的纯js图表库ps:使用highcharts怎么去掉图表上那个官网标识链接credits:{enabled:false}......
  • 结合vue2+highchartsjs技术,实现信号分析中的频谱瀑布图、星座图、眼图和声音波形图
    先看效果:总的来说,web端比传统桌面端资源更多一些,是未来学习的趋势。相关的资料在网上都能找到,这里就不提供源码了。......
  • 题解 ABC239F【Construct Highway】
    翻译:给定\(n,m\)和度数数组\(\{d_i\}\),再给你\(m\)条边,请构造一棵\(n\)点的树包含这\(m\)条边,且第\(i\)个点的度数为\(d_i\),或者判断无解。显然,若\(\sumd_i\ne2(n-1)\),则无解。然后对于输入的每条边,使用并查集维护,再求出在这\(m\)条边的基础上每个点还需要多......
  • Mysql-MHA集群
    基本概念由来MHA(MasterHighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案。它由日本DeNA公司youshimaton(现就职于Facebook公司)开发。原理组成由两部分组成:MHAManager(管理节点)和MHANode(数据节点)MHAManager可单独部署在一台独立的机器上管理多个mast......
  • 论文阅读 -- High-speed_function_approximation_using_a_minimax_quadratic_interpol
    SFU设计算法基础Interpolation插值:给定有限点预测附近点的方法算法复现requireMaple代码复现精度与资源referenceHigh-SpeedFunctionApproximationminimaxcoeffAitken(埃特金)逐次插值法|一次插值、二次插值、k次插值FPGA_LUT-based_InterpolationF......
  • OpenGL学习笔记-3:编译shader报错: cannot convert from 'const highp float' to 'Frag
    报错信息: ERROR::SHADER_COMPILATION_ERRORoftype:FRAGMENTERROR:0:10:'assign':cannotconvertfrom'consthighpfloat'to'FragUserData4-componentvectorofhighpfloat'-------------------------------------------------......
  • MHA高可用
    MHA高可用一MHA背景介绍MHA是Perl语言写的,开源的MYSQL故障切换方案;全称:MasterHighAvailability,故障切换时间10-30s有人说,我不要MHA行不行啊;可以,没问题,如果主数据库故障了?首先,你需要手动一个一个地登录上所有的SLAVE从库,然后一个个对比,看谁执行的BINLOG比较新,然后将其作......
  • RestHighLevelClient 使用总结
    .index接口--新增/更新索引,内容更新是覆盖式的.update接口--更新索引,支持局部字段的更新,相对.index接口相比,减少了没有必要的字段更新 相关文档:https://zhuanlan.zhihu.com/p/551414799......