分布式数据库系统的故障检测方法、装置及电子设备制造方法及图纸

技术编号:28419484 阅读:25 留言:0更新日期:2021-05-11 18:26
本申请涉及分布式数据库系统的故障检测方法、装置及电子设备,所述方法包括:周期性地从代理接入程序集合中确定至少两个目标代理接入程序;在当前探测周期内,触发各个所述目标代理接入程序分别对数据库节点进行探测,得到当前探测周期内的至少两个第一探测结果;在至少两个所述第一探测结果满足预设失败条件时,判定当前探测周期内针对所述数据库节点的目标探测结果为失败;在连续探测到的第一预设数量周期的目标探测结果均为失败时,判定所述数据库节点出现异常;在所述数据库节点连续出现预设次数的异常时,判定所述数据库节点发生故障。实施本申请,可以解决分布式数据库系统中存在的故障检测效率低以及检测准确度不高的问题。

【技术实现步骤摘要】
分布式数据库系统的故障检测方法、装置及电子设备
本申请涉及数据处理领域,尤其涉及分布式数据库系统的故障检测方法、装置及电子设备。
技术介绍
传统的网络存储系统采用集中的存储服务器存放所有数据,但是集中存储服务器的存储空间有限,不能满足大规模存储应用的需要。分布式数据库系统采用可扩展的系统结构,将数据分散存储在多台独立的设备上,利用多台存储服务器分散存储数据,从而为大规模数据存储提供了解决方案。但是,在分布式存储系统中,当数据库存储进程发生故障时,如果不能及时发现故障并将运行数据迁移到其他设备上,服务就会停止,服务可用性较差。基于以上内容可知,发现数据库存储进程是否发生故障,并在故障发生时及时进行数据迁移是保证服务可用性的关键。现有技术中,往往首先由管理控制器通过网络心跳对数据库存储进程进行故障检测,在检测到服务停止后,用户再手动登录数据库集群中的主数据库和从数据库,对数据库集群中的主数据库和从数据库进行手动检测。例如,管理控制器自动调用自定义脚本、每隔心跳检测的间隔时间对主数据库探测一次,连续4次主数据库没有响应,说明主数据库可能宕机,此时,需要用户进行SSH登录检查,然后对MySQL服务进行Ping(select)健康检查,每隔3s检查一次,持续3次,如果均没有响应,最后作出需要切换主数据库的决定。可见,现有技术中的上述检测方式存在检测效率低以及检测准确度不高的问题。
技术实现思路
本申请所要解决的技术问题在于,提供一种分布式数据库系统的故障检测方法、装置及设备,能够解决现有技术中存在的检测效率低以及检测准确度不高的问题。为了解决上述技术问题,一方面,本申请提供了一种分布式数据库系统的故障检测方法,所述方法包括:周期性地从代理接入程序集合中确定至少两个目标代理接入程序;在当前探测周期内,触发各个所述目标代理接入程序分别对数据库节点进行探测,得到当前探测周期内的至少两个第一探测结果;在至少两个所述第一探测结果满足预设失败条件时,判定当前探测周期内针对所述数据库节点的目标探测结果为失败;在连续探测到的第一预设数量周期的目标探测结果均为失败时,判定所述数据库节点出现异常;在所述数据库节点连续出现预设次数的异常时,判定所述数据库节点发生故障。另一方面,本申请提供了一种分布式数据库系统的故障检测装置,所述装置包括:代理接入程序确定模块,用于周期性地从代理接入程序集合中确定至少两个目标代理接入程序;探测模块,用于在当前探测周期内,触发各个所述目标代理接入程序分别对数据库节点进行探测,得到当前探测周期内的至少两个第一探测结果;目标探测结果判断模块,用于在至少两个所述第一探测结果满足预设失败条件时,判定当前探测周期内针对所述数据库节点的目标探测结果为失败;异常判断模块,用于在连续探测到的第一预设数量周期的目标探测结果均为失败时,判定所述数据库节点出现异常;故障判断模块,用于在所述数据库节点连续出现预设次数的异常时,判定所述数据库节点发生故障。另一方面,本申请提供了一种电子设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行如上述的方法。另一方面,本申请提供了一种计算机存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如上述的方法。在本申请实施例中,通过周期性地从代理接入程序集合中确定至少两个目标代理接入程序,并在当前探测周期内触发各个所述目标代理接入程序分别对数据库节点进行探测,得到当前探测周期内的至少两个第一探测结果,以及在至少两个所述第一探测结果满足预设失败条件时,判定当前探测周期内针对所述数据库节点的目标探测结果为失败,在连续探测到的第一预设数量周期的目标探测结果均为失败时,判定所述数据库节点出现异常,在所述数据库节点连续出现预设次数的异常时,判定所述数据库节点发生故障。如此,不管在有无数据读写时,只要任一数据库节点发生故障,都可以主动探测到,并且,故障检测的效率较高,对于故障的判断也更为细致,能够最大程度地避免误判及漏判,提高了故障检测的准确性。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。图1是本申请实施例提供的硬件环境示意图;图2是本申请实施例提供的一种分布式数据库系统的故障检测方法的流程图;图3是本申请实施例提供的一种分布式数据库系统的故障检测方法中触发各个目标代理接入程序对数据库节点进行探测的方法的流程图;图4是本申请实施例提供的一种分布式数据库系统的故障检测方法中触发各个目标代理接入程序对数据库节点进行探测的另一方法的流程图;图5是本申请实施例提供的一种分布式数据库系统的故障检测方法中还包括的判断数据库节点发生故障的方法的流程图;图6是在图5中判定数据库节点发生故障的步骤之前还包括的方法的流程图;图7是本申请实施例提供的一种分布式数据库系统的故障检测方法中还包括的控制故障切换的方法的流程图;图8是本申请实施例提供的一种分布式数据库系统的故障检测方法中主数据库节点和备用数据库节点上报日志更新时间的示意图;图9是本申请实施例提供的一种分布式数据库系统的故障检测装置的结构示意图;图10是本申请实施例提供的一种分布式数据库系统的故障检测设备的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请实施例提供了一种分布式数据库系统的故障检测方法,可选地,在本申请实施例中,上述的故障检测方法可以应用于如图1所示的管理服务器101、代理服务器102、主数据库服务器103和备用数据库服务器104所构成的硬件环境中。其中,可以在所述管理服务器101上安装监控程序,所述代理服务器102本文档来自技高网...

【技术保护点】
1.一种分布式数据库系统的故障检测方法,其特征在于,所述方法包括:/n周期性地从代理接入程序集合中确定至少两个目标代理接入程序;/n在当前探测周期内,触发各个所述目标代理接入程序分别对数据库节点进行探测,得到当前探测周期内的至少两个第一探测结果;/n在至少两个所述第一探测结果满足预设失败条件时,判定当前探测周期内针对所述数据库节点的目标探测结果为失败;/n在连续探测到的第一预设数量周期的目标探测结果均为失败时,判定所述数据库节点出现异常;/n在所述数据库节点连续出现预设次数的异常时,判定所述数据库节点发生故障。/n

【技术特征摘要】
1.一种分布式数据库系统的故障检测方法,其特征在于,所述方法包括:
周期性地从代理接入程序集合中确定至少两个目标代理接入程序;
在当前探测周期内,触发各个所述目标代理接入程序分别对数据库节点进行探测,得到当前探测周期内的至少两个第一探测结果;
在至少两个所述第一探测结果满足预设失败条件时,判定当前探测周期内针对所述数据库节点的目标探测结果为失败;
在连续探测到的第一预设数量周期的目标探测结果均为失败时,判定所述数据库节点出现异常;
在所述数据库节点连续出现预设次数的异常时,判定所述数据库节点发生故障。


2.根据权利要求1所述的故障检测方法,其特征在于,所述触发各个所述目标代理接入程序分别对数据库节点进行探测,得到当前周期内的至少两个第一探测结果包括:
触发各个所述目标代理接入程序分别向所述数据库节点发送服务探测请求,以使所述数据库节点响应于所述服务探测请求执行相应的数据读操作;
判断是否接收到各个所述目标代理接入程序发送的探测回包,所述探测回包为各个所述目标代理接入程序基于所述数据库节点返回的反馈信息确定,所述反馈信息为所述数据库节点在执行所述数据读操作后得到的信息;
若没有接收到某一所述目标代理接入程序发送的探测回包,判定通过相应的所述目标代理接入程序探测得到的第一探测结果为失败。


3.根据权利要求2所述的故障检测方法,其特征在于,所述触发各个所述目标代理接入程序分别对数据库节点进行探测,得到当前周期内的至少两个第一探测结果还包括:
若接收到所述目标代理接入程序发送的探测回包,对所述探测回包进行分析;
若所述探测回包中包括探测超时信息时,判定通过相应的所述目标代理接入程序探测得到的第一探测结果为失败,所述探测超时信息用于表征对应的所述目标代理接入程序在超出预设等待时间后才接收到所述数据库节点发送的反馈信息。


4.根据权利要求1所述的故障检测方法,其特征在于,所述方法还包括:
周期性地接收各个所述目标代理接入程序上报的读写请求接收数据和请求响应数据,所述读写请求接收数据和请求响应数据为各个所述目标代理接入程序针对同一所述数据库节点进行监测得到;
基于所述读写请求接收数据和所述请求响应数据计算当前探测周期内所述数据库节点的响应错误率;
在连续探测到的第二预设数量周期的所述响应错误率均大于等于预设错误率时,判定所述数据库节点发生故障。


5.根据权利要求4所述的故障检测方法,其特征在于,在所述判定所述数据库节点发生故障的步骤之前,所述方法还包括:
判断每个周期内的请求总数是否均大于等于预设请求数量;
若每个周期...

【专利技术属性】
技术研发人员:张良张世维杨绍鹏
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1