System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据库系统的故障处理方法及计算设备技术方案_技高网

数据库系统的故障处理方法及计算设备技术方案

技术编号:40108673 阅读:5 留言:0更新日期:2024-01-23 18:49
本申请提供了一种数据库系统的故障处理方法及计算设备。在实施例中,数据库系统包括一个主节点、多个从节点和集群管理器,方法应用于集群管理器,包括:在第i个任期的主节点的故障的情况下,按照等待时长等待第i个任期的主节点故障恢复;若在等待时长内,第i个任期的主节点故障恢复,且拥有最大任期和最大已持久化存储的预写日志的序列号,则将第i个任期的主节点确定为第i+1个任期的主节点。由此,在等待时长内,无需旧主日志会回放完成,当旧主恢复正常,可将旧主作为新主,从而在一定程序上降低RTO。

【技术实现步骤摘要】

本申请涉及数据库,尤其涉及一种数据库系统的故障处理方法及计算设备


技术介绍

1、数据库集群(database cluster)是由多个数据库节点组成的系统,用于处理大量数据请求和支持高可用性。其中一个数据库节点通常被选为主节点(master node),其他数据库节点则被称为从节点(slave node)或备用节点(standby node),它们可以接受主节点的副本,以实现数据冗余和高可用性。

2、集群管理软件用于对数据库集群进行管理。集群管理软件检测到数据库集群的主节点发生故障无法提供服务时,会自动发起仲裁,从可用的节点中选出一个作为主节点继续提供服务,从数据库宕机导致业务停止到业务恢复使用之时,此两点之间的时间段称为rto(recovery time objective)即恢复时间目标,rto是衡量数据库高可用的一个重要指标,rto越小表明该数据库的高可用性越高。

3、集群管理软件在从可用的节点中选出主节点时,会控制所有可用的节点断开与旧主的连接,并进行预写日志(wal,write-ahead log)的回放,可能会导致rto较长,影响业务。

4、公开于该
技术介绍
部分的信息仅仅旨在增加对本申请的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。


技术实现思路

1、本申请实施例提供了一种数据库系统的故障处理方法及计算设备,在等待时长内,无需旧主日志会回放完成,当旧主恢复正常,可将旧主作为新主,从而在一定程序上降低rto。

2、第一方面,本申请实施例提供了一种数据库系统的故障处理方法,数据库系统包括一个主节点、多个从节点比如n个从节点和集群管理器,方法应用于集群管理器,方法包括:

3、在第i个任期的主节点的故障的情况下,按照等待时长等待第i个任期的主节点故障恢复;若在等待时长内,第i个任期的主节点故障恢复,且拥有最大任期和最大已持久化存储的预写日志的序列号,则将第i个任期的主节点确定为第i+1个任期的主节点。

4、本方案中,在等待时长内,无需旧主日志会回放完成,当旧主恢复正常,可将旧主作为新主,从而在一定程序上降低rto。

5、在一种可能的实现方式中,方法还包括:按照时间间隔向第i个任期的主节点和从节点发送检测请求,以使第i个任期的主节点和从节点向集群管理器发送检测参数的参数值;检测请求包括检测参数;其中,检测参数包括:节点是否故障、任期、序列号,序列号用于指示已经持久化存储的预写日志。

6、本方案中,考虑持久化存储的预写日志,无需考虑wal日志是否回放,可以在一定程度上降低rto。

7、在一个例子中,方法还包括:提供第一配置接口,第一配置接口用于确定用户配置的时间间隔。

8、在一个例子中,方法还包括:确定网络信息,网络信息指示了第i个任期的主节点和从节点之间的网络情况;根据网络信息,确定时间间隔。示例性地,在网络信息指示第i个任期的主节点和从节点之间不存在网络延迟时,确定时间间隔为第一数值;在网络信息指示第i个任期的主节点和从节点之间存在网络延迟时,确定时间间隔为第二数值;第二数值大于第一数值。

9、本方案中,时间间隔是可以被灵活配置的,灵活适配场景需求,从而可以在一定程度上降低rto。

10、在一种可能的实现方式中,方法还包括:提供第二配置接口,第二配置接口用于确定用户配置的等待时长。

11、在一种可能的实现方式中,方法还包括:确定影响程度信息,影响程度信息指示了将从节点切换为主节点对用户业务的影响程度;根据影响程度信息,确定等待时长。示例性地,在影响程度信息指示将从节点切换为主节点对用户业务的影响程度小于等于第一阈值(说明影响程度小)时,确定等待时长为第三数值;在影响程度信息指示将从节点切换为主节点对用户业务的影响程度大于等于第二阈值(说明影响程度大)时,确定等待时长为第四数值;第四数值大于第三数值。

12、本方案中,等待时长是可以被灵活配置的,灵活适配场景需求,从而可以在一定程度上降低rto和主备切换的可能性。

13、在一种可能的实现方式中,方法还包括:若在等待时长内,第i个任期的主节点故障未恢复,在超过等待时长后,将第i个任期的主节点降为从节点,向从节点发送第一锁消息,第一锁消息用于将第i个任期的主节点与从节点断开连接(也即用于从节点断开与第i个任期的主节点的连接);在第一锁定状态的从节点的数目大于等于预设阈值时,基于第一锁定状态的从节点的任期和已持久化存储的预写日志的序列号,从第一锁定状态的从节点中,确定第i+1个任期的主节点。

14、在一个例子中,基于第一锁定状态的从节点的任期和已持久化存储的预写日志的序列号,从第一锁定状态的从节点中,确定第i+1个任期的主节点,包括:

15、从未故障的第一锁定状态的从节点中,确定拥有最大任期和最大已持久化存储的预写日志的序列号的从节点为目标节点;向目标节点发送升主信息(也即步骤513中描述的升主消息),以使拥有最大序列号的已持久化存储的预写日志的从节点基于升主信息,将自身作为第i+1个任期的主节点。

16、本方案中,选择最大任期和最大已持久化存储的预写日志的序列号的从节点作为主节点,此时,主节点的wal日志可以认为是最新的,后续,基于最新的wal日志进行回放得到的数据也是与旧主的最近数据一致或者最接近的,从而降低对业务的影响。

17、示例性地,在未故障的第一锁定状态的从节点中,在拥有最大任期和最大已持久化存储的预写日志的序列号的从节点包括第i个任期的主节点时,将第i个任期的主节点作为目标节点,从而尽可能减少主备切换的可能性,降低对业务的影响。

18、在一种可能的实现方式中,方法还包括:向第i个任期的主节点发送升主信息,以使第i个任期的主节点基于升主信息,将自身作为第i+1个任期的主节点;向第i+1个任期的主节点发送解锁信息,以使第i+1个任期的主节点基于解锁信息,等待连接从节点;向从节点发送第二锁信息,以使从节点基于第二锁信息,建立与第i+1个任期的主节点的连接,在连接到第i+1个任期的主节点后,同步任期。

19、第二方面,本申请实施例提供了一种数据库系统的故障处理装置,数据库系统的故障处理装置包括若干个模块,各个模块用于执行本申请实施例第一方面提供的数据库系统的故障处理方法中的各个步骤,关于模块的划分在此不做限制。该数据库系统的故障处理装置各个模块所执行的具体功能及达到的有益效果请参考本申请实施例第一方面提供的数据库系统的故障处理方法的各个步骤的功能,在此不再赘述。

20、示例地,数据库系统的故障处理装置包括:

21、处理模块,用于在第i个任期的主节点的故障的情况下,按照等待时长等待第i个任期的主节点故障恢复;

22、决策模块,用于若在等待时长内,第i个任期的主节点故障恢复,且拥有最大任期和最大已持久化存储的预写日志的序列本文档来自技高网...

【技术保护点】

1.一种数据库系统的故障处理方法,其特征在于,所述数据库系统包括一个主节点、多个从节点和集群管理器,所述方法应用于所述集群管理器,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述基于所述第一锁定状态的从节点的任期和已持久化存储的预写日志的序列号,从所述第一锁定状态的从节点中,确定第i+1个任期的主节点,包括:

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

8.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:

9.根据权利要求8所述的方法,其特征在于,所述根据所述影响程度信息,确定所述等待时长,包括:

10.一种计算设备,其特征在于,包括处理器和存储器;其中,

【技术特征摘要】

1.一种数据库系统的故障处理方法,其特征在于,所述数据库系统包括一个主节点、多个从节点和集群管理器,所述方法应用于所述集群管理器,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述基于所述第一锁定状态的从节点的任期和已持久化存储的预写日志的序列号,从所述第一锁定状态的从节点中,确定第i+1个任期的主节点,包括:

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:<...

【专利技术属性】
技术研发人员:胡义成
申请(专利权)人:超聚变数字技术有限公司
类型:发明
国别省市:

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

1