一种分布式数据库的备份方法和恢复方法以及备份系统与流程

文档序号:26004039发布日期:2021-07-23 21:21阅读:78来源:国知局
一种分布式数据库的备份方法和恢复方法以及备份系统与流程
本发明涉及分布式数据库
技术领域
,具体涉及一种分布式数据库的备份方法和恢复方法以及备份系统。
背景技术
:分布式数据库中的数据分别在不同的局部数据库中存储,在不同的主机上运行,通过通信网络连接,一个应用程序可以对分布式数据库进行透明操作。一个分布式数据库在逻辑上是一个统一的整体,在物理上则是分别存储在不同的节点上,应用程序可以通过网络连接访问分布在不同地理位置的数据库。分布式数据库通常通过接口进行数据备份,备份数据大都是以数据节点为单位进行存储,恢复分布式数据库数据时,需要根据恢复条件和恢复时间点从备份系统获取对应的备份数据反向恢复至分布式内存数据库数据节点。但是分布式数据库具有弹性伸缩的作用,可以弹性的增加或减少节点或处理能力。对于弹性伸缩引起节点及其主机的变化,现有的分布式数据库的备份系统没有进行同步调整。需要进行人工干预,根据调整后的主机或分布式数据节点的变化情况,调整数据库备份和恢复配置,重新进行备份处理或恢复处理。整个调整过程需要人工介入,操作过多且较为复杂,效率较低,同时增加了误操作几率,数据易丢失。技术实现要素:针对现有技术中存在的上述技术问题,本发明提供一种分布式数据库的备份方法和恢复方法以及备份系统,以适应分布式数据库弹性伸缩引起的节点变化,防止数据丢失。本发明公开了一种分布式数据库的备份方法,所述备份方法包括:获取分布式数据库集群的节点信息;根据所述节点信息,分析节点变化的情况;若增加新节点,在备份关系中增加所述新节点;若减少节点,在备份关系中删除所减少节点;根据所述备份关系向节点发送备份请求;接收所述节点返回的备份数据。优选的,所述节点生成备份数据的方法包括:为备份关系和备份数据设置时间戳,所述备份请求包括上一次备份的时间戳;所述节点返回所述时间戳和备份请求时间之间产生的备份数据。优选的,本发明的备份方法还包括节点变化的数据备份方法:所述节点信息包括节点变化时间,所述备份请求包括上一次备份的时间戳和节点变化时间;所述节点返回所述时间戳和节点变化时间之间产生的备份数据。本发明还提供一种上述备份数据的恢复方法,所述恢复方法包括:步骤401:获取分布式数据库集群的节点信息;步骤402:根据所述节点信息,分析节点变化的情况;若增加新节点,执行步骤404:按待备份关系,将待恢复的备份数据发送到相应的节点进行恢复;若减少节点,执行步骤405:在备份关系中删除所减少节点,获得第二备份关系,执行步骤407;步骤407:将待恢复的备份数据重分配到所述第二备份关系的节点中。优选的,若同时增加新节点和减少节点,执行步骤408:在备份关系中删除所减少节点,获得第二备份关系,按第二备份关系将待恢复的备份数据发送到相应节点进行恢复;步骤409:在第二备份关系中增加新节点,获得第三备份关系,将所减少节点的备份数据重分配到新节点或第三备份关系的节点中。优选的,本发明的恢复方法还包括逐级恢复的方法:根据恢复请求,获取请求时间点及其之前的备份;按备份时间的顺序,依次恢复所述备份。本发明还提供一种用于实现上述备份方法的备份系统,包括获取模块、备份解析模块、备份关系模块和备份模块;所述获取模块用于获取分布式数据库集群的节点信息;所述备份解析模块根据所述节点信息,分析节点变化的情况;若增加新节点,通过备份关系模块在备份关系中增加所述新节点;若减少节点,通过备份关系模块在备份关系中删除所减少节点;备份模块用于根据所述备份关系向节点发送备份请求,并接收所述节点返回的备份数据。优选的,所述备份系统还包括恢复解析模块、第一恢复模块、第二恢复模块和重分配模块,所述获取模块在接收到备份恢复请求时,获取分布式数据库集群的节点信息;所述恢复解析模块用于根据所述节点信息,分析节点变化的情况;在增加新节点时,所述第一恢复模块按待恢复备份数据相应的备份关系,将待恢复的备份数据发送到相应的节点进行恢复;在减少节点时,所述第二恢复模块删除备份关系中所减少节点,获得第二备份关系;所述重分配模块用于将待恢复的备份数据重分配到所述第二备份关系的节点中。优选的,所述备份系统还包括第三恢复模块,在同时增加新节点和减少节点时,通过第三恢复模块在备份关系中删除所减少节点,获得第二备份关系,按第二备份关系将待恢复的备份数据发送到相应节点进行恢复;在第二备份关系中增加新节点,获得第三备份关系;通过重分配模块将所减少节点的备份数据重分配到新节点或第三备份关系的节点中。优选的,所述备份系统还包括逐级恢复模块,所述逐级恢复模块用于获取恢复请求时间和请求时间点之前的备份,并按备份时间的顺序,依次将备份、恢复请求时间和节点信息发送给恢复解析模块。与现有技术相比,本发明的有益效果为:备份中通过分析节点信息判断当前节点的变化情况,建立当前的备份关系,根据备份关系向相应的节点发送备份请求,以获得备份数据,生成备份关系和备份数据,利于通过备份关系和备份数据进行数据恢复,避免了人工介入,提高了数据备份的效率,防止分布式数据库弹性伸缩的过程中备份数据丢失。附图说明图1是本发明的分布式数据库备份方法流程图;图2是本发明的分布式数据库恢复方法流程图;图3是本发明的备份系统逻辑框图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明做进一步的详细描述:一种分布式数据库的备份方法,如图1所示,所述备份方法包括:步骤101:获取分布式数据库集群的节点信息。可以从分布式数据库管理系统中获取节点信息,节点信息可以包括节点名称、主机名称、节点ip、端口。步骤102:根据所述节点信息,分析节点变化的情况。可以将上一次备份的节点信息与当前的节点信息进行对比判断。若增加新节点,执行步骤103:与新节点建立备份关系,即在备份关系中增加所述新节点,执行步骤105。若减少节点,执行步骤104:删除所减少节点的备份关系,即在备份关系中删除所减少节点,执行步骤105。在弹性伸缩机制中,减少节点的数据迁移至保留节点上,因此不会造成数据丢失。若节点保持不变,执行步骤105。若同时增加新节点和减少节点,在备份关系中增加新节点,同时删除减少节点,执行步骤105。步骤105:根据所述备份关系向节点发送备份请求。步骤106:接收所述节点返回的备份数据。备份后生成备份关系和备份数据,备份关系用于描述备份数据和节点的关系。备份数据可以包括重做日志和归档日志,但不限于此。分布式数据库可以是分布式内存数据库。备份中通过分析节点信息判断当前节点的变化情况,建立当前的备份关系,根据备份关系向相应的节点发送备份请求,以获得备份数据,生成备份关系和备份数据,利于通过备份关系和备份数据进行数据恢复,避免了人工介入,提高了数据备份的效率,防止分布式数据库弹性伸缩的过程中备份数据丢失。其中,所述节点生成备份数据的方法包括:步骤201:为备份关系和备份数据设置时间戳,所述备份请求包括上一次备份的时间戳。上一次备份是指备份时间早于当前时间,且备份时间最接近当前时间或备份请求时间的备份。步骤201:所述节点返回所述时间戳和备份请求时间之间产生的备份数据。通过时间阶段化的备份,减少每次备份的数据量,避免了数据的重复备份。本发明的备份方法还可以包括节点变化的数据备份方法:步骤301:所述节点信息包括节点变化时间,所述备份请求包括上一次备份的时间戳和节点变化时间。步骤302:所述节点返回所述时间戳和节点变化时间之间产生的备份数据。对节点变化时间进行备份,避免弹性伸缩中的数据丢失。本发明还提供一种分布式数据库的恢复方法,如图2所示,所述恢复方法包括:步骤401:获取分布式数据库集群的节点信息。步骤402:根据所述节点信息,分析节点变化的情况。若增加新节点,执行步骤404:按待恢复备份数据相应的备份关系,将待恢复的备份数据发送到相应的节点进行恢复,即按备份关系恢复备份数据。若减少节点,执行步骤405:在备份关系中删除所减少节点,获得第二备份关系,执行步骤407。应当指出的是,删除了减少节点后的第二备份关系不应当覆盖原有的备份关系。步骤407:将备份数据重分配到所述二备份关系的节点中。但不限于此,也可以按所述第二备份关系,将待恢复的备份数据发送到相应节点进行恢复,将所减小节点的备份数据重分配到第二备份关系的节点中,从而减小重分配的计算量。若同时增加新节点和减少节点,执行步骤408:删除所减少节点的备份关系,获得第二备份关系,按第二备份关系将待恢复的备份数据发送到相应节点进行恢复。步骤409:在第二备份关系中增加新节点,获得第三备份关系;将所减少节点的备份数据重分配到新节点或第三备份关系的节点中。但不限于此,也可以在备份关系中删除所减少节点、增加新节点,获得第三备份关系,再将待恢复的备份数据重分配到第三备份关系中。在分布式数据库集群弹性伸缩时,根据相应的备份关系进行数据恢复,防止恢复过程中数据丢失,避免了人工介入,提高了数据恢复的效率。本发明的恢复方法还可以包括逐级恢复的方法:根据恢复请求,获取请求时间点和请求时间点之前的备份;按备份时间的顺序,依次恢复所述备份。该逐级恢复的方法与所述节点生成备份数据的方法相对应,即每个备份包含备份时间和上一次备份时间的备份数据。本发明还提供一种用于实现上述备份方法的系统,如图3所示,包括获取模块1、备份解析模块2、备份关系模块3和备份模块4;获取模块1用于获取分布式数据库集群31的节点信息;备份解析模块2根据所述节点信息,分析节点32变化的情况;若增加新节点,通过备份关系模块3在备份关系中增加所述新节点;若减少节点,通过备份关系模块3在备份关系中删除所减少节点;备份模块4用于根据所述备份关系向节点发送备份请求,并接收所述节点返回的备份数据。本发明的备份系统还包括恢复解析模块11、第一恢复模块12、第二恢复模块13和重分配模块14,获取模块1在接收到备份恢复请求时,获取分布式数据库集群31的节点信息;恢复解析模块11用于根据所述节点信息,分析节点32变化的情况;在增加新节点时,第一恢复模块12按待恢复备份数据相应的备份关系,将待恢复的备份数据发送到相应的节点进行恢复;在减少节点时,第二恢复模块13删除备份关系中所减少节点,获得第二备份关系;重分配模块14用于将待恢复的备份数据重分配到所述第二备份关系的节点中。在同时增加新节点和减少节点时,通过第三恢复模块15在备份关系中删除所减少节点,获得第二备份关系,按第二备份关系将待恢复的备份数据发送到相应节点进行恢复;在第二备份关系中增加新节点,获得第三备份关系;通过重分配模块14将所减少节点的备份数据重分配到新节点或第三备份关系的节点中。本发明的系统还可以包括逐级恢复模块21,逐级恢复模块21用于获取请恢复求时间和请求时间之前的备份,并按备份时间的顺序,依次将备份、恢复请求时间和节点信息发送给恢复解析模块11。所述备份包括备份关系和备份数据,备份时间的顺序是指按时间的先后顺序,即先产生的备份,先恢复,后产生的备份,后恢复。实施例一、分布式数据库发生节点变更后的数据备份以一个三主机三节点(每个主机一个节点)的分布式内存数据库集群a为例。1.备份系统b启动并指向集群a,备份系统b从分布式数据库客户端获取集群a的服务地址(192.168.1.100)和端口(10000),与集群a建立连接。2.备份系统b向集群a的服务端口发送请求,集群a返回当前的节点信息如下表所示:序号主机名称主机地址节点名称备份端口1h01192.168.1.101db01100012h02192.168.1.102db02100023h03192.168.1.103db03100033.备份系统b分别建立与每个数据节点备份端口的连接,备份系统b并行向每个节点发送请求备份请求,节点接收到备份请求后,将本地没有备份的归档日志和重做日志实时发送给备份系统b,备份系统b成功接收到文件后备份在本地备份文件中。其中,备份文件按数据节点分开并加以标识。4.集群a需要提升处理性能,将主机扩展到5台,节点扩展到5个,仍是每台主机一个数据节点。集群a同步记录数据节点扩展时间和扩展后的数据节点信息。序号主机名称主机地址节点名称备份端口1h01192.168.1.101db01100012h02192.168.1.102db02100023h03192.168.1.103db03100034h04192.168.1.104db04100045h05192.168.1.105db05100055.备份系统b请求备份数据前先从分布式内存数据库的服务端口获取当前的主机和节点信息,发现新增2个节点。备份系统b继续向原来的3个数据节点请求备份数据,同时与新增节点的备份端口建立连接,发送请求备份数据请求获取备份数据,对备份数据和备份关系进行保存。6.集群a需要释放一台主机,将主机缩减到4台,删除第5个节点,数据节点变更为4个。集群a同步记录数据节点扩展时间和扩展后的数据节点信息。序号主机名称主机地址节点名称备份端口1h01192.168.1.101db01100012h02192.168.1.102db02100023h03192.168.1.103db03100034h04192.168.1.104db04100047.备份系统b再次请求备份时,发现少了一个节点。备份系统b继续向仍保留的4个节点发送备份请求,同时向已删除的数据节点发送请求备份数据(但没有数据返回),备份系统b在备份关系中,删除与第5个节点的备份连接,不再发送备份请求。第5个节点的备份仍保存在备份系统b中。二、恢复分布式内存数据库数据恢复目的:将分布式数据库的数据恢复至时间点t1的状态。1.当前分布式内存数据库经过缩减,删除节点db03,保留2个节点:db01、db02。2.启动备份系统的数据恢复功能,指定需要恢复的集群和恢复时间点t1。备份系统根据时间点t1,发现t1时有3个数据节点:db01、db02和db03。3.备份系统获取3个数据节点在t1前的最晚归档日志,其备份生成时间为t2。恢复t2备份的归档日志和重做日志重分配至2个节点上,利用归档日志和重做日志恢复到t2时间。4.备份系统获取3个数据节点在t2和t1时间内生成的所有重做日志重分配至2个节点上,根据重做日志将t2将2个数据节点恢复到t1时间。以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1