一种数据库集群防脑裂方法、装置、设备、介质及产品与流程

    技术2025-02-08  56


    本发明实施例涉及数据库,尤其涉及一种数据库集群防脑裂方法、装置、设备、介质及产品。


    背景技术:

    1、在数据库集群中,当主库中的某个实例发生故障时,主库中的剩余实例会自动进行故障处理;当主库内所有实例均发生故障且短时间内无法恢复时,会由备库自动接管成为新主库,备库通过重做主库各实例节点产生的重做日志和主库保持数据一致。

    2、目前,为防止数据库集群中出现脑裂的情况,可以通过第三方的检测器在确认主库内所有实例确实故障、备库的数据和故障的主库的数据一致后,才允许备库自动接管为新主库。

    3、但上述方式在允许备库自动接管后仍可能会出现脑裂的情况,如主库中包括节点1和节点2,节点1网卡故障,按照故障处理规则选择节点标识小的节点1作为控制节点,认定节点2故障强制退出,节点1进行故障处理,使节点1对应的重做日志更新;因检测器与节点1和节点2均无法通信,检测器误判主库内所有实例确实故障;因检测器无法及时获取节点1对应的重做日志更新的信息,检测器误判备库的数据和故障的主库的数据一致;备库自动接管为新主库,导致故障的主库故障恢复后,与新主库的数据不一致,无法重新加入数据库集群。


    技术实现思路

    1、本发明提供了一种数据库集群防脑裂方法、装置、设备、介质及产品,可以避免数据库集群中出现脑裂的情况。

    2、第一方面,本发明实施例提供了一种数据库集群防脑裂方法,应用于数据库集群,所述数据库集群包括主库、检测器和至少一个备库,所述方法包括:

    3、通过所述主库在确定存在故障节点的情况下,将所述主库中的活动节点切换至故障处理等待状态,并将所述活动节点的故障处理等待状态传输至所述检测器;

    4、通过所述检测器在检测到所述主库中有活动节点处于所述故障处理等待状态的情况下,确认是否满足故障处理条件,并将确认结果传输至所述主库;

    5、通过所述主库,若所述确认结果指示满足所述故障处理条件,则进入故障处理状态执行故障处理,否则退出所述活动节点以使所述备库接管为新主库。

    6、第二方面,本发明实施例提供了一种数据库集群防脑裂装置,配置于数据库集群,所述数据库集群包括主库、检测器和至少一个备库,所述装置包括:

    7、故障处理等待模块,用于通过所述主库在确定存在故障节点的情况下,将所述主库中的活动节点切换至故障处理等待状态,并将所述活动节点的故障处理等待状态传输至所述检测器;

    8、确认模块,用于通过所述检测器在检测到所述主库中有活动节点处于所述故障处理等待状态的情况下,确认是否满足故障处理条件,并将确认结果传输至所述主库;

    9、故障处理模块,用于通过所述主库,若所述确认结果指示满足所述故障处理条件,则进入故障处理状态执行故障处理,否则退出所述活动节点以使所述备库接管为新主库。

    10、第三方面,本发明实施例提供了一种数据库集群防脑裂设备,包括:

    11、数据库集群、存储器以及至少一个处理器;

    12、所述数据库集群包括主库、检测器和至少一个备库;

    13、所述存储器与所述至少一个处理器通信连接;其中,

    14、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。

    15、第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现如第一方面所述的方法。

    16、第五方面,本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现如第一方面所述的方法。

    17、本发明实施例的技术方案,在数据库集群中出现故障情况需要执行故障处理时,提供了针对检测器的确认机制,主库在接收到检测器传输的指示满足故障处理条件的确认结果后才进行故障处理,若确认结果指示不满足故障处理条件则主库中的活动节点退出由备库接管为新主库,确保故障的主库故障恢复后与新主库的数据一致,避免了数据库集群中出现脑裂的情况。

    18、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。



    技术特征:

    1.一种数据库集群防脑裂方法,其特征在于,应用于数据库集群,所述数据库集群包括主库、检测器和至少一个备库,所述方法包括:

    2.根据权利要求1所述的方法,其特征在于,所述故障处理条件,包括:

    3.根据权利要求1所述的方法,其特征在于,将所述活动节点的故障处理等待状态传输至所述检测器,包括:

    4.根据权利要求1所述的方法,其特征在于,将确认结果传输至所述主库,包括:

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

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

    7.一种数据库集群防脑裂装置,其特征在于,配置于数据库集群,所述数据库集群包括主库、检测器和至少一个备库,所述装置包括:

    8.一种数据库集群防脑裂设备,其特征在于,包括:

    9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现如权利要求1-6中任一所述的方法。

    10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-6中任一所述的方法。


    技术总结
    本发明公开了一种数据库集群防脑裂方法、装置、设备、介质及产品。所述方法应用于数据库集群,所述数据库集群包括主库、检测器和至少一个备库,所述方法包括:通过所述主库在确定存在故障节点的情况下,将所述主库中的活动节点切换至故障处理等待状态,并将所述活动节点的故障处理等待状态传输至所述检测器;通过所述检测器在检测到所述主库中有活动节点处于所述故障处理等待状态的情况下,确认是否满足故障处理条件,并将确认结果传输至所述主库;通过所述主库,若所述确认结果指示满足所述故障处理条件,则进入故障处理状态执行故障处理,否则退出所述活动节点以使所述备库接管为新主库。上述技术方案可以避免数据库集群中出现脑裂的情况。

    技术研发人员:皮宇,王蒙蒙,冯源,孙峰
    受保护的技术使用者:武汉达梦数据库股份有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-26146.html

    最新回复(0)