[发明专利]一种保证MHA集群高可用及一致性的系统及方法在审
申请号: | 202010616118.2 | 申请日: | 2020-07-01 |
公开(公告)号: | CN111752962A | 公开(公告)日: | 2020-10-09 |
发明(设计)人: | 赵山;王阳;赵建昌 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/27;G06F11/20 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 孙园园 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 保证 mha 集群 可用 一致性 系统 方法 | ||
1.一种保证MHA集群高可用及一致性的系统,其特征在于,该系统包括,
Redis集群,用于提供公布式锁及配置全局通知下发能力;
MHA模块,用于在执行容灾切换时,在Redis集群注册排他锁,避免其他MHA实例同时执行容灾切换操作,并在切换完成后推送切换后配置到Redis集群并释放锁;
配置管理器,用于确保MHA节点的本地配置与其他MHA时刻保持一致。
2.根据权利要求1所述的保证MHA集群高可用及一致性的系统,其特征在于,所述MHA模块是基于MHA原生工具,并在secondary_check_script和ip_failover_script两处自定义脚本处实现排他锁的加锁和释放以及配置推送功能。
3.根据权利要求1或2所述的保证MHA集群高可用及一致性的系统,其特征在于,所述MHA模块处理逻辑具体如下:
S1、定时循环监控MySQL集群主节点状态;
S2、检查MySQL集群主节点状态是否异常:
①、若MySQL集群主节点状态异常,则下一步执行步骤S3;
②、若MySQL集群主节点状态无异常,则跳转至步骤S1;
S3、执行secondary_check_script脚本进行状态二次确认;
S4、对MySQL集群进行容灾切换操作;
S5、更新本地MHA配置中需要监控的MySQL集群新主节点及从节点的对应关系,;
S6、执行ip_failover_script脚本进行切换后处理;
S7、结束。
4.根据权利要求3所述的保证MHA集群高可用及一致性的系统,其特征在于,所述步骤S3中执行secondary_check_script脚本进行状态二次确认具体如下:
S301、通过MySQL集群从节点再次检查主节点是否异常:
若主节点异常,则下一步执行步骤S302;
S302、访问Redis集群查看是否存在排他锁,以确认是否有其他MHA节点已检测到MySQL集群故障并正在进行容灾切换操作:
若没有排他锁,则下一步执行步骤S303;
S303、在Redis中设置排他锁,并退出secondary_check_script脚本。
5.根据权利要求3所述的保证MHA集群高可用及一致性的系统,其特征在于,所述步骤S6中执行ip_failover_script脚本进行切换后处理具体如下:
S601、检查集群切换是否成功;
S602、将原来设置在故障节点上的虚拟IP切换至新的主节点上;
S603、将本地配置中的MySQL主从节点对应关系推送至Redis中Key为Config的hset中;
S604、释放Redis中的排他锁。
6.根据权利要求1所述的保证MHA集群高可用及一致性的系统,其特征在于,所述配置管理器还用于在启动时从Redis拉取集群配置,更新本地MHA配置并重启生效,同时监听Redis集群配置是否发生变化:
若发生变化,则更新本地MHA配置并重启生效。
7.根据权利要求1或6所述的保证MHA集群高可用及一致性的系统,其特征在于,所述配置管理器处理逻辑具体如下:
(1)、启动时从Redis中拉取Key为Config的hset,并将其内容更新至本地MHA配置中,重启MHA使其生效;
(2)、Key为Config的hset设置Watcher,监听hset的变化;
(3)、当Watcher收到hset的变动信息,就从Redis中拉取Key为Config的hset,并将其内容更新至本地MHA配置中,重启MHA使其生效。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010616118.2/1.html,转载请声明来源钻瓜专利网。