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.图4为本发明实施例提供的又一种数据库备份方法的流程图;
23.图5为本发明实施例提供的一种数据库备份装置的结果框图;
24.图6为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
25.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
26.图1为本发明实施例提供的一种数据库备份方法的流程图,本实施例可适用于对数据库进行脱格备份以长期保存数据库的情况。该方法可以由数据库备份装置来执行,该装置可以由软件和/或硬件实现,并通常配置于服务器中。
27.需要说明的是,脱格备份是一种逻辑备份方式,即利用数据泵(datapump)或者exp命令导出数据库中的数据到文件中,并以文件的形式备份保存。采用脱格备份的方式,数据库中的资源实例是以数据库文件的形式被备份的,与数据库版本或者操作系统版本无关,克服了热备份依赖于数据库版本或操作系统的缺陷,避免不同操作系统版本以及数据库版本对恢复结果产生影响,导致最终恢复出来的数据无法起库,或者无法兼容版本的情况发生。
28.如图1所示,该方法包括:
29.步骤110、响应于发起恢复请求生成恢复任务,根据所述恢复任务调用恢复主机对所述发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例。
30.其中,发起恢复请求是由前端服务器发送的用于发起已备份资源实例恢复操作的请求。需要说明的是,资源实例可以是数据库资源和实例,资源是数据,实例则由一系列的
后台进程和内存结构组成。具体地,用户通过前端页面配置发起恢复请求,前端服务器通过web接口提交发起恢复请求给统一备份恢复系统ubrs。例如,发起恢复请求涉及的web接口定义包括请求方法、请求路由和请求体。其中,请求方法可以是提交post方法。post表示向服务器提交要被处理的数据。请求路由可以包括资源类型、资源实例标识、恢复和作业等内容。其中,资源类型包括oracle和sql server等。请求体包括恢复数据保留期限和恢复时间点,还定义了恢复数据保留期限和恢复时间点的数据格式。例如,恢复时间点的格式可以是2021-09-01 08:00:00。
31.需要说明的是,ubrs是配置于服务器的应用程序,用于管理、调度和控制服务器集群中的计算资源。本发明实施例中,计算资源可以是恢复主机。恢复主机是云计算平台中部署有备份及恢复软件的主机。具体地,恢复主机上安装有客户端,该客户端主键与ubrs的应用主键通过rpc(remote procedure call protocol,远程过程调用协议)协议实现信息交互。ubrs执行恢复任务时,通过rpc协议调用恢复主机对已备份数据进行恢复。
32.本发明实施例中,恢复任务是发起恢复主机对其已备份的资源实例进行恢复的任务。需要说明的是,已备份资源实例可以是在数据库服务器运行过程中备份的资源实例,且已备份资源实例存在于恢复主机上。为了减少数据导出时对生产数据库主机及网络的影响,本发明实施例在恢复主机上将需要长期保存的已备份资源实例恢复到当前时间点,得到已恢复资源实例,再通过恢复主机对已恢复资源实例进行后续的备份操作。其中,生产数据库是处于用户使用环境的数据库服务器。
33.需要说明的是,在发起恢复主机上已备份的资源实例的恢复流程中,ubrs通过web接口接收发起恢复请求,根据发起恢复请求中的资源实例标识查询恢复任务表,根据查询结果检测是否存在同一资源实例下的任务冲突。
34.例如,ubrs解析发起恢复请求得到资源实例标识,根据资源实例标识查询恢复任务表,根据查询结果判断对应资源实例是否存在运行中,或者已完成的恢复任务,从而判断该资源实例是否正在进行恢复,或者已经完成恢复且未被清理。若资源实例正在进行恢复,或者已经完成恢复且未被清理,则确定存在同一资源实例下的任务冲突,放弃响应发起恢复请求。若不存在同一资源实例下的任务冲突,则通过rpc协议调用恢复主机,对已备份且与接口传入的资源实例标识对应的资源实例进行恢复。
35.步骤120、响应于发起脱格备份请求生成脱格备份任务,根据所述脱格备份任务调用所述恢复主机对所述已恢复资源实例进行脱格备份,得到资源实例文件。
36.其中,发起脱格备份请求是由前端服务器发送的用于发起已恢复资源实例导出到文件的请求。可以利用数据泵(datapump)或者exp命令实现脱格备份,从而将已恢复资源实例以文件的形式保存。
37.在本发明实施例中,发起脱格备份请求是请求对恢复主机上已恢复出的资源实例进行数据库脱格备份,以将已恢复资源实例的数据和实例等导出到文件中,以文件的形式保存已恢复资源实例。
38.具体地,用户通过前端页面配置发起脱格备份请求,前端服务器通过web接口提交发起脱格备份请求给统一备份恢复系统ubrs。例如,发起脱格备份请求涉及的web接口定义包括请求方法、请求路由和请求体。其中,请求方法可以是提交post方法。请求路由可以包括资源类型、脱格、备份和作业等内容。其中,资源类型可以包括oracle和sql server等。请
求体包括恢复任务标识、备份数据的保留期限、备份数据的存储单元名称和卷池名称,还定义了恢复任务标识、备份数据的保留期限、备份数据的存储单元名称和卷池名称的数据格式。
39.本发明实施例中,脱格备份任务是发起恢复主机将其恢复的资源实例中的资源以及实例等导出到文件的任务。需要说明的是,已恢复资源实例可以是恢复主机将需要长期保存的已备份资源实例恢复到当前时间点,得到的数据库数据。资源实例文件是保存已恢复资源实例的数据和实例的文本。
40.需要说明的是,在对已恢复资源实例的脱格备份流程中,ubrs通过web接口接收发起脱格备份请求。根据发起脱格备份请求中的恢复任务标识查询恢复任务表,得到对应恢复任务的任务状态;若任务状态不满足预设第一条件,则根据恢复任务标识查询dump备份任务表,获取该恢复任务对应的备份标识和备份状态标识;在备份标识和备份状态标识均不满足预设第二条件时,执行根据发起脱格备份请求生成脱格备份任务步骤。
41.例如,解析发起脱格备份请求得到恢复任务标识,根据恢复任务标识查询恢复任务表的任务状态字段,根据查询结果判断该恢复任务是否存在或者正在运行。若是,则抛出异常;否则查询dump备份任务表中该恢复任务的is_dump和dump_status字段,根据查询结果确定该恢复任务对应的资源实例是否已经成功进行脱格备份。若恢复任务对应的资源实例已经完成恢复,且未成功进行脱格备份,则需要对该资源实例进行脱格备份。可以通过rpc协议调用该恢复任务对应的恢复主机,将本机上该恢复任务对应的已恢复资源实例导出到文件中,得到资源实例文件。
42.步骤130、根据所述恢复主机和资源实例文件确定备份策略,基于所述备份策略对资源实例文件进行备份。
43.其中,备份策略是备份文件的策略,具体包括备份发起时间、备份存储位置、存放规则、路径及保存时间等。可以通过备份策略表存储备份策略,在备份策略表中,备份策略与恢复主机名、资源实例文件名关联存储。
44.需要说明的是,在备份策略表中不存在与恢复主机和资源实例文件对应的备份策略时,需要为资源实例文件新建备份策略,然后,再基于新建的备份策略对资源实例文件进行备份。例如,可以根据资源实例文件的备份价值确定存放规则和保存时间等。还可以根据恢复主机的空闲资源确定资源实例文件的备份发起时间、备份存储位置以及路径等。
45.其中,备份价值用于表示资源实例的重要程度。例如,可以通过数据产生时间,数据所属业务的状态,数据级别以及用户查看情况等因素,按照预设评分规则计算资源实例的备份价值。
46.示例性地,根据恢复主机名和资源实例文件名查询备份策略表,根据查询结果判断是否存在对应的目标备份策略,若是,则基于目标备份策略通过恢复主机对资源实例文件进行文件备份。若不存在对应的目标备份策略,则根据所述资源实例文件的备份价值和恢复主机的空闲资源,为资源实例文件创建备份策略,将dump备份任务表中当前dump备份任务的备份策略id更新为新创建的备份策略的策略id,基于新创建的备份策略通过恢复主机对资源实例文件进行文件备份。ubrs基于恢复主机同步过来的文件备份任务id,更新dump备份任务表中当前dump备份任务的备份任务id。可选地,在资源实例文件备份成功后,通过rpc协议调用恢复主机清除已完成备份的已恢复资源实例,即清除恢复主机上恢复的
资源实例。
47.本实施例的技术方案,通过调用恢复主机对已备份资源实例进行恢复,得到已恢复资源实例;并对已恢复资源实例进行脱格备份,得到资源实例文件,根据恢复主机和资源实例文件确定备份策略,基于备份策略对资源实例文件进行备份,实现在不影响生产服务器性能的基础上,完成数据库文件的备份,避免数据恢复结果依赖于操作系统及数据库版本的问题,满足数据库长期保存的需求。
48.在上述技术方案的基础上,对响应于发起恢复请求,调用恢复主机对发起恢复请求对应的已备份资源实例进行恢复作进一步限定。图2为本发明实施例提供的另一种数据库备份方法的流程图。如图2所示:
49.步骤201、获取发起恢复请求,根据所述发起恢复请求中资源实例标识查询恢复任务表。
50.步骤202、根据查询结果检测是否存在同一资源实例下的任务冲突,若是,则执行步骤208,否则,执行步骤203。
51.示例性地,接收到发起恢复请求时,ubrs根据发起恢复请求中的resource_id查询恢复任务表,以检查同一资源实例下的任务冲突。例如,根据发起恢复请求中的resource_id查询恢复任务表中该资源实例的状态字段,根据查询结果确定对应资源实例是否正在进行恢复、或者已经完成恢复且未被清理。
52.步骤203、在恢复任务表中创建恢复任务,根据发起恢复请求内容更新所述恢复任务的相应字段,将更新后的恢复任务插入恢复任务队列。
53.示例性地,在不存在任务冲突时,在恢复任务表中新增一条恢复任务。获取发起恢复请求内容中的资源实例标识(resource_id)、恢复时间点(until_time)和恢复数据保留期限(retention)字段内容。查询数据库实例表、备份任务表和/或备份域表得到对应资源实例的备份主机(nbu_master)、备份客户端(nbu_client)等相关字段信息。根据资源实例标识、恢复时间点、恢复数据保留期、备份主机、备份客户端等相关字段信息,更新恢复任务表中新增的恢复任务的相应字段。将更新后的恢复任务插入恢复任务队列,将恢复任务表中该恢复任务的状态字段更新为排队中。
54.步骤204、对于存在空闲资源的目标恢复主机,按照所述恢复任务队列中的任务顺序,选择一个符合所述目标恢复主机的处理能力的所述恢复任务作为当前恢复任务,根据所述当前恢复任务对应的资源实例查询数据库实例表,得到数据库规则信息。
55.示例性地,当恢复主机存在空闲资源时,将恢复主机作为目标恢复主机。按照恢复任务队列中的任务顺序,选择恢复任务中恢复主机标识是目标恢复主机,且满足目标恢复主机的处理能力的一个作为当前恢复任务,然后发起异步恢复。其中,满足目标恢复主机的处理能力可以是目标恢复主机的计算资源足以处理恢复任务,或者目标恢复主机的空闲资源足以存储恢复出的资源实例等。在异步恢复过程中,根据当前恢复任务对应的资源实例查询数据库实例表,得到恢复所需的数据库规则信息。
56.步骤205、调用所述目标恢复主机,基于所述数据库规则信息运行所述当前恢复任务,以对所述发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例。
57.示例性地,在查询到恢复所需的数据库规则信息之后,更新当前恢复任务的状态(state)字段为运行中,更新开始时间(start_time)字段为当前时间,通过rpc协议调用当
前恢复任务对应的目标恢复主机,基于数据库规则信息运行当前恢复任务,以对发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例。获取恢复主机在恢复结束之后上报的恢复出来的资源大小以及状态码。更新恢复任务表中当前恢复任务的状态、状态码、结束时间、失效时间以及资源大小等字段信息。基于恢复出来的资源大小更新恢复主机表中目标恢复主机的剩余空间大小。
58.步骤206、响应于发起脱格备份请求生成脱格备份任务,根据所述脱格备份任务调用所述恢复主机对所述已恢复资源实例进行脱格备份,得到资源实例文件。
59.步骤207、根据所述恢复主机和资源实例文件确定备份策略,基于所述备份策略对资源实例文件进行备份。
60.步骤208、抛出异常,放弃响应所述发起恢复请求。
61.本实施例的技术方案,通过恢复主机将需要长期保存的已备份的资源实例恢复到当前时间点,再对恢复出来的资源实例进行脱格备份,避免在生产数据库上进行备份,在不影响生产数据库性能的同时完成数据库备份。
62.在上述技术方案的基础上,对响应于发起脱格备份请求,调用恢复主机对已恢复资源实例进行脱格备份作进一步限定。图3为本发明实施例提供的又一种数据库备份方法的流程图。如图3所示:
63.步骤301、响应于发起恢复请求生成恢复任务,根据所述恢复任务调用恢复主机对所述发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例。
64.步骤302、获取发起脱格备份请求,根据所述发起脱格备份请求中的恢复任务标识查询恢复任务表,得到对应恢复任务的任务状态。
65.示例性地,ubrs通过web接口接收发起脱格备份请求,解析发起脱格备份请求得到恢复任务标识,即restore_job_id。根据restore_job_id查询恢复任务表中该恢复任务的状态字段,得到对应恢复任务的任务状态。
66.步骤303、判断所述任务状态是否满足预设第一条件,若否,则执行步骤304,否则执行步骤310。
67.其中,预设第一条件是基于任务状态规定不可以进行脱格备份的资源实例的条件。例如,预设第一条件可以是恢复任务存在或正在运行。若任务状态满足预设第一条件,则确定该恢复任务对应的资源实例不符合脱格备份的要求。否则,对恢复任务进行基于预设第二条件的判断,再根据判断结果确定是否可以对恢复任务所恢复出的资源实例进行脱格备份。
68.示例性地,对于恢复任务标识对应的恢复任务,根据任务状态检测该恢复任务是否存在或仍在运行中。
69.步骤304、获取所述恢复任务备份标识和备份状态标识。
70.步骤305、判断所述备份标识和备份状态标识是否满足预设第二条件,若否,则执行步骤306、否则,执行步骤310。
71.其中,预设第二条件是基于备份标识和备份状态标识筛选不可以进行脱格备份的资源实例的条件。例如,预设第二条件可以是恢复任务的is_dump字段为真且dump_status为成功,表示该恢复任务对应的资源实例已经进行脱格备份且脱格备份成功。若备份标识和备份状态标识均满足预设第二条件,则确定该恢复任务对应的资源实例不满足脱格备份
的要求。否则,执行步骤306。
72.示例性地,对于满足预设第一条件的恢复任务,若备份标识和备份状态之一不满足预设第二条件,则确定该恢复任务对应的资源实例已完成恢复但未成功进行脱格备份。ubrs仅对已完成恢复且未成功进行脱格备份的资源实例进行脱格备份。
73.步骤306、在脱格备份任务表中创建脱格备份任务,根据所述发起脱格备份请求内容更新所述脱格备份任务的相应字段,将更新后的脱格备份任务插入备份任务队列。
74.示例性地,若发起脱格备份请求中的恢复任务对应的资源实例已完成恢复且未成功进行脱格备份,则在脱格备份任务表中创建一个脱格备份任务,且该脱格备份任务的各个字段为空或默认值。根据发起脱格备份请求内容更新该新建的脱格备份任务的相应字段,将更新后的脱格备份任务插入备份任务队列。具体地,新建的脱格备份任务的restore_job_id字段更新为发起脱格备份请求中传入的恢复任务标识。将更新后的脱格备份任务插入备份任务队列。同时,更新对应的恢复任务的is_dump字段为真。
75.步骤307、确定存在空闲资源的恢复主机为当前恢复主机,按照所述备份任务队列中任务顺序,选择一个符合所述当前恢复主机的处理能力的脱格备份任务作为当前脱格备份任务。
76.需要说明的是,在执行资源实例的脱格备份过程中,恢复主机的角色变为了备份主机,用于对本机上已恢复出的资源实例进行脱格备份。满足当前恢复主机的处理能力可以是当前恢复主机的计算资源足以处理脱格备份任务,或者当前恢复主机的空闲资源足以存储dump出的资源实例文件等。
77.示例性地,当恢复主机(此时也可以称为备份主机)存在空闲资源时,按照恢复任务队列中的任务顺序,选择恢复主机标识是空闲的恢复主机,且满足恢复主机处理能力的一个脱格备份任务作为当前脱格备份任务,然后发起异步脱格备份。在异步脱格备份过程中,将当前脱格备份任务的任务状态更新为运行中。
78.步骤308、调用所述当前恢复主机运行所述当前脱格备份任务,以对所述当前恢复主机上所述已恢复资源实例进行脱格备份,得到资源实例文件。
79.示例性地,将当前脱格备份任务对应的恢复主机作为当前恢复主机。其中,恢复任务对应的恢复主机是指执行恢复任务的恢复主机。通过rpc协议,调用当前恢复主机将已恢复出的资源实例导出到文件中,从而,实现对资源实例的dump备份,得到资源实例文件。恢复主机执行完脱格备份后,上报资源实例文件的存储路径和文件大小给ubrs。ubrs基于存储路径更新当前脱格备份任务的dump_dir字段,以及,根据当前脱格备份任务备份得到的资源实例文件的文件大小更新dump_size字段。
80.需要说明的是,恢复主机的资源支持异步执行多个恢复任务或者多个脱格备份任务。
81.步骤309、根据所述恢复主机和资源实例文件确定备份策略,基于所述备份策略对资源实例文件进行备份。
82.示例性地,根据恢复主机名和资源实例文件名查询备份策略表,以检测是否存在对应的备份策略。若存在,则将查询到的备份策略作为资源实例文件的备份策略。如果不存在,则基于资源文件的存储路径、文件大小以及恢复主机的空闲资源、剩余空间等创建备份策略。
83.步骤310、抛出异常,放弃响应所述发起脱格备份请求。
84.本实施例的技术方案,通过恢复主机将需要长期保存的已备份的资源实例恢复到当前时间点,再将已恢复的资源实例导出到文件,避免了直接对生产环境的资源实例做备份,导致影响生产主机性能的问题;此外,采用文件备份的方式,避免因资源实例对恢复主机的操作系统及数据库版本的强依赖,导致恢复出来的数据可能无法起库,或者无法兼容版本等情况。
85.图4为本发明实施例提供的又一种数据库备份方法的流程图。如图4所示,该数据库备份方法包括步骤410、发起资源实例的恢复和步骤420、发起已恢复资源实例的脱格备份两个流程。其中,步骤410、发起资源实例的恢复流程包括:
86.步骤411、接收发起恢复请求。
87.步骤412、判断是否存在任务冲突,若是,则执行步骤417,否则执行步骤413。
88.步骤413、新增恢复任务。
89.步骤414、通过rpc协议调用恢复主机执行异步恢复。
90.步骤415、接收恢复主机在恢复结束后发送的恢复出来的资源大小以及状态码,基于状态码更新任务状态。
91.步骤416、基于恢复出来的资源大小更新占用恢复主机空间大小。
92.步骤417、抛出异常。
93.具体地,前端服务器通过web接口向ubrs发送发起恢复任务请求。ubrs接收到发起恢复任务请求,首先根据resource_id查询恢复任务表,判断该资源实例是否正在进行恢复,或者已经完成恢复且未被清理,以检查同一资源实例下的任务冲突。若不存在任务冲突,在恢复任务表中新增一条恢复任务,根据发起恢复任务请求的内容,更新该新增的恢复任务的资源实例标识、恢复时间点、恢复数据保留期限、备份主机、备份客户端等相关字段信息,并更新该新增的恢复任务的任务状态为排队中,然后发起异步恢复。在异步恢复过程中,根据资源类型的不同,查询数据库实例表获取不同资源恢复所需要的数据库规则信息,更新恢复任务的任务状态为运行中、开始时间字段值为此刻。通过rpc调用恢复主机执行异步恢复,并获取结束后恢复出来的资源大小以及状态码。最后,更新恢复任务的任务状态、任务状态标识、结束时间、失效时间以及资源大小等信息,并更新恢复主机的空间大小。若存在任务冲突,则抛出异常,放弃响应该发起恢复任务请求。
94.以及,步骤420、发起已恢复资源实例的脱格备份流程包括:
95.步骤421、接收发起脱格备份请求。
96.步骤422、判断恢复任务是否存在或仍在运行中,若是,则执行步骤428,否则执行步骤423。
97.步骤423、判断所述恢复任务恢复出的资源实例是否已经成功进行过脱格备份,若是,则执行步骤428,否则执行步骤424。
98.步骤424、新增脱格备份任务。
99.步骤425、更新恢复任务的restore_job_id字段和is_dump字段。
100.步骤426、通过rpc协议调用恢复主机执行异步脱格备份。
101.步骤427、判断文件备份策略是否已创建,若是,则执行步骤429,否则执行步骤428。
102.步骤428、创建文件备份策略。
103.步骤429、发起文件备份。
104.步骤4210、清理已恢复资源实例。
105.步骤4211、更新脱格备份任务的状态码,更新恢复任务的脱格备份状态。
106.步骤4212、抛出异常。
107.具体地,前端服务器通过web接口向ubrs发送发起脱格备份任务请求。ubrs接收到发起脱格备份任务请求,根据传入的restore_job_id检查该恢复任务是否存在或仍在运行中,接着检查恢复任务的is_dump、dump_status判断是否已经做过dump备份且dump成功,ubrs仅对已完成恢复的、且未成功进行dump备份的资源实例做dump备份。
108.备份开始时,首先会在脱格备份任务表中新增一个脱格备份任务,其restore_job_id属性为传入接口的恢复任务标识,同时更新对应的恢复任务的is_dump属性为true,然后异步进行脱格备份。在异步操作中,标记脱格备份任务的任务状态为运行中,通过rpc协议调用恢复主机对已恢复出的资源实例执行dump操作。获取恢复主机在脱格备份结束后发送的资源实例文件的存储位置以及大小,更新dump备份任务的dump_dir及dump_size属性。
109.接下来根据恢复主机名及需要dump的资源实例文件名,判断备份策略表中是否已创建用于脱格备份的策略,若不存在则新创建一个脱格备份策略,更新脱格备份任务的备份策略标识为对应的策略id,之后发起文件备份,以对已脱格出的资源实例文件进行备份,更新脱格备份任务的备份任务标识为文件备份任务id。备份结束后,通过rpc协议调用恢复主机清理已完成dump备份的文件,即恢复主机上恢复的资源实例。最后更新dump备份任务的状态码,将ump备份任务的任务状态置为已完成,同时更新恢复任务的dump_status为成功或失败。
110.图5为本发明实施例提供的一种数据库备份装置的结果框图。该装置可以由软件和/或硬件实现,并通常配置于服务器中。该装置通过执行本发明任意实施例提供的数据库备份方法,实现对数据库进行脱格备份以长期保存数据库。如图5所示,该装置包括:资源恢复模块510、脱格备份模块520和文件备份模块530。
111.资源恢复模块510,用于响应于发起恢复请求生成恢复任务,根据所述恢复任务调用恢复主机对所述发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例;
112.脱格备份模块520,用于响应于发起脱格备份请求生成脱格备份任务,根据所述脱格备份任务调用所述恢复主机对所述已恢复资源实例进行脱格备份,得到资源实例文件,其中,发起脱格备份请求用于请求将所述已恢复资源实例导出到文件中;
113.文件备份模块530,用于根据所述恢复主机和资源实例文件确定备份策略,基于所述备份策略对资源实例文件进行备份。
114.本发明实施例提供一种数据库备份装置,通过调用恢复主机对已备份资源实例进行恢复,得到已恢复资源实例;并对已恢复资源实例进行脱格备份,得到资源实例文件,根据所述恢复主机和资源实例文件确定备份策略,基于备份策略对资源实例文件进行备份,实现在不影响生产服务器性能的基础上,完成数据库文件的备份,避免数据恢复结果依赖于操作系统及数据库版本的问题,满足数据库长期保存的需求。
115.进一步地,所述装置还包括:
116.冲突检测模块,用于在响应于发起恢复请求生成恢复任务之前,获取发起恢复请求,根据所述发起恢复请求中资源实例标识查询恢复任务表,根据查询结果检测是否存在同一资源实例下的任务冲突。
117.进一步地,资源恢复模块510具体用于:
118.在恢复任务表中创建恢复任务,根据发起恢复请求内容更新所述恢复任务的相应字段,将更新后的恢复任务插入恢复任务队列;
119.对于存在空闲资源的目标恢复主机,按照所述恢复任务队列中的任务顺序,选择一个符合所述目标恢复主机的处理能力的所述恢复任务作为当前恢复任务,根据所述当前恢复任务对应的资源实例查询数据库实例表,得到数据库规则信息;
120.调用所述目标恢复主机,基于所述数据库规则信息运行所述当前恢复任务,以对所述发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例。
121.进一步地,该装置还包括:
122.条件判断模块,用于在响应于发起脱格备份请求生成脱格备份任务之前,获取发起脱格备份请求,根据所述发起脱格备份请求中的恢复任务标识查询恢复任务表,得到对应恢复任务的任务状态;
123.若所述任务状态不满足预设第一条件,则获取所述恢复任务备份标识和备份状态标识;
124.若所述备份标识和备份状态标识均不满足预设第二条件,则执行响应于发起脱格备份请求生成脱格备份任务步骤。
125.进一步地,所述脱格备份模块520具体用于:
126.在脱格备份任务表中创建脱格备份任务,根据所述发起脱格备份请求内容更新所述脱格备份任务的相应字段,将更新后的脱格备份任务插入备份任务队列;
127.确定存在空闲资源的恢复主机为当前恢复主机,按照所述备份任务队列中任务顺序,选择一个符合所述当前恢复主机的处理能力的脱格备份任务作为当前脱格备份任务;
128.调用所述当前恢复主机运行所述当前脱格备份任务,以对所述当前恢复主机上所述已恢复资源实例进行脱格备份,得到资源实例文件。
129.可选地,所述文件备份模块530具体用于:
130.根据恢复主机名和资源实例文件名查询预设备份策略表,根据查询结果确定是否存在对应的目标备份策略;
131.若是,则基于所述目标备份策略对所述资源实例文件进行备份;
132.否则,根据所述资源实例文件的备份价值和所述恢复主机的空闲资源,为所述资源实例文件创建备份策略,基于新创建的备份策略对所述资源实例文件进行备份。
133.进一步地,所述装置还包括:
134.资源清除模块,用于在基于所述备份策略对资源实例文件进行备份之后,在所述资源实例文件备份成功后,调用所述恢复主机清除已完成备份的所述已恢复资源实例。
135.本发明实施例所提供的数据库备份装置可执行本发明任意实施例所提供的数据库备份方法,具备执行方法相应的功能模块和有益效果。
136.图6为本发明实施例提供的一种服务器的结构示意图,如图6所示,该服务器包括处理器60和存储器61;服务器中处理器60的数量可以是一个或多个,图6中以一个处理器60
为例;服务器中的处理器60和存储器61可以通过总线或其他方式连接,图6中以通过总线连接为例。
137.存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据库备份方法对应的程序指令/模块(例如,数据库备份装置中的资源恢复模块510、脱格备份模块520和文件备份模块530)。处理器50通过运行存储在存储器51中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的数据库备份方法。
138.存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
139.本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据库备份方法,该方法包括:
140.响应于发起恢复请求生成恢复任务,根据所述恢复任务调用恢复主机对所述发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例;
141.响应于发起脱格备份请求生成脱格备份任务,根据所述脱格备份任务调用所述恢复主机对所述已恢复资源实例进行脱格备份,得到资源实例文件,其中,发起脱格备份请求用于请求将所述已恢复资源实例导出到文件中;
142.根据所述恢复主机和资源实例文件确定备份策略,基于所述备份策略对资源实例文件进行备份。
143.当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据库备份方法中的相关操作.
144.通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
145.值得注意的是,上述数据库备份装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
146.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还
可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
技术特征:
1.一种数据库备份方法,其特征在于,包括:响应于发起恢复请求生成恢复任务,根据所述恢复任务调用恢复主机对所述发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例;响应于发起脱格备份请求生成脱格备份任务,根据所述脱格备份任务调用所述恢复主机对所述已恢复资源实例进行脱格备份,得到资源实例文件,其中,发起脱格备份请求用于请求将所述已恢复资源实例导出到文件中;根据所述恢复主机和资源实例文件确定备份策略,基于所述备份策略对资源实例文件进行备份。2.根据权利要求1所述的方法,其特征在于,在响应于发起恢复请求生成恢复任务之前,还包括:获取发起恢复请求,根据所述发起恢复请求中资源实例标识查询恢复任务表,根据查询结果检测是否存在同一资源实例下的任务冲突。3.根据权利要求1所述的方法,其特征在于,所述响应于发起恢复请求生成恢复任务,根据所述恢复任务调用恢复主机对所述发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例,包括:在恢复任务表中创建恢复任务,根据发起恢复请求内容更新所述恢复任务的相应字段,将更新后的恢复任务插入恢复任务队列;对于存在空闲资源的目标恢复主机,按照所述恢复任务队列中的任务顺序,选择一个符合所述目标恢复主机的处理能力的所述恢复任务作为当前恢复任务,根据所述当前恢复任务对应的资源实例查询数据库实例表,得到数据库规则信息;调用所述目标恢复主机,基于所述数据库规则信息运行所述当前恢复任务,以对所述发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例。4.根据权利要求1所述的方法,其特征在于,在响应于发起脱格备份请求生成脱格备份任务之前,还包括:获取发起脱格备份请求,根据所述发起脱格备份请求中的恢复任务标识查询恢复任务表,得到对应恢复任务的任务状态;若所述任务状态不满足预设第一条件,则获取所述恢复任务备份标识和备份状态标识;若所述备份标识和备份状态标识均不满足预设第二条件,则执行响应于发起脱格备份请求生成脱格备份任务步骤。5.根据权利要求1所述的方法,其特征在于,所述响应于发起脱格备份请求生成脱格备份任务,根据所述脱格备份任务调用所述恢复主机对所述已恢复资源实例进行脱格备份,得到资源实例文件,包括:在脱格备份任务表中创建脱格备份任务,根据所述发起脱格备份请求内容更新所述脱格备份任务的相应字段,将更新后的脱格备份任务插入备份任务队列;确定存在空闲资源的恢复主机为当前恢复主机,按照所述备份任务队列中任务顺序,选择一个符合所述当前恢复主机的处理能力的脱格备份任务作为当前脱格备份任务;调用所述当前恢复主机运行所述当前脱格备份任务,以对所述当前恢复主机上所述已恢复资源实例进行脱格备份,得到资源实例文件。
6.根据权利要求1所述的方法,其特征在于,所述根据所述恢复主机和资源实例文件确定备份策略,基于所述备份策略对资源实例文件进行备份,包括:根据恢复主机名和资源实例文件名查询预设备份策略表,根据查询结果确定是否存在对应的目标备份策略;若是,则基于所述目标备份策略对所述资源实例文件进行备份;否则,根据所述资源实例文件的备份价值和所述恢复主机的空闲资源,为所述资源实例文件创建备份策略,基于新创建的备份策略对所述资源实例文件进行备份。7.根据权利要求1-6中任一项所述的方法,其特征在于,在基于所述备份策略对资源实例文件进行备份之后,还包括:在所述资源实例文件备份成功后,调用所述恢复主机清除已完成备份的所述已恢复资源实例。8.一种数据库备份装置,其特征在于,包括:资源恢复模块,用于响应于发起恢复请求生成恢复任务,根据所述恢复任务调用恢复主机对所述发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例;脱格备份模块,用于响应于发起脱格备份请求生成脱格备份任务,根据所述脱格备份任务调用所述恢复主机对所述已恢复资源实例进行脱格备份,得到资源实例文件,其中,发起脱格备份请求用于请求将所述已恢复资源实例导出到文件中;文件备份模块,用于根据所述恢复主机和资源实例文件确定备份策略,基于所述备份策略对资源实例文件进行备份。9.一种服务器,其特征在于,所述服务器包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据库备份方法。10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的数据库备份方法。
技术总结
本发明实施例公开了一种数据库备份方法、装置、服务器及介质,涉及数据库技术。该方法包括:响应于发起恢复请求生成恢复任务,根据恢复任务调用恢复主机对发起恢复请求对应的已备份资源实例进行恢复,得到已恢复资源实例;响应于发起脱格备份请求生成脱格备份任务,根据脱格备份任务调用恢复主机对已恢复资源实例进行脱格备份,得到资源实例文件;根据恢复主机和资源实例文件确定备份策略,基于备份策略对资源实例文件进行备份。通过执行本发明实施例,实现在不影响生产服务器性能的基础上,完成数据库文件的备份,避免数据恢复结果依赖于操作系统及数据库版本的问题,满足数据库长期保存的需求。期保存的需求。期保存的需求。
技术研发人员:周志锋 李炎青 戈林发 何静 王婷婷 吕凌 李颖 李志远 王欣
受保护的技术使用者:平安壹账通云科技(深圳)有限公司
技术研发日:2021.11.29
技术公布日:2022/3/8