一种基于加持锁的分布式备份方法及系统与流程

未命名 07-28 阅读:118 评论:0


1.本技术涉及分布式数据库技术领域,尤其涉及一种基于加持锁的分布式备份方法及系统。


背景技术:

2.分布式数据库容灾系统中,数据备份恢复是必备手段。在当前分布式数据库中,采用集群内单节点备份恢复的方式,将单节点备份的备份集合作为整体分布式数据库系统的备份。现有方式通过脚本命令向集群内各节点发送备份恢复命令,命令各节点将本节点的数据库必要文件进行备份存储。各节点的备份也有两种存放方式,一种是存放在各自节点,另一种是汇总放到单独的备份服务器上。现有的分布式备份方式对全局一致性的考虑并不完整,缺少一致点处理或者未对一致点保存,导致系统备份恢复报错或者无法准确找到所需的恢复位置。现有分布式集群顺序恢复各节点,且节点内部单线程执行恢复,导致所需恢复时间长。
3.对于目前分布式数据库系统的备份策略来说,需要管理人员到各节点执行命令,为了减轻执行复杂度,采用单节点命令覆盖全集群的执行方式。对于分布式的在线备份,传统方式将各节点的数据单独备份忽略正在执行的事务,会导致备份的分布式集群数据状态不一致。


技术实现要素:

4.本技术实施例提供基于加持锁的分布式备份方法及系统,创建一致点过程中的加锁处理,保证整体分布式集群的数据准确一致,提高分布式数据库的容灾性。
5.本技术实施例提供一种基于加持锁的分布式备份方法,应用于包含多个节点的分布式数据库,所述分布式备份方法包括:
6.预先将备份恢复工具的执行文件设置在数据库的安装包中,并随所述数据库部署到各节点上,部署之后的数据库的多个节点分为协调节点和数据节点,其中协调节点用于接收用户请求、生成并执行分布式查询、以及将sql语句发给相应的数据节点,数据节点用于存储数据;
7.执行如下步骤完成备份:
8.在提交阶段,配置数据库内核,以对协调节点的备份事务提交阶段添加共享锁,以使得添加的共享锁与共享锁之间不互斥,且添加的共享锁与排他锁互斥;
9.在备份阶段,利用所述备份恢复工具,基于当前协调节点对各协调节点数据库添加排他锁,所述排他锁与共享锁互斥,以利用所述排他锁,暂缓数据库事务提交,以及,判断是否存在备份事务处于提交阶段,若是则等待相应的共享锁释放;
10.在处于提交阶段的各共享锁释放后,创建一致点,并将所创建的一致点记录到数据库日志中。
11.可选的,预先将备份恢复工具设置在数据库的安装包中,并随所述数据库部署到
各节点上包括:
12.在中心节点,安装备份恢复工具,并通过命令行参数传入分布式数据库相关信息;
13.基于传入的分布式数据库相关信息连接数据库,创建连接字符;
14.基于创建的连接字符,调用备份恢复工具创建数据库连接,并获取其他节点信息。
15.可选的,基于当前协调节点对各协调节点数据库添加排他锁包括:
16.利用当前协调节点获取备份指令;
17.利用所述当前协调节点向所有协调节点发送添加排他锁指令,以实现基于当前协调节点对各协调节点数据库添加排他锁。
18.可选的,利用所述排他锁,判断是否存在备份事务处于提交阶段包括:
19.将所添加的排他锁加入锁等待队列;
20.判断所述锁等待队列是否存在共享锁,若存在,则等待所述锁等待队列中的共享锁释放。
21.可选的,所述排他锁配置有定时器;
22.所述分布式备份还包括:
23.利用所述备份恢复工具,在所述定时器的定时范围内,按照设定的时间间监控施加排斥锁的进程,若超过所述定时器的定时范围,则退出相应的进程,并告警数据库事务提交异常。
24.可选的,还包括将所创建的一致点记录到数据库日志中,并在所述备份恢复工具目录中记录一致点名称;
25.在一致点记录完成后,解开所述排他锁。
26.可选的,还包括执行如下步骤完成恢复:
27.协调节点在接收到恢复指令后,开启多进程,向所有分布式集群内的节点发送恢复指令,以使得任一节点接收到命令后,根据用户指定的线程数,进行备份,以及恢复磁盘文件。
28.本技术实施例还提出一种基于加持锁的分布式系统,包含多个分布式数据库节点,所述分布式系统的各节点预先基于数据库安装包部署有备份恢复工具,部署之后的多个数据库节点分为协调节点和数据节点,其中协调节点接收用户请求、生成并执行分布式查询、以及将sql语句发给相应的数据节点,数据节点用于存储数据;
29.所述数据库节点包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的基于加持锁的分布式备份方法的步骤。
30.本技术实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的基于加持锁的分布式备份方法的步骤。
31.本技术实施例通过在提交阶段,对协调节点的备份事务提交阶段添加共享锁,在创建一致点过程中的加锁处理,保证整体分布式集群的数据准确一致,提高分布式数据库的容灾性。
32.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
33.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
34.图1为本技术实施例的分布式备份方法的备份恢复工具部署流程;
35.图2为本技术实施例的分布式备份方法的加持锁处理流程示意;
36.图3为本技术实施例的分布式备份方法的恢复过程示例。
具体实施方式
37.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
38.在分布式数据库系统中,为了保证事务的提交,会以两阶段提交协议为基准,对同一个事务所接触的不同节点进行准备、提交两个阶段,以提高该跨界点事务的准确性,但是因此引入了一个事务完整性的中间阶段,即当协调节点上发起提交的时候,由于不可抗因素导致数据在数据节点一上完成提交,正常保存数据操作;而在数据节点上,发生不可抗力,导致数据并未完成操作,而这时完成了数据备份,就会导致在数据完成恢复后,整个分布式数据库系统的数据已经发生未知的改变。又因为分布式数据库系统中无法根据时间点进行恢复,因为各节点的操作系统时间是进行校准的,但网络是有延迟,并且每个节点的数据量是有区别的,这就导致开始和完成备份的时间是不一致的,从而无法保证恢复出数据的一致性,并也无法解决上述中间态的问题。
39.基于此本技术实施例提供一种基于加持锁的分布式备份方法,应用于包含多个节点的分布式数据库,所述分布式备份方法包括:
40.预先将备份恢复工具的执行文件设置在数据库的安装包中,并随所述数据库部署到各节点上,部署之后的数据库的多个节点分为协调节点和数据节点,其中协调节点用于接收用户请求、生成并执行分布式查询、以及将sql语句发给相应的数据节点,数据节点用于存储数据。本技术实施例中通过将备份恢复工具置于数据库安装包中,来解决分布式数据库的备份恢复工具的命令执行复杂度的问题,备份恢复工具随安装包部署在分布式集群的各个节点上。后续接收到用户命令时,可以通过ssh命令将用户命令进行解析、封装,发往各个节点进行执行。节点之间的路由,可以记录在备份恢复工具的配置文件中。
41.本技术实通过在执行在线备份时,进行加锁、加锁成功后创建一致点进行实现,来解决分布式在线备份数据库事务状态不一致问题。具体一些实施例中执行如下步骤完成备份:
42.在提交阶段,配置数据库内核,以对协调节点的备份事务提交阶段添加共享锁,以使得添加的共享锁与共享锁之间不互斥,且添加的共享锁与排他锁互斥,也即共享锁不会与共享锁互斥,共享锁和排他锁互斥。数据库备份期间要保证数据事务的正常流转,又要保证工具所备份的一个断点是事务一致的,本技术实施例所采取的方法是对协调节点上的事务进行提交锁处理,即以一种数据库内部通用的锁识别处理机制,对正常的协调节点发起
的事务提交进行共享锁施加,这种锁模式不会对自己的同类型锁进行阻塞,以保证各个用户都可以正常的提交使用。
43.在备份阶段,利用所述备份恢复工具,基于当前协调节点对各协调节点数据库添加排他锁,所述排他锁与共享锁互斥,以利用所述排他锁,暂缓数据库事务提交,以及,判断是否存在备份事务处于提交阶段,若是则等待相应的共享锁释放。
44.具体的,在备份阶段,利用备份恢复工具向数据库发送sql命令,来对数据库施加排斥锁,与事务提交的共享锁互斥,暂缓数据库事务提交。在处于提交阶段的各共享锁释放后,创建一致点,并将所创建的一致点记录到数据库日志中。
45.本技术实施例通过在提交阶段,对协调节点的备份事务提交阶段添加共享锁,在创建一致点过程中的加锁处理,保证整体分布式集群的数据准确一致,提高分布式数据库的容灾性。
46.在一些实施例中,预先将备份恢复工具设置在数据库的安装包中,并随所述数据库部署到各节点上包括:
47.在中心节点,本技术实施例中,中心节点是指当前所使用的协调节点,如图1所示,安装备份恢复工具,并通过命令行参数传入分布式数据库相关信息,具体可以传入的分布式数据库相关信息可以包括例如分布式数据库端口、用户、密码等信息。
48.基于传入的分布式数据库相关信息连接数据库,创建连接字符。
49.基于创建的连接字符,用备份恢复工具创建数据库连接,并获取其他节点信息。
50.在一些实施例中,如图2所示,基于当前协调节点对各协调节点数据库添加排他锁包括:
51.利用当前协调节点获取备份指令,具体的当前协调节点可以获取用户备份指令。并利用所述当前协调节点向所有协调节点发送添加排他锁指令,以实现基于当前协调节点对各协调节点数据库添加排他锁。
52.在一些实施例中,利用所述排他锁,判断是否存在备份事务处于提交阶段包括:
53.将所添加的排他锁加入锁等待队列,本技术实施例中锁等待队列用于依序保存共享锁和排他锁。判断所述锁等待队列是否存在共享锁,若存在,则等待所述锁等待队列中的共享锁释放。一些示例中,判断过程为:判断锁等待队列中排他锁之前是否存在共享锁,若存在,则等待所述锁等待队列中的共享锁释放。在处于提交阶段的各共享锁释放后,创建一致点,并将所创建的一致点记录到数据库日志中。
54.本技术实施例通过在协调节点上的加锁,使得备份之前的事务正常提交,备份之后的事务想要提交需要等待备份一致点创建完成,这时整个分布式数据库系统就达到了事务一致性状态,是备份的最佳状态,此时工具将一致点名称记录在日志文件中,以供数据库恢复时使用。
55.在一些实施例中,如图2所示,还包括将所创建的一致点记录到数据库日志中,并在所述备份恢复工具目录中记录一致点名称;在一致点记录完成后,解开所述排他锁。
56.在一些实施例中,如图2所示,所述排他锁配置有定时器;所述分布式备份还包括:利用所述备份恢复工具,在所述定时器的定时范围内,按照设定的时间间监控施加排斥锁的进程,若超过所述定时器的定时范围,则退出相应的进程,并告警数据库事务提交异常,例如通知用户数据库事务提交异常,导致备份失败,需要用户干预处理。
57.对于解决分布式备份一致点用户无记录的问题,本技术实施例在数据库的日志中记录,并在工具的日志中进行保存,用户可通过相关命令进行查看,并于创建一致点的时候的时间点进行关联,用户查询得打一致点名称和一致点创建时间两个关键词,以此定位所需的一致点。采用并行方式,多进程多线程的方式,在分布式集群的节点内外进行并行执行,实现降低分布式集群整体恢复到可用状态的花费时间。在一些实施例中,还包括执行如下步骤完成恢复:
58.协调节点在接收到恢复指令后,开启多进程,向所有分布式集群内的节点发送恢复指令,以使得任一节点接收到命令后,根据用户指定的线程数,进行恢复,以及恢复磁盘文件。具体如图3所示,
59.当接收到用户的恢复指令时,开启多进程,向所有分布式集群内的节点进行命令发送,进程数根据实际集群中的节点数量进行分配,不进行返回信息等待。
60.单节点接收到命令后,会根据用户指定的线程数,开启多线程,进行备份,将磁盘文件进行恢复。
61.执行完成后返回成功信息。
62.在一些实施例中,还包括采用如下方式解决备份恢复工具被限制执行节点(固定在某一个节点上)的问题:
63.获取用户发送的命令,并在本地进行解析和封装;
64.通过调用系统ssh命令按照配置文件发送给所有节点,执行命令;
65.接收所有节点的返回信息,并返回给用户。
66.对于恢复过程,本技术实施例利用备份恢复工具通过并行向所有分布式集群节点发送相关执行命令,并在节点内部开启多线程恢复,以达到加快恢复进程的目的。
67.如图3所示,备份恢复工具通过遍历集群信息表,获取各节点信息后,创建多个进程发送执行命令,并不等待远程节点返回结果,向所有节点发送完命令后接受相关结果。当节点接收到执行命令后,节点工具开启多线程恢复,依据系统内部所剩余的线程数以及用户所指定的线程数开启相应线程进行工作,完成后返回结果并退出。
68.为了保证数据状态一致,本技术实施例提出一致点的思想,并为了减轻用户记录一致点名称的工作,备份恢复工具内部将一致点进行保存。在恢复期间,传统的恢复时间长,等待时间久,一些具体示例中本技术实行节点内外的并行恢复的方式,加快恢复,节约时间。同时也允许用户在各节点执行命令,打破传统的固定节点的方式。
69.利用本技术实施例的方法,使用便捷的部署方式和命令执行方式,使得工具的易用性、容错性和流畅性更好。创建一致点过程中的加锁处理,保证了整体分布式集群的数据准确一致,提高分布式数据库的容灾性;并行恢复模式,使得管理员以及系统能够更快的对外服务,保证快速提供业务服务。
70.本技术实施例还提出一种基于加持锁的分布式系统,包含多个分布式数据库节点,所述分布式系统的各节点预先基于数据库安装包部署有备份恢复工具的执行文件,部署之后的多个数据库节点分为协调节点和数据节点,其中协调节点用于接收用户请求、生成并执行分布式查询、以及将sql语句发给相应的数据节点,数据节点用于存储数据;
71.所述数据库节点包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的基于加持锁的分布式备份方法的步骤。
72.本技术实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的基于加持锁的分布式备份方法的步骤。
73.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
74.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
75.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本技术各个实施例所述的方法。
76.上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本技术的保护之内。

技术特征:
1.一种基于加持锁的分布式备份方法,其特征在于,应用于包含多个节点的分布式数据库,所述分布式备份方法包括:预先将备份恢复工具的执行文件设置在数据库的安装包中,并随所述数据库部署到各节点上,部署之后的数据库的多个节点分为协调节点和数据节点,其中协调节点用于接收用户请求、生成并执行分布式查询、以及将sql语句发给相应的数据节点,数据节点用于存储数据;执行如下步骤完成备份:在提交阶段,配置数据库内核,以对协调节点的备份事务提交阶段添加共享锁,以使得添加的共享锁与共享锁之间不互斥,且添加的共享锁与排他锁互斥;在备份阶段,利用所述备份恢复工具,基于当前协调节点对各协调节点数据库添加排他锁,所述排他锁与共享锁互斥,以利用所述排他锁,暂缓数据库事务提交,以及,判断是否存在备份事务处于提交阶段,若是则等待相应的共享锁释放;在处于提交阶段的各共享锁释放后,创建一致点,并将所创建的一致点记录到数据库日志中。2.如权利要求1所述的基于加持锁的分布式备份方法,其特征在于,预先将备份恢复工具设置在数据库的安装包中,并随所述数据库部署到各节点上包括:在中心节点,安装备份恢复工具,并通过命令行参数传入分布式数据库相关信息;基于传入的分布式数据库相关信息连接数据库,创建连接字符;基于创建的连接字符,调用备份恢复工具创建数据库连接,并获取其他节点信息。3.如权利要求1所述的基于加持锁的分布式备份方法,其特征在于,基于当前协调节点对各协调节点数据库添加排他锁包括:利用当前协调节点获取备份指令;利用所述当前协调节点向所有协调节点发送添加排他锁指令,以实现基于当前协调节点对各协调节点数据库添加排他锁。4.如权利要求3所述的基于加持锁的分布式备份方法,其特征在于,利用所述排他锁,判断是否存在备份事务处于提交阶段包括:将所添加的排他锁加入锁等待队列;判断所述锁等待队列是否存在共享锁,若存在,则等待所述锁等待队列中的共享锁释放。5.如权利要求4所述的基于加持锁的分布式备份方法,其特征在于,所述排他锁配置有定时器;所述分布式备份还包括:利用所述备份恢复工具,在所述定时器的定时范围内,按照设定的时间间监控施加排斥锁的进程,若超过所述定时器的定时范围,则退出相应的进程,并告警数据库事务提交异常。6.如权利要求1所述的基于加持锁的分布式备份方法,其特征在于,还包括将所创建的一致点记录到数据库日志中,并在所述备份恢复工具目录中记录一致点名称;在一致点记录完成后,解开所述排他锁。7.如权利要求1所述的基于加持锁的分布式备份方法,其特征在于,还包括执行如下步
骤完成恢复:协调节点在接收到恢复指令后,开启多进程,向所有分布式集群内的节点发送恢复指令,以使得任一节点接收到命令后,根据用户指定的线程数,进行恢复,以及恢复磁盘文件。8.一种基于加持锁的分布式系统,其特征在于,包含多个分布式数据库节点,所述分布式系统的各节点预先基于数据库安装包部署有备份恢复工具,部署之后的多个数据库节点分为协调节点和数据节点,其中协调节点用于接收用户请求、生成并执行分布式查询、以及将sql语句发给相应的数据节点,数据节点用于存储数据;所述数据库节点包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的基于加持锁的分布式备份方法的步骤。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的基于加持锁的分布式备份方法的步骤。

技术总结
本申请公开了一种基于加持锁的分布式备份方法及系统,包括:预先将备份恢复工具设置在数据库的安装包中,并随所述数据库部署到各节点上;在提交阶段,配置数据库内核,以对协调节点的备份事务提交阶段添加共享锁;在备份阶段,利用所述备份恢复工具,基于当前协调节点对各协调节点数据库添加排他锁;在处于提交阶段的各共享锁释放后,创建一致点,并将所创建的一致点记录到数据库日志中。本申请实施例通过在提交阶段,对协调节点的备份事务提交阶段添加共享锁,在创建一致点过程中的加锁处理,保证整体分布式集群的数据准确一致,提高分布式数据库的容灾性。式数据库的容灾性。式数据库的容灾性。


技术研发人员:王福林 高雪玉 苗健 吕新杰
受保护的技术使用者:瀚高基础软件股份有限公司
技术研发日:2023.05.11
技术公布日:2023/7/27
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐