一种数据库主备节点倒换的方法及系统技术方案

技术编号:38833275 阅读:27 留言:0更新日期:2023-09-17 09:51
本发明专利技术提供了一种数据库主备节点倒换的方法及系统,包括如下步骤:S1、创建并部署倒换执行组件以及倒换判决组件,获取各个节点的节点状态,当节点状态异常时,开始主备节点倒换;S2、倒换判决组件发送Lock命令,锁定数据库主备节点的写操作,当所有节点的写操作均锁定后,再继续进行主备节点倒换;S3、倒换判决组件根据日志序号选取一个备节点替换当前主节点,将新主节点的节点信息发送至其余备节点,解锁所有节点的写操作,完成主备节点倒换。本发明专利技术有益效果:如果数据库主节点异常,在选择一个备节点接管集群之前,通过锁定数据库写操作,选取一个真正与数据库老主数据完全一致的候选节点,保证倒换以后的数据不丢失。保证倒换以后的数据不丢失。保证倒换以后的数据不丢失。

【技术实现步骤摘要】
一种数据库主备节点倒换的方法及系统


[0001]本专利技术属于数据库运维领域,尤其是涉及一种数据库主备节点倒换的方法及系统。

技术介绍

[0002]数据库主备集群中,当主节点故障或者网络出现问题时,为了保证数据库的高可用,需要从备节点中选出一台,作为新的主节点提供业务。
[0003]为了保证倒换后数据不丢失,需要保证选取的备节点与主节点的数据完全一致,为了达到这个条件,一般会通过获取所有备节点接收数据日志LSN,选取LSN最大的备作为候选备。
[0004]但是因为如下两个原因:1)获取备日志lSN的消息可能存在时间差;2)如果老主是因为网络问题,由于组网的复杂性,有可能主节点还在往某些备节点同步数据;导致获取到的日志LSN最大的备节点,可能不是与主节点数据完全一致,导致倒换后数据可能丢失,这对数据一致性要求高的系统,比如银行、证券,是一个绝对不能接受的致命缺陷。

技术实现思路

[0005]有鉴于此,本专利技术旨在提出一种数据库主备节点倒换的方法及系统,以期解决上述部分技术问题中的至少之一。
[0006]为达到上述目的,本专利技术的技术方案是这样实现的:本专利技术第一方面提供了,一种数据库主备节点倒换的方法,包括如下步骤:S1、创建并部署倒换执行组件以及倒换判决组件,获取各个节点的节点状态,当节点状态异常时,开启数据库主备节点倒换流程;S2、倒换判决组件向倒换执行组件发送Lock命令,锁定数据库主备节点的写操作,当所有节点的写操作均锁定后,再继续执行数据库主备节点倒换流程;S3、倒换判决组件根据日志序号选取一个备节点替换当前主节点,将新主节点的节点信息发送至其余备节点,解锁所有节点的写操作,结束数据库主备节点倒换流程。
[0007]进一步的,步骤S1的具体过程如下:S101、在每个节点所处服务器上,创建并部署倒换执行组件,获取对应节点的节点状态;S102、创建倒换判决组件,建立倒换判决组件与倒换执行组件之间的数据连接,倒换执行组件将获取的节点状态发送给倒换判决组件;S103、倒换判决组件接收并识别节点状态,当节点状态发生异常时,倒换判决组件开启数据库主备节点倒换流程。
[0008]进一步的,步骤S2的具体过程如下:S201、倒换判决组件向所有倒换执行组件发送Lock命令,倒换执行组件收到命令后,锁定对应节点的写操作;
S202、倒换执行组件将对应节点的写操作已被锁定的信息,发送至倒换判决组件;S203、倒换判决组件实时接收并统计各个倒换执行组件发送的信息,当所有节点均处于写操作锁定状态后,再执行后续的数据库主备节点倒换流程。
[0009]进一步的,步骤S3的具体过程如下:S301、倒换执行组件获取数据库写日志中的日志序号,并将日志序号上传至倒换判决组件;S302、倒换判决组件选取日志序号最大的备节点作为候选主节点,并通知候选主节点,执行备节点转主节点操作;S303、候选主节点接收通知,并将当前准备状态反馈至倒换执行组件;S304、倒换执行组件通知数据库当前的主节点执行主节点转备节点操作,同时倒换执行组件将新的主节点的节点信息发送至其余所有备节点;S305、倒换判决组件向所有倒换执行组件发送unlock命令,解锁所有节点的写操作。
[0010]本专利技术第二方面提供了,一种数据库主备节点倒换的系统,其特征在于:包括:倒换判决模块,所述倒换判决模块实时监控数据库集群中主节点的节点状态,当主节点出现异常时,倒换判决模块发送倒换流程命令;倒换执行模块,所述倒换执行模块实时监控数据库集群中各个节点的节点状态,并将监控得到的节点状态信息,实时发送至倒换判决模块;所述倒换执行模块位于数据库所在服务器内,与对应的节点建立通信连接;所述倒换执行模块执行倒换判决模块下发的lock、unlock、备节点转主节点、主节点转备节点命令,并实时上报节点状态,供倒换判决模块使用。
[0011]进一步的,倒换判决模块检测数据库集群中主节点的节点状态,如果出现异常,触发倒换流程;倒换判决模块向数据库集群中所有的备节点发送lock命令,备节点接收到lock命令后,不再接受主节点的数据同步;当所有备节点均lock成功后,主节点数据无法同步至备节点,主节点内的数据不再推进,此时主节点处于写静止状态,在此状态下,倒换判决模块获取所有备节点的数据LSN,选取LSN最大的备几节点作为候选主节点,并触发备节点转主节点操作;备节点转主节点成功后,向所有节点发送unlock通知。
[0012]相对于现有技术,本专利技术所述的一种数据库主备节点倒换的方法及系统具有以下有益效果:本专利技术所述的一种数据库主备节点倒换的方法及系统,如果数据库主节点异常,在选择一个备节点接管集群之前,通过lock数据库集群,将数据库处于写锁定状态,可以帮助选到一个真正与数据库老主数据完全一致的候选节点,保证倒换以后的数据不丢失。
附图说明
[0013]构成本专利技术的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:
图1为本专利技术实施例所述的数据库主备节点倒换方法的工作流程示意图;图2为本专利技术实施例所述的步骤S1工作情况示意图;图3为本专利技术实施例所述的步骤S2工作情况示意图;图4为本专利技术实施例所述的步骤S3工作情况示意图。
具体实施方式
[0014]需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。
[0015]下面将参考附图并结合实施例来详细说明本专利技术。
[0016]一种数据库主备节点倒换的方法,包括如下步骤:S1、创建并部署倒换执行组件以及倒换判决组件,获取各个节点的节点状态,当节点状态异常时,开启数据库主备节点倒换流程;步骤S1的具体过程如下:S101、在每个节点所处服务器上,创建并部署倒换执行组件,获取对应节点的节点状态;S102、创建倒换判决组件,建立倒换判决组件与倒换执行组件之间的数据连接,倒换执行组件将获取的节点状态发送给倒换判决组件;S103、倒换判决组件接收并识别节点状态,当节点状态发生异常时,倒换判决组件开启数据库主备节点倒换流程。
[0017]S2、倒换判决组件向倒换执行组件发送Lock命令,锁定数据库主备节点的写操作,当所有节点的写操作均锁定后,再继续执行数据库主备节点倒换流程;步骤S2的具体过程如下:S201、倒换判决组件向所有倒换执行组件发送Lock命令,倒换执行组件收到命令后,锁定对应节点的写操作;S202、倒换执行组件将对应节点的写操作已被锁定的信息,发送至倒换判决组件;S203、倒换判决组件实时接收并统计各个倒换执行组件发送的信息,当所有节点均处于写操作锁定状态后,再执行后续的数据库主备节点倒换流程。
[0018]S3、倒换判决组件根据日志序号选取一个备节点替换当前主节点,将新主节点的节点信息发送至其余备节点,解锁所有节点的写操作,结束数据库主备节点倒换流程。
[0019]步骤S3的具体过程如下:S301、倒换执行组件获取数据库写日志中的日志序号,并本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库主备节点倒换的方法,其特征在于:包括如下步骤:S1、创建并部署倒换执行组件以及倒换判决组件,获取各个节点的节点状态,当节点状态异常时,开启数据库主备节点倒换流程;S2、倒换判决组件向倒换执行组件发送Lock命令,锁定数据库主备节点的写操作,当所有节点的写操作均锁定后,再继续执行数据库主备节点倒换流程;S3、倒换判决组件根据日志序号选取一个备节点替换当前主节点,将新主节点的节点信息发送至其余备节点,解锁所有节点的写操作,结束数据库主备节点倒换流程。2.根据权利要求1所述的一种数据库主备节点倒换的方法,其特征在于:步骤S1的具体过程如下:S101、在每个节点所处服务器上,创建并部署倒换执行组件,获取对应节点的节点状态;S102、创建倒换判决组件,建立倒换判决组件与倒换执行组件之间的数据连接,倒换执行组件将获取的节点状态发送给倒换判决组件;S103、倒换判决组件接收并识别节点状态,当节点状态发生异常时,倒换判决组件开启数据库主备节点倒换流程。3.根据权利要求1所述的一种数据库主备节点倒换的方法,其特征在于:步骤S2的具体过程如下:S201、倒换判决组件向所有倒换执行组件发送Lock命令,倒换执行组件收到命令后,锁定对应节点的写操作;S202、倒换执行组件将对应节点的写操作已被锁定的信息,发送至倒换判决组件;S203、倒换判决组件实时接收并统计各个倒换执行组件发送的信息,当所有节点均处于写操作锁定状态后,再执行后续的数据库主备节点倒换流程。4.根据权利要求1所述的一种数据库主备节点倒换的方法,其特征在于:步骤S3的具体过程如下:S301、倒换执行组件获取数据库写日志中的日志序号,并将日志序号上传至倒换判决组件;S302、倒...

【专利技术属性】
技术研发人员:胡小兰范勇
申请(专利权)人:天津南大通用数据技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1