一种数据恢复演练方法、装置、服务器及存储介质与流程

文档序号:29215491发布日期:2022-03-12 11:08阅读:149来源:国知局
一种数据恢复演练方法、装置、服务器及存储介质与流程

1.本发明实施例涉及数据处理技术,尤其涉及一种数据恢复演练方法、装置、服务器及存储介质。


背景技术:

2.目前,越来越多的企业开始重视信息数据安全。数据备份作为信息数据安全的最后一道防线,其重要性不言而喻。
3.现在各种监管机构对数据备份管理有着严格的要求。例如,要求按照规定的频率对备份数据进行恢复演练。目前,为了满足监管要求,企业需要定期投入大量的人力和资源进行数据恢复演练工作。面对目前数据恢复演练操作复杂且效率低下的现状,如何提高恢复演练效率成为亟待解决的问题。


技术实现要素:

4.本发明实施例提供一种数据恢复演练方法,可以自动进行数据恢复演练,提高了演练效率。
5.第一方面,本发明实施例提供了一种数据恢复演练方法,包括:
6.获取备份域内的可用恢复演练策略,生成各个所述可用恢复演练策略对应的恢复调度任务;
7.对于每个新生成的恢复调度任务,预估恢复出的资源实例的存储资源占用量,根据所述存储资源占用量建立对应恢复调度任务与恢复主机的关联关系;
8.对于每台所述恢复主机,根据所述关联关系确定待发起恢复调度任务,以及确定剩余可发起恢复调度任务的数量,调用对应恢复主机根据对应数量的所述待发起恢复调度任务进行恢复演练。
9.第二方面,本发明实施例还提供了一种数据恢复演练装置,该装置包括:
10.调度任务生成模块,用于获取备份域内的可用恢复演练策略,生成各个所述可用恢复演练策略对应的恢复调度任务;
11.恢复主机确定模块,用于对于每个新生成的恢复调度任务,预估恢复出的资源实例的存储资源占用量,根据所述存储资源占用量建立对应恢复调度任务与恢复主机的关联关系;
12.恢复演练发起模块,用于对于每台所述恢复主机,根据所述关联关系确定待发起恢复调度任务,以及确定剩余可发起恢复调度任务的数量,调用对应恢复主机根据对应数量的所述待发起恢复调度任务进行恢复演练。
13.第三方面,本发明实施例还提供了一种服务器,所述服务器包括:
14.一个或多个处理器;
15.存储器,用于存储一个或多个程序,
16.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理
器实现如本发明任意实施例所述的数据恢复演练方法。
17.第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例所述的数据恢复演练方法。
18.本发明实施例提供了一种数据恢复演练方法、装置、服务器及存储介质,通过获取备份内的可用恢复演练策略,并为各个可用恢复演练策略添加恢复调度任务,为每个恢复调度任务分配恢复主机,确定每个恢复主机的待发起恢复调度任务以及剩余可发起的恢复调度任务的数量,调用对应恢复主机根据对应数量的待发起恢复调度任务进行恢复演练。通过本发明实施例的技术方案实现了数据恢复自动演练,减少恢复演练的人力占用,提高了恢复演练效率。
附图说明
19.图1为本发明实施例提供的一种数据恢复演练方法的流程;
20.图2为本发明实施例提供的另一种数据恢复演练方法的流程图;
21.图3为本发明实施例提供的又一种数据恢复演练方法的流程图;
22.图4a为本发明实施例提供的又一种数据恢复演练方法的流程图;
23.图4b为本发明实施例提供的一种扫描恢复演练策略添加恢复调度任务方法的流程图;
24.图4c为本发明实施例提供的一种为恢复调度任务添加恢复主机方法的流程图;
25.图4d为本发明实施例提供的一种发起恢复调度任务并回收方法的流程图;
26.图4e为本发明实施例提供的一种释放恢复演练占用的恢复主机空间方法的流程图;
27.图5为本发明实施例提供的一种数据恢复演练装置的结构框图;
28.图6为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
29.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
30.图1为本发明实施例提供的一种数据恢复演练方法的流程图,本实施例可适用于对已备份的数据进行恢复演练的情况,该方法可以由数据恢复演练装置来执行,该装置通常配置于服务器中。如图1所示,该方法包括:
31.步骤110、获取备份域内的可用恢复演练策略,生成各个所述可用恢复演练策略对应的恢复调度任务。
32.需要说明的是,恢复演练是定期对已备份的资源对象进行自动恢复和回收的操作。其中,资源对象包括oracle实例、sql server实例和文件等的资源。在本发明实施例中,用户通过前端页面配置满足监管要求的恢复演练策略,并上传到服务端,以保证自动恢复演练操作满足监管要求。
33.其中,备份域是按区域和类型两个维度分组的数据域。例如,对已备份的资源对象
按照区域和类型两个维度进行划分,得到多个aa地域bb类型的子数据域。将每个子数据域作为一个备份域,例如,北京的oracle域是一个备份域,深圳的sql server域也是一个备份域。需要说明的是,不同备份域中的演练策略可以具有不同的演练频率,实现分批次发起恢复演练。例如,对北京的oracle域和深圳的sql server域对应的已备份资源对象分批次发起恢复演练。
34.其中,恢复演练策略是用户配置的对已备份的资源对象进行恢复演练的方案。具体地,用户通过前端页面配置恢复演练策略,并通过web接口提交给服务器上的统一备份恢复系统ubrs。ubrs将收到的恢复演练策略插入到预设恢复策略表。可以理解的是,恢复演练涉及的web接口的定义可以有多种形式,本发明实施例并不作具体限定。例如,web接口的定义包括请求方法、请求路由和请求体。其中,请求方法可以是提交post方法。post表示向服务器提交要被处理的数据。请求路由可以包括资源类型、恢复、演练和策略等内容。其中,资源类型包括oracle、sql server、file和ndmp等。请求体可以包括资源实例标识和执行演练的演练频率,以及资源实例标识和演练频率的数据格式。为了满足监管要求,演练频率根据监管要求配置,例如,可以以天数为单位。
35.需要说明的是,ubrs是配置于服务器的应用程序,用于管理、调度和控制服务器集群中的计算资源。本发明实施例中,计算资源可以是恢复主机。恢复主机是云计算平台中部署有恢复软件的主机。具体地,恢复主机上安装有客户端,该客户端主键与ubrs的应用主键通过rpc(remote procedure call protocol,远程过程调用协议)协议实现信息交互。ubrs通过rpc协议调用恢复主机进行恢复演练。
36.可用恢复演练策略是备份域内满足执行条件的恢复演练策略。例如,可用恢复演练策略是当前备份域内所有启用的恢复演练策略中,与上一次恢复时间的时间间隔大于或等于演练频率的恢复演练策略。具体地,加载备份域内的所有恢复演练策略,根据策略状态标识判断对应恢复演练策略是否被启用。用户可以在前端页面配置需要启用的恢复演练策略,在用户配置后,服务端更新对应恢复演练策略的策略状态标识。根据已启用的恢复演练策略的上一次恢复时间和演练频率预测本次恢复时间。若当前时间不小于本次恢复时间,则确定对应恢复演练策略为可用恢复演练策略。
37.其中,恢复调度任务基于恢复演练策略生成,且用于调用恢复主机执行恢复演练操作的任务。可以通过恢复调度任务表存储恢复调度任务。
38.示例性地,ubrs定时扫描恢复演练策略,确定已启用,且当前时间满足演练频率的可用恢复演练策略。对于每个可用恢复演练策略,判断是否对应有运行或排队状态的恢复调度任务。若没有,则在恢复调度任务表中为对应可用恢复演练策略新增一个恢复调度任务。将恢复调度任务表中该新增的恢复调度任务的开始(is_started)字段值更新为false,并将恢复任务状态(restore_job_status)字段值更新为“排队中”。此外,将对应可用恢复演练策略的最近一次恢复时间(last_restore_time)更新为当前时间点。
39.步骤120、对于每个新生成的恢复调度任务,预估恢复出的资源实例的存储资源占用量,根据所述存储资源占用量建立对应恢复调度任务与恢复主机的关联关系。
40.其中,资源实例,即资源对象,可以包括数据库文件以及由一系列的后台进程和内存结构组成的数据库实例。例如,资源实例包括oracle实例、sql server实例和nas卷等。
41.存储资源占用量表示恢复出来的资源实例占恢复主机的存储空间的大小。由于恢
复主机对已备份资源实例进行恢复后,需要存储恢复出来的资源实例。为了保证恢复出的资源实例具有足够的存储空间进行存储,需要在恢复前预估该资源实例占用恢复主机的存储空间的大小,进而,预先占用该恢复主机上对应大小的存储空间。
42.示例性地,预估存储资源占用量的方式可以是基于同一资源实例下的历史恢复量预估,还可以是基于同一资源实例的最近一次全备份的历史恢复量预估。
43.例如,选择恢复调度任务表中没有关联恢复主机的目标恢复调度任务。具体地,查询恢复调度任务表,确定恢复主机字段值为空的所有恢复调度任务,作为没有分配恢复主机的目标恢复调度任务。
44.对于每个目标恢复调度任务,若存在同一资源实例下的历史恢复调度任务,则查询历史恢复调度任务恢复出的资源实例的第一历史存储资源占用量,根据第一历史存储资源占用量预估对应目标恢复调度任务恢复出的资源实例的存储资源占用量。具体地,对于存在同一资源实例下的历史恢复调度任务的情况,根据资源实例标识查询恢复演练日志,得到对应历史恢复调度任务恢复出的资源实例的第一历史存储资源占用量。将第一历史存储资源占用量确定为同一资源实例下的目标恢复调度任务恢复出的资源实例的存储资源占用量。
45.对于每个目标恢复调度任务,若不存在同一资源实例下的历史恢复调度任务,则查询对应资源实例的最近一次全备份恢复出的资源实例的第二历史存储资源占用量,根据第二历史存储资源占用量预估存储资源占用量。具体地,对于不存在同一资源实例下的历史恢复调度任务的情况,根据资源实例标识查询恢复演练日志,得到对应资源实例的最近一次全备份恢复出的资源实例的第二历史存储资源占用量。计算第二历史存储资源占用量与预设系数的乘法运算结果,将该乘法运算结果作为同一资源实例下的目标恢复调度任务恢复出的资源实例的存储资源占用量。
46.对于每个恢复调度任务,根据资源实例标识和存储资源占用量从恢复主机表中选择对应的恢复主机。具体地,查询恢复主机表得到各个恢复主机的剩余可用存储空间和额定任务数。其中,额定任务数表示恢复主机支持的恢复调度任务总数。查询恢复任务调度表确定与各个恢复主机关联的恢复调度任务的恢复调度任务状态。其中,恢复调度任务状态包括未开始、运行、排队和已完成等。
47.对于每个恢复调度任务,从恢复主机表中选择剩余可用存储空间大于当前恢复调度任务的存储资源占用量,且处于运行或排队状态的恢复调度任务数小于额定任务数的目标恢复主机,将目标恢复主机作为与当前恢复调度任务关联的恢复主机。
48.可选地,可以基于负载均衡和/或网络传输等因素,从剩余可用存储空间大于当前恢复调度任务的存储资源占用量,且处于运行或排队状态的恢复调度任务数小于额定任务数的目标恢复主机中,选择至少一台目标恢复主机作为与前恢复调度任务关联的恢复主机。
49.可选地,对于某些类型的资源实例,需要判断目标恢复主机是否支持对应资源实例的数据库版本。具体地,获取资源实例标识对应的资源实例的数据库版本,判断当前目标恢复主机是否支持对应版本的数据库,若是,则将当前目标恢复主机作为与当前恢复调度任务关联的恢复主机,否则,重新选择目标恢复主机执行数据库版本判断。
50.对于每个新生成的恢复调度任务,建立与目标恢复主机的关联关系是在确定对应
的恢复主机之后,根据已确定的恢复主机名更新对应恢复调度任务的恢复主机(restore_host)字段。此外,还根据预估的存储资源占用量空间占用量更新(used_space)字段。
51.步骤130、对于每台所述恢复主机,根据所述关联关系确定待发起恢复调度任务,以及确定剩余可发起恢复调度任务的数量,调用对应恢复主机根据对应数量的所述待发起恢复调度任务进行恢复演练。
52.示例性地,对于每台恢复主机,根据关联关系查询恢复调度任务表确定对应恢复主机的待发起恢复调度任务。根据对应恢复主机的额定任务数和运行或排队状态的恢复调度任务数,确定对应恢复主机的剩余可发起恢复调度任务的数量。从对应恢复主机的待发起恢复调度任务中选择对应数量的目标待发起恢复调度任务,调用对应恢复主机根据目标待发起恢复调度任务异步进行恢复演练。
53.其中,异步进行恢复演练是指一台恢复主机可以根据多个恢复调度任务,异步执行恢复演练操作。即一台恢复主机可以异步执行多个资源实例的恢复演练操作。
54.具体地,遍历恢复主机表得到恢复主机列表。对于恢复主机列表中的每个恢复主机,查询恢复调度任务表中各个恢复调度任务的恢复主机字段和is_started字段,得到对应恢复主机的is_started字段值为false的所有恢复调度任务,作为对应恢复主机的待发起恢复调度任务。计算对应恢复主机的额定任务数与运行或排队状态的恢复调度任务数的差值,将该差值作为对应恢复主机的剩余可发起恢复调度任务的数量。
55.从对应恢复主机的全部待发起恢复调度任务中选择对应数量的目标待发起恢复调度任务。通过rpc协议调用对应恢复主机,根据目标待发起恢复调度任务的相关信息初始化恢复任务。即在恢复任务表中创建一个恢复任务,恢复任务的恢复主机字段值为目标待发起恢复调度任务对应的恢复主机,恢复任务的恢复发起人字段值为调度,恢复任务的任务状态字段的字段值为排队中。在恢复主机存储空闲资源时,从排队中的恢复任务中选择符合当前恢复主机的处理能力的恢复任务。其中,满足恢复主机的处理能力可以是当前恢复主机的计算资源足以处理恢复任务,或者当前恢复主机的空闲资源足以存储恢复出的资源实例等。
56.将恢复调度任务的is_started字段值更新为ture,恢复调度任务id更新为对应的恢复任务id,恢复调度任务状态更新为已发起,发起对应的恢复主机通过恢复软件进行数据恢复。恢复主机在恢复结束后,发送恢复结束通知给ubrs。ubrs确定恢复结束后,更新该恢复任务的任务状态字段为已完成,存储资源占用量为恢复出的资源大小。同时,更新恢复主机表中对应恢复主机的剩余可用空间。
57.清理回收恢复资源时,对于任务状态是已完成的恢复任务,调用对应恢复主机删除当前恢复任务恢复出的资源实例。
58.具体地,对于任务状态是已完成的恢复任务,标记恢复任务表中当前恢复任务的任务状态字段值为删除中,删除发起人字段更新为调度,调用对应恢复主机对恢复出的资源实例占用的存储空间进行回收。恢复主机在回收成功后,将恢复任务表中当前恢复任务的任务状态字段值更新为已删除,且状态码更新为0。恢复主机将恢复任务的任务状态和状态码发送给ubrs。
59.ubrs遍历恢复调度任务表,得到is_started字段值为ture、恢复主机字段值不为空且恢复调度任务状态字段值为已发起的恢复调度任务列表。对于恢复调度任务列表中的
每个恢复调度任务,若对应的恢复任务的任务状态是已完成且调度恢复任务类型为恢复演练,则更新恢复主机表中对应恢复主机的可用空间总量为剩余可用空间与对应恢复调度任务的存储资源占用量的和。此外,还更新恢复调度任务的恢复调度任务状态为成功或失败,采用恢复调度任务状态表示自动恢复演练的执行结果。需要说明的是,当恢复调度任务对应的恢复任务的任务状态字段值为已删除,且状态码为0时,确定恢复演练成功执行。
60.本实施例的技术方案,通过获取备份内的可用恢复演练策略,并为各个可用恢复演练策略添加恢复调度任务,为每个恢复调度任务分配恢复主机,确定每个恢复主机的待发起恢复调度任务以及剩余可发起的恢复调度任务的数量,调用对应恢复主机根据对应数量的待发起恢复调度任务进行恢复演练。通过本发明实施例的技术方案实现了数据恢复自动演练,减少恢复演练的人力占用,提高了恢复演练效率。
61.在上述技术方案的基础上,在调用对应恢复主机根据对应数量的所述待发起恢复调度任务进行恢复演练之后,还包括遍历恢复调度任务表,查询任务状态是失败的恢复调度任务;若存在任务状态是失败的恢复调度任务,则按照设定周期重新调用恢复主机根据失败的恢复调度任务进行恢复演练。这样设计的好处在于在恢复演练流程中加入重试机制,降低任务发起后失败的概率。
62.在上述技术方案的基础上,对获取备份域内的可用恢复演练策略,生成各个所述可用恢复演练策略对应的恢复调度任务作进一步限定。图2为本发明实施例提供的另一种数据恢复演练方法的流程图。如图2所示,该方法包括:
63.步骤210、获取备份域内的可用恢复演练策略,生成各个所述可用恢复演练策略对应的恢复调度任务。
64.具体地,步骤210包括如下子步骤:
65.步骤211、加载各个备份域内的所有恢复演练策略。
66.需要说明的是,恢复演练策略是用户根据监管部门要求的频率对需要演练的资源对象设置的演练策略,并以恢复策略表的形式配置到服务器。ubrs定期扫描恢复策略表中的恢复演练策略。具体地,ubrs加载各个备份域内的所有恢复演练策略,以便进行后续的可用恢复演练策略判断操作。
67.步骤212、对于每个所述备份域,选择策略状态是启用,且当前时间满足已启用恢复演练策略的演练频率要求的所述恢复演练策略,作为对应备份域内的可用恢复演练策略。
68.示例性地,对于每个备份域,查询对应备份域的恢复策略表,得到各个恢复演练策略的策略状态和上一次恢复时间。根据备份域内的恢复演练策略的策略状态判断对应恢复演练策略是否启用。若启用,则判断是否存在上一次恢复时间。若存在,则计算上一次恢复时间与对应恢复演练策略的演练频率之和。在当前时间不小于上一次恢复时间与对应恢复演练策略的演练频率之和时,将对应恢复演练策略作为当前备份域内的可用恢复演练策略。
69.步骤213、对于每个可用恢复演练策略,在恢复调度任务表中创建恢复调度任务,根据对应的可用恢复演练策略内容更新所述恢复调度任务的相应字段。
70.示例性地,对于每个可用恢复演练策略,在恢复调度任务表中为对应可用恢复演练策略新增一个恢复调度任务。将恢复调度任务表中该新增的恢复调度任务的资源实例id
更新为恢复演练策略中的资源实例id,将该新增的恢复调度任务的开始(is_started)字段值更新为false,并将恢复任务状态(restore_job_status)字段值更新为“排队中”。
71.可以理解的是,根据恢复演练策略内容更新的恢复调度任务的字段并不限于上述示例列举的字段,可以根据应用场景调整被更新的字段,本发明实施例不不作具体限定。
72.步骤220、对于每个新生成的恢复调度任务,预估恢复出的资源实例的存储资源占用量,根据所述存储资源占用量建立对应恢复调度任务与恢复主机的关联关系。
73.步骤230、对于每台所述恢复主机,根据所述关联关系查询恢复调度任务表确定对应恢复主机的待发起恢复调度任务。
74.步骤240、根据对应恢复主机的所述额定任务数和所述运行或排队状态的恢复调度任务数,确定对应恢复主机的剩余可发起恢复调度任务的数量。
75.步骤250、从对应恢复主机的所述待发起恢复调度任务中选择对应数量的目标待发起恢复调度任务,调用对应恢复主机根据各个所述目标待发起恢复调度任务生成恢复任务。
76.步骤260、根据对应目标待发起恢复调度任务内容更新所述恢复任务的对应字段,根据所述恢复任务对待进行恢复演练的资源实例进行恢复。
77.步骤270、获取所述恢复任务的任务标识和任务状态,根据所述任务标识和任务状态更新恢复调度任务表中对应目标待发起恢复调度任务的对应字段。
78.步骤280、在所述任务状态是已完成时,调用对应恢复主机删除对应恢复任务恢复出的资源实例。
79.本实施例的技术方案,通过判断恢复演练策略是否启用,以及当前时间是否满足演练频率要求,实现筛选出备份域内的可用恢复演练策略,仅为可用恢复演练策略创建恢复调度任务以及分配恢复主机,以调用恢复主机根据恢复调度任务进行恢复演练,并在完成后调用对应恢复主机删除对应恢复任务恢复出的资源实例,以释放恢复主机的处理资源,提高了恢复主机资源利用率。
80.在上述技术方案的基础上,在调用对应恢复主机根据对应数量的待发起恢复调度任务进行恢复演练之后,附加生成恢复演练报告的步骤。图3为本发明实施例提供的又一种数据恢复演练方法的流程图。如图3所示,该方法包括:
81.步骤301、加载各个备份域内的所有恢复演练策略。
82.步骤302、对于每个所述备份域,选择策略状态是启用,且当前时间满足已启用恢复演练策略的演练频率要求的所述恢复演练策略,作为对应备份域内的可用恢复演练策略。
83.步骤303、对于每个可用恢复演练策略,在恢复调度任务表中创建恢复调度任务,根据对应的可用恢复演练策略内容更新所述恢复调度任务的相应字段。
84.步骤304、选择所述恢复调度任务表中没有关联恢复主机的目标恢复调度任务。
85.步骤305、对于每个所述目标恢复调度任务,判断是否存在同一资源实例下的历史恢复调度任务,若是,则执行步骤306,否则执行步骤307。
86.步骤306、查询所述历史恢复调度任务恢复出的资源实例的第一历史存储资源占用量,根据所述第一历史存储资源占用量预估对应目标恢复调度任务恢复出的所述资源实例的存储资源占用量,然后,执行步骤308。
87.步骤307、查询对应资源实例的最近一次全备份恢复出的资源实例的第二历史存储资源占用量,根据所述第二历史存储资源占用量预估所述存储资源占用量。
88.步骤308、确定所述备份域内各个恢复主机的剩余可用存储空间以及恢复调度任务状态。
89.步骤309、从所述备份域内的所述恢复主机中,选择所述剩余可用存储空间大于所述存储资源占用量,且处于运行或排队状态的恢复调度任务数小于额定任务数的目标恢复主机,作为与所述对应恢复调度任务关联的恢复主机。
90.步骤310、对于每台所述恢复主机,根据所述关联关系查询恢复调度任务表确定对应恢复主机的待发起恢复调度任务。
91.步骤311、根据对应恢复主机的所述额定任务数和所述运行或排队状态的恢复调度任务数,确定对应恢复主机的剩余可发起恢复调度任务的数量。
92.步骤312、从对应恢复主机的所述待发起恢复调度任务中选择对应数量的目标待发起恢复调度任务,调用对应恢复主机根据所述目标待发起恢复调度任务异步进行恢复演练。
93.需要说明的是,ubrs根据恢复演练策略包括的演练频率发起恢复演练计划,并根据恢复主机资源的占用情况(如实例版本、存储空间、任务队列等)自动发起恢复任务。
94.示例性地,调用对应恢复主机根据所述目标待发起恢复调度任务异步进行恢复演练具体是:调用对应恢复主机根据各个所述目标待发起恢复调度任务生成恢复任务,并根据对应目标待发起恢复调度任务内容更新所述恢复任务的对应字段,根据所述恢复任务对待进行恢复演练的资源实例进行恢复。获取所述恢复任务的任务标识和任务状态,根据所述任务标识和任务状态更新恢复调度任务表中对应目标待发起恢复调度任务的对应字段。在所述任务状态是已完成时,调用对应恢复主机删除对应恢复任务恢复出的资源实例。
95.步骤313、若检测到完成所述备份域内所有可用恢复演练策略对应的恢复调度任务,则根据恢复演练日志生成对应备份域的恢复演练报告。
96.其中,恢复演练日志是记录恢复演练流程的日志文件。
97.示例性地,查询备份域内所有恢复调度任务发起的恢复任务的任务状态。若任务状态均为已完成,则根据恢复演练日志生成对应备份域的恢复演练报告。具体地,根据恢复的资源实例名和恢复时间对恢复演练日志进行分类,基于分类结果生成包括同一资源实例下不同恢复时间的恢复演练流程信息的恢复演练报告。
98.本实施例的技术方案,基于恢复演练过程中产生的恢复演练日志生成恢复演练报告,以便提供给监管部门核查,此外,在恢复演练出现问题时,方便基于恢复演练报告进行问题排查。
99.图4a为本发明实施例提供的又一种数据恢复演练方法的流程图。恢复演练主要包括:扫描恢复演练策略添加恢复调度任务、为恢复调度任务添加恢复主机、发起恢复调度任务并回收和释放恢复演练占用的恢复主机空间等调度步骤,其中,每个调度步骤每15分钟调用一次。
100.如图4a所示,该方法包括:
101.步骤41、扫描恢复演练策略,为恢复演练策略添加恢复调度任务。
102.示例性地,ubrs定时扫描用户创建的恢复演练策略表(restore_policy),找出其
中状态为启用且当前时间不小于策略的上次恢复时间(last_restore_time)与演练频率(frequecy)之和的可用恢复演练策略。
103.如果该可用恢复演练策略没有正在恢复或者排队等待恢复的恢复调度任务,则在恢复调度任务表(scheduled_restore_task)中为该可用恢复演练策略新增一个恢复调度任务,更新该新增恢复调度任务的开始(is_started)字段值为false,恢复任务状态(restore_job_status)字段值为“排队中”,并更新该可用恢复演练策略的last_restore_time为当前时间。
104.图4b为本发明实施例提供的一种扫描恢复演练策略添加恢复调度任务方法的流程图。如图4b所示,该方法包括:
105.步骤411、加载备份域中的所有恢复演练策略。
106.步骤412、判断当前恢复演练策略是否启用,若是,则执行步骤413,否则,执行步骤419。
107.步骤413、判断是否存在上一次恢复时间,若是,则执行步骤414,否则执行步骤419。
108.步骤414、根据上一次恢复时间计算本次恢复演练的恢复时间。
109.步骤415、判断当前时间是否小于本次恢复演练的恢复时间,若是,则执行步骤419,否则,执行步骤416。
110.步骤416、判断当前恢复演练策略对应的恢复调度任务是否已经结束,若是,则执行步骤417,否则,执行步骤419。
111.需要说明的是,判断当前恢复演练策略对应的恢复调度任务是否已经结束,就是判断当前恢复策略是否有处于运行或排队状态的恢复调度任务,若存在,则确定恢复调度任务未结束,否则,确定恢复调度任务已经结束。
112.步骤417、为恢复演练策略添加恢复调度任务。
113.步骤418、更新恢复演练策略的上一次恢复时间为当前时间。
114.步骤419、结束。
115.步骤42、为恢复调度任务添加恢复主机。
116.示例性地,从恢复调度任务表中,取出restore_host字段值为空的所有恢复调度任务。对于每个恢复调度任务,预估恢复占用空间大小size。然后根据恢复调度任务的resource_id以及预估的size,从恢复主机表中选取出剩余空间尽可能大、且满足恢复主机所关联的恢复任务处于运行或排队状态的任务总数小于恢复主机的额定任务数(number_total_task)、支持资源实例的数据库版本(仅oracel实例需要判断)的目标恢复主机,作为当前恢复调度任务的恢复主机,更新恢复调度任务表中的恢复主机及占用空间字段值。
117.图4c为本发明实施例提供的一种为恢复调度任务添加恢复主机方法的流程图。如图4c所示,该方法包括:
118.步骤421、从恢复调度任务表中,获取恢复主机字段值为空的恢复调度任务。
119.步骤422、获取最近备份的全备大小。
120.步骤423、根据全备大小预估恢复占用空间。
121.步骤424、获取可用的恢复主机。
122.步骤425、判断是否有可用恢复主机,若是,则执行步骤426,否则执行步骤427。
123.步骤426、更新恢复调度任务的恢复主机标识为对应可用恢复主机的主机标识,根据恢复占用空间更新恢复调度任务的占用空间字段。
124.步骤427、结束。
125.步骤43、发起恢复调度任务并回收。
126.示例性地,从恢复主机表中获取恢复主机列表。对每一台恢复主机,找出其关联的is_started字段值为false的所有恢复调度任务,形成恢复调度任务列表。获取该恢复主机关联的任务状态为运行中或排队状态的恢复调度任务的任务总数,恢复主机的额定任务数减去该任务总数,即为该恢复主机剩余的可发起恢复调度任务的数量。从前述恢复调度任务列表中取出可发起数量的恢复调度任务,依次发起异步恢复演练。
127.需要说明的是,异步恢复演练包括发起恢复,以及恢复完成后及时清理回收两个步骤。
128.发起恢复时,首先会根据恢复调度任务相关信息初始化恢复任务,即在恢复任务表中新增一个恢复任务,恢复任务的恢复主机字段值为恢复调度任务关联的恢复主机,恢复发起人为调度,任务状态为“排队中”。然后将恢复调度任务的is_started字段值更新为true,恢复任务标识(restore_job_id)字段值更新为对应的恢复任务的id,恢复任务状态(restore_job_status)字段更新为“已发起”,直接发起恢复。恢复结束后,更新恢复任务状态为“已完成”,占用空间字段值更新为恢复出的资源大小,同时更新恢复主机表中对应的恢复主机的剩余可用空间。
129.清理回收恢复资源时,首先标记恢复任务状态为“删除中”,删除发起人为调度,然后发起恢复任务的回收。回收成功后,更新恢复任务状态为“已删除”状态,以及更新status_code为0。
130.图4d为本发明实施例提供的一种发起恢复调度任务并回收方法的流程图。如图4d所示,该方法包括:
131.步骤431、获取所有未发起且有恢复主机的恢复调度任务。
132.步骤432、获取恢复时间点。
133.步骤433、获取客户端。
134.步骤434、添加恢复任务。
135.步骤435、异步发起恢复任务。
136.步骤436、更新恢复调度任务为已发起。
137.步骤437、判断恢复任务是否完成,若是,则执行步骤438,否则间隔预设时间后执行步骤437。
138.步骤438、回收恢复资源。
139.步骤439、结束。
140.步骤44、释放恢复演练占用的恢复主机空间。
141.示例性地,查询恢复调度任务表,获取is_started为true、restore_host不为空且恢复调度任务状态为“已发起”的所有恢复调度任务。对每一个恢复调度任务,若其对应的恢复任务已经结束,且调度任务类型为恢复演练,则计算恢复主机表中对应的恢复主机的剩余可用空间与恢复调度任务的占用空间之和,根据两者之后更新恢复主机表中对应的恢复主机的剩余可用空间,同时更新恢复调度任务的restore_job_status为“成功”或者“失
败”,标志自动恢复演练执行的结果。仅当对应的恢复任务状态为“已删除”,且其状态码status_code为0时,恢复演练是成功执行的。
142.图4e为本发明实施例提供的一种释放恢复演练占用的恢复主机空间方法的流程图。如图4e所示,该方法包括:
143.步骤441、获取未完成的恢复调度任务。
144.步骤442、获取对应的恢复任务状态及状态码。
145.步骤443、判断恢复任务是否结束,若是,则执行步骤444,否则执行步骤447。
146.步骤444、更新恢复调度任务状态。
147.步骤445、计算待释放的恢复主机空间。
148.步骤446、释放恢复主机空间。
149.步骤447、结束。
150.图5为本发明实施例提供的一种数据恢复演练装置的结构框图。该装置可以由软件和/或硬件实现,并通常配置于服务器中。该装置通过执行本发明任意实施例提供的数据恢复演练方法,实现自动进行恢复演练,减少人力占用,提高演练效率。如图5所示,该装置包括:调度任务生成模块510、恢复主机确定模块520和恢复演练发起模块530。
151.调度任务生成模块510,用于获取备份域内的可用恢复演练策略,生成各个所述可用恢复演练策略对应的恢复调度任务;
152.恢复主机确定模块520,用于对于每个新生成的恢复调度任务,预估恢复出的资源实例的存储资源占用量,根据所述存储资源占用量建立对应恢复调度任务与恢复主机的关联关系;
153.恢复演练发起模块530,用于对于每台所述恢复主机,根据所述关联关系确定待发起恢复调度任务,以及确定剩余可发起恢复调度任务的数量,调用对应恢复主机根据对应数量的所述待发起恢复调度任务进行恢复演练。
154.本发明实施例提供一种数据恢复演练装置,通过获取备份内的可用恢复演练策略,并为各个可用恢复演练策略添加恢复调度任务,为每个恢复调度任务分配恢复主机,确定每个恢复主机的待发起恢复调度任务以及剩余可发起的恢复调度任务的数量,调用对应恢复主机根据对应数量的待发起恢复调度任务进行恢复演练。通过本发明实施例的技术方案实现了数据恢复自动演练,减少恢复演练的人力占用,提高了恢复演练效率。
155.进一步地,调度任务生成模块510具体还用于:
156.对于每个可用恢复演练策略,在恢复调度任务表中创建恢复调度任务,根据对应的可用恢复演练策略内容更新所述恢复调度任务的相应字段。
157.进一步地,恢复主机确定模块520具体用于:
158.选择所述恢复调度任务表中没有关联恢复主机的目标恢复调度任务;
159.对于每个所述目标恢复调度任务,若存在同一资源实例下的历史恢复调度任务,则查询所述历史恢复调度任务恢复出的资源实例的第一历史存储资源占用量,根据所述第一历史存储资源占用量预估对应目标恢复调度任务恢复出的所述资源实例的存储资源占用量;
160.若不存在同一资源实例下的历史恢复调度任务,则查询对应资源实例的最近一次全备份恢复出的资源实例的第二历史存储资源占用量,根据所述第二历史存储资源占用量
预估所述存储资源占用量。
161.进一步地,恢复主机确定模块520具体还用于:
162.确定所述备份域内各个恢复主机的剩余可用存储空间以及恢复调度任务状态;
163.从所述备份域内的所述恢复主机中,选择所述剩余可用存储空间大于所述存储资源占用量,且处于运行或排队状态的恢复调度任务数小于额定任务数的目标恢复主机,作为与所述对应恢复调度任务关联的恢复主机。
164.进一步地,恢复演练发起模块530具体用于:
165.对于每台所述恢复主机,根据所述关联关系查询恢复调度任务表确定对应恢复主机的待发起恢复调度任务;
166.根据对应恢复主机的所述额定任务数和所述运行或排队状态的恢复调度任务数,确定对应恢复主机的剩余可发起恢复调度任务的数量;
167.从对应恢复主机的所述待发起恢复调度任务中选择对应数量的目标待发起恢复调度任务,调用对应恢复主机根据所述目标待发起恢复调度任务异步进行恢复演练。
168.进一步地,恢复演练发起模块530具体还用于:
169.调用对应恢复主机根据各个所述目标待发起恢复调度任务生成恢复任务,并根据对应目标待发起恢复调度任务内容更新所述恢复任务的对应字段,根据所述恢复任务对待进行恢复演练的资源实例进行恢复;
170.获取所述恢复任务的任务标识和任务状态,根据所述任务标识和任务状态更新恢复调度任务表中对应目标待发起恢复调度任务的对应字段;
171.在所述任务状态是已完成时,调用对应恢复主机删除对应恢复任务恢复出的资源实例。
172.进一步地,该装置还包括:
173.报告生成模块,用于在调用对应恢复主机根据对应数量的所述待发起恢复调度任务进行恢复演练之后,若检测到完成所述备份域内所有可用恢复演练策略对应的恢复调度任务,则根据恢复演练日志生成对应备份域的恢复演练报告。
174.本发明实施例所提供的数据恢复演练装置可执行本发明任意实施例所提供的数据恢复演练方法,具备执行方法相应的功能模块和有益效果。
175.图6为本发明实施例提供的一种服务器的结构示意图,如图6所示,该服务器包括处理器60和存储器61;服务器中处理器60的数量可以是一个或多个,图6中以一个处理器60为例;服务器中的处理器60和存储器61可以通过总线或其他方式连接,图6中以通过总线连接为例。
176.存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据恢复演练方法对应的程序指令/模块(例如,数据恢复演练装置中的调度任务生成模块510、恢复主机确定模块520和恢复演练发起模块530)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的数据恢复演练方法。
177.存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁
盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
178.本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据恢复演练方法,该方法包括:
179.获取备份域内的可用恢复演练策略,生成各个所述可用恢复演练策略对应的恢复调度任务;
180.对于每个新生成的恢复调度任务,预估恢复出的资源实例的存储资源占用量,根据所述存储资源占用量建立对应恢复调度任务与恢复主机的关联关系;
181.对于每台所述恢复主机,根据所述关联关系确定待发起恢复调度任务,以及确定剩余可发起恢复调度任务的数量,调用对应恢复主机根据对应数量的所述待发起恢复调度任务进行恢复演练。
182.当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据恢复演练方法中的相关操作.
183.通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
184.值得注意的是,上述数据恢复演练装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
185.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1