数据库恢复方法和装置、存储介质及电子设备与流程
未命名
10-26
阅读:71
评论:0
1.本发明涉及计算机领域,具体而言,涉及一种数据库恢复方法和装置、存储介质及电子设备。
背景技术:
2.数据库的高可用性对于业务应用的运营具有非常重要的意义,数据库的故障恢复则是数据库的高可用性的重要体现。换句话说,在数据库发生异常的情况下,如何高效快捷地恢复数据库对于业务应用的运营十分重要。
3.目前数据库恢复技术都是基于整个数据库库建立数据库恢复点,因此对于使用同一个数据库的多个应用都只能一起恢复,这样会造成关键业务恢复时间过久。也就是说,现有的数据库恢复技术存在恢复效率较低的技术问题。
4.针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:
5.本发明实施例提供了一种数据库恢复方法和装置、存储介质及电子设备,以至少解决现有数据库恢复方法的恢复效率较低的技术问题。
6.根据本发明实施例的一个方面,提供了一种数据库恢复方法,包括:获取数据库恢复请求,其中,上述数据库恢复请求用于对与多个应用对应的数据库对象集合进行数据恢复;获取与上述多个应用一一对应的多个对象标识构成的对象标识集合,其中,上述对象标识集合中包括与之对应的上述应用在运行过程中所调用的数据库对象的对象标识,上述对象标识集合中的每一个对象标识分别指示一个数据库对象;确定上述多个应用各自的关键指数,并根据上述关键指数指示的顺序确定上述多个对象标识集合各自对应的数据库对象子集的恢复顺序,其中,上述关键指数用于指示上述应用的重要程度;根据上述恢复顺序对多个数据库对象子集依次进行数据恢复。
7.根据本发明实施例的另一方面,还提供了一种数据库恢复装置,包括:第一获取单元,用于获取数据库恢复请求,其中,上述数据库恢复请求用于对与多个应用对应的数据库对象集合进行数据恢复;第二获取单元,用于获取与上述多个应用一一对应的多个对象标识构成的对象标识集合,其中,上述对象标识集合中包括与之对应的上述应用在运行过程中所调用的数据库对象的对象标识,上述对象标识集合中的每一个对象标识分别指示一个数据库对象;确定单元,用于确定上述多个应用各自的关键指数,并根据上述关键指数指示的顺序确定上述多个对象标识集合各自对应的数据库对象子集的恢复顺序,其中,上述关键指数用于指示上述应用的重要程度;恢复单元,用于根据上述恢复顺序对多个数据库对象子集依次进行数据恢复。
8.根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述数据库恢复方法。
9.根据本技术实施例的又一个方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序/指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序/指令,处理器执行该计算机程序/指令,使得该计算机设备执行如以上数据库恢复方法。
10.根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过上述计算机程序执行上述的数据库恢复方法。
11.在本发明实施例中,获取数据库恢复请求,其中,数据库恢复请求用于对与多个应用对应的数据库对象集合进行数据恢复;获取与多个应用一一对应的多个对象标识构成的对象标识集合,其中,对象标识集合中包括与之对应的应用在运行过程中所调用的数据库对象的对象标识,对象标识集合中的每一个对象标识分别指示一个数据库对象;确定多个应用各自的关键指数,并根据关键指数指示的顺序确定多个对象标识集合各自对应的数据库对象子集的恢复顺序,其中,关键指数用于指示应用的重要程度;根据恢复顺序对多个数据库对象子集依次进行数据恢复,从而实现了对数据库中包括的多个数据库对象子集进行分层恢复。
12.在本技术的上述实施方式中,在获取对对应于多个应用的数据库对象集合的恢复请求的情况下,可以先获取各个应用各自对应的对象标识集合,再根据各个应用各自的关键指数确定出各个对象标识集合对应数据库对象子集的恢复顺序,进而实现了按照一定顺序对数据库中的不同数据库对象子集进行恢复,从而可以在对应于一个应用的数据库对象子集恢复完成的情况下,先对该应用进行恢复运行,进而实现了对多个应用的依次恢复,解决了现有的数据库恢复方法只能对数据库整体进行数据恢复,使得数据库恢复到应用重启之间的时间消耗较长的技术问题,通过对数据库对象的分层次恢复实现了对多个应用的依次恢复运行,进而解决了现有的数据库恢复方法的恢复效率低的技术问题。
附图说明
13.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
14.图1是根据本发明实施例的一种可选的数据库恢复方法的硬件环境的示意图;
15.图2是根据本发明实施例的一种可选的数据库恢复方法的流程图;
16.图3是根据本发明实施例的一种可选的数据库恢复方法的示意图;
17.图4是根据本发明实施例的另一种可选的数据库恢复方法的示意图;
18.图5是根据本发明实施例的又一种可选的数据库恢复方法的示意图;
19.图6是根据本发明实施例的又一种可选的数据库恢复方法的示意图;
20.图7是根据本发明实施例的又一种可选的数据库恢复方法的示意图;
21.图8是根据本发明实施例的又一种可选的数据库恢复方法的示意图;
22.图9是根据本发明实施例的又一种可选的数据库恢复方法的示意图;
23.图10是根据本发明实施例的一种可选的数据库恢复装置的结构示意图;
24.图11是根据本发明实施例的一种可选的电子设备的结构示意图。
具体实施方式
25.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
26.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
27.以下对本技术中出现的技术用语进行解释说明:
28.云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统 (以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统;
29.目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。 客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(id,id entity) 等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问;
30.存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(raid,redundant array of independent disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
31.根据本发明实施例的一个方面,提供了一种数据库恢复方法,作为一种可选的实施方式,上述数据库恢复方法可以但不限于应用于如图1所示的硬件环境中的数据库恢复系统,其中,该数据库恢复系统可以包括但不限于终端设备102、网络104、服务器106、数据库108。终端设备102运行有目标客户端(如图1所示,以该目标客户端为一种可以对数据库进行管理操作的客户端为例)。上述终端设备102中包括人机交互屏幕,处理器及存储器。人机交互屏幕用于显示数据库恢复操作界面,还用于提供人机交互接口以接收用于指示数据库操作的操作控制指令。处理器用于响应上述人机交互操作生成交互指令,并将该交互指令对应的数据操作请求发送给服务器。存储器用于对服务器返回的处理结果进行存储。
32.此外,服务器106中包括处理引擎,处理引擎用于对数据库108执行存储或读取操
作,包括但不限于是数据库对象的恢复操作。具体地,处理引擎从数据库108中读取各个待恢复的数据库对象并根据恢复日志进行数据恢复。
33.假设图1中的终端设备102中运行有用于获取数据库恢复请求的客户端,本实施例的具体过程如以下步骤:如步骤s102,终端设备102获取数据库恢复请求;
34.接着如步骤s104,终端设备102通过网络104向服务器106发送数据库恢复请求,服务器106执行步骤s106至s112,获取数据库恢复请求,其中,数据库恢复请求用于对与多个应用对应的数据库对象集合进行数据恢复;获取与多个应用一一对应的多个对象标识集合,其中,对象标识集合中包括与之对应的应用在运行过程中所调用的数据库对象的对象标识,对象标识集合中的每一个对象标识分别指示一个数据库对象;确定多个应用各自的关键指数,并根据关键指数指示的顺序确定多个对象标识集合各自对应的数据库对象子集的恢复顺序,其中,关键指数用于指示应用的重要程度;根据恢复顺序对多个数据库对象子集依次进行数据恢复。
35.接着,如步骤s114,在每恢复完成一个应用对应的数据库对象子集的情况下,服务器106可以通过网络104向终端设备102根据恢复顺序依次发送恢复提示信息;最后如步骤s116,终端设备102依次显示恢复提示信息,其中,恢复提示信息用于指示当前应用已经完成数据库恢复,处于可以运行的状态。
36.可选地,在本实施例中,上述终端设备102可以是配置有目标客户端的终端设备,可以包括但不限于以下至少之一:手机(如android手机、ios手机等)、笔记本电脑、平板电脑、掌上电脑、mid(mobile internet devices,移动互联网设备)、pad、台式电脑、智能电视等。目标客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端等支持提供射击游戏任务的客户端。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、wifi及其他实现无线通信的网络。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。
37.服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
38.在本发明实施例中,获取数据库恢复请求,其中,数据库恢复请求用于对与多个应用对应的数据库对象集合进行数据恢复;获取与多个应用一一对应的多个对象标识集合,其中,对象标识集合中包括与之对应的应用在运行过程中所调用的数据库对象的对象标识,对象标识集合中的每一个对象标识分别指示一个数据库对象;确定多个应用各自的关键指数,并根据关键指数指示的顺序确定多个对象标识集合各自对应的数据库对象子集的恢复顺序,其中,关键指数用于指示应用的重要程度;根据恢复顺序对多个数据库对象子集依次进行数据恢复,从而实现了对数据库中包括的多个数据库对象子集进行分层恢复。
39.在本技术的上述实施方式中,在获取对对应于多个应用的数据库对象集合的恢复请求的情况下,可以先获取各个应用各自对应的对象标识集合,再根据各个应用各自的关
键指数确定出各个对象标识集合对应数据库对象子集的恢复顺序,进而实现了按照一定顺序对数据库中的不同数据库对象子集进行恢复,从而可以在对应于一个应用的数据库对象子集恢复完成的情况下,先对该应用进行恢复运行,进而实现了对多个应用的依次恢复,解决了现有的数据库恢复方法只能对数据库整体进行数据恢复,使得数据库恢复到应用重启之间的时间消耗较长的技术问题,通过对数据库对象的分层次恢复实现了对多个应用的依次恢复运行,进而解决了现有的数据库恢复方法的恢复效率低的技术问题。
40.作为一种可选的实施方式,如图2所示,上述数据库恢复方法包括以下步骤:
41.s202,获取数据库恢复请求,其中,数据库恢复请求用于对与多个应用对应的数据库对象集合进行数据恢复;
42.s204,获取与多个应用一一对应的多个对象标识构成的对象标识集合,其中,对象标识集合中包括与之对应的应用在运行过程中所调用的数据库对象的对象标识,对象标识集合中的每一个对象标识分别指示一个数据库对象;
43.s206,确定多个应用各自的关键指数,并根据关键指数指示的顺序确定多个对象标识集合各自对应的数据库对象子集的恢复顺序,其中,关键指数用于指示应用的重要程度;
44.s208,根据恢复顺序对多个数据库对象子集依次进行数据恢复。
45.需要说明的是,在上述步骤s202中的数据库恢复请求可以是在数据库发生异常的情况下自动生成的恢复请求,还可以是用户对象主动触发的数据库恢复请求。具体地,上述数据库恢复请求可以是请求针对从故障发生的时间点起至当前时间节点之间的数据库的相关数据库对象进行恢复落盘,例如将服务器的运行内存中已经完成的数据操作进一步加载至服务器硬盘中,还可以是将未提交的数据操作进行撤销处理。在本实施方式中,不对上述数据库恢复请求的具体请求内容进行限定。
46.此外,需要说明的是,在本技术实施例中所提及的数据库对象,可以包括但不限于是与数据库相关的处理操作的操作对象,例如可以是表,索引,视图,图表,缺省值,规则,触发器,用户,函数等数据库对象,在本实施方式中不对上述数据库对象的具体类型进行限定。
47.在上述步骤s202中,上述待恢复的数据库对象集合为与多个应用对应的数据库对象组成的对象集合。上述多个应用可以包括但不限于是多个业务应用的应用集合,还可以是同一个应用中包括的多个应用功能模块。例如,上述多个应用可以用于指示应用a、应用b、应用c、应用d等多个应用;还可以是应用a中的功能模块a、功能模块b、功能模块c等。在本实施方式中,不对上述多个应用的具体类型进行限定。
48.进一步地,在上述步骤s204中,可以获取与上述多个应用分别对应的多个对象标识集合,进而确定出各个应用各自对应的待恢复的数据库对象子集。获取上述多个对象标识集合依据可以是根据各个应用在运行过程中所调用的数据库对象的对象标识确定。
49.接着,在上述步骤s206中,可以根据各个应用各自的关键指数确定出各个应用的优先级顺序,进而基于一定顺序对各个应用各自对应的数据库对象子集进行恢复。从而实现对数据库对象集合中的不同部分的分层恢复,使得对应于不同数据库对象子集的应用也可以根据恢复顺序的先后实现依次恢复运行。
50.需要说明的是,上述关键指数可以用于指示上述各个应用在运行过程中的重要程
度,例如,应用a为应用b的基础应用,则为应用a配置更高的关键指数,从而控制与应用a相关的数据库对象子集的优先恢复;又如,应用a涉及的用户对象集合大于应用b涉及的用户对象集合,进而可以基于用户集合的规模为不同应用配置不同的关键指数。在本实施方式中,不对上述关键指数的配置方式进行限定。
51.在本技术的上述实施方式中,在获取对对应于多个应用的数据库对象集合的恢复请求的情况下,可以先获取各个应用各自对应的对象标识集合,再根据各个应用各自的关键指数确定出各个对象标识集合对应数据库对象子集的恢复顺序,进而实现了按照一定顺序对数据库中的不同数据库对象子集进行恢复,从而可以在对应于一个应用的数据库对象子集恢复完成的情况下,先对该应用进行恢复运行,进而实现了对多个应用的依次恢复,解决了现有的数据库恢复方法只能对数据库整体进行数据恢复,使得数据库恢复到应用重启之间的时间消耗较长的技术问题,通过对数据库对象的分层次恢复实现了对多个应用的依次恢复运行,进而解决了现有的数据库恢复方法的恢复效率低的技术问题。
52.在一种可选的实施方式中,上述根据关键指数指示的顺序确定多个对象标识集合各自对应的数据库对象子集的恢复顺序,包括:
53.s1,根据关键指数指示的顺序依次确定与多个对象标识集合一一对应的多个数据库对象子集;
54.s2,将关键指数指示的顺序确定为多个数据库对象子集的恢复顺序。
55.可以理解的是,在本实施方式中,可以先按照上述关键指数指示的顺序依次确定出各个对象标识集合各自对应的数据库对象子集,再基于上述顺序对上述数据库对象子集进行依次恢复。
56.在一种可选的实施方式中,按照上述关键指数指示的顺序依次确定出各个对象标识集合各自对应的数据库对象子集的方式可以是:根据各个对象标识集合中包括的对象标识分别确定出与该对象标识唯一对应的数据库对象,进而将各个数据库对象组成的对象集合直接确定为上述数据库对象子集。
57.在另一种可选的实施方式中,上述根据关键指数指示的顺序依次确定与多个对象标识集合一一对应的多个数据库对象子集,包括:根据关键指数指示的顺序从多个对象标识集合中依次获取一个对象标识集合作为当前标识集合,并重复如下步骤,直至确定与多个对象标识集合一一对应的多个数据库对象子集:
58.s1,在当前标识集合中不包括历史标识集合中的历史对象标识的情况下,将当前标识集合中每一个当前对象标识所对应的数据库对象,确定为当前数据库对象子集中包括的当前数据库对象;
59.s2,在当前标识集合中包括历史标识集合中的历史对象标识的情况下,将当前标识集合中除历史对象标识之外的当前对象标识所对应的数据库对象,确定为当前数据库对象子集中包括的当前数据库对象;
60.其中,历史标识集合为关键指数指示的次序在当前标识集合之前的标识集合。
61.需要说明的是,在本实施方式中,确定出各个数据库对象子集的方式可以是按照上述关键指数指示的顺序依次确定出各个标识集合中未被历史处理过的标识集合包括的标识对象。
62.以下结合图3对上述实施方式进行说明。如图3中的(a)图所示,其中应用a所对应
的对象标识为表1、表2、表3、表4;应用b所对应的对象标识为表1、表2、表5;应用c所对应的对象标识为表6、表3、表4。
63.如图3中的(b)图所示,在根据关键指数指示的顺序确定上述三个应用的优先级为应用a>应用b>应用c的情况下,可以先将应用a所对应的对象标识集合:表1、表2、表3、表4所对应的四个表对象确定为应用a的对象标识集合对应的数据库对象子集;
64.接着,确定应用b所对应的对象标识集合对应的数据库对象子集。由于应用b所对应的对象标识集合表1、表2、表5中的表1、表2已经在应用a所对应的标识集合(历史标识集合)中出现过,进而将未出现过的表5所对应的表对象确定出表b对应的数据库对象子集;
65.最后,确定应用c所对应的对象标识集合对应的数据库对象子集。由于应用c所对应的对象标识集合表6、表3、表4中的表3、表4已经在应用a所对应的标识集合(历史标识集合)中出现过,进而将未出现过的表6所对应的表对象确定出表b对应的数据库对象子集;
66.在根据关键指数指示的顺序依次确定与多个对象标识集合一一对应的多个数据库对象子集之后,可以如图3中的(b)图所示,直接根据关键指数指示的顺序确定为上述各个数据库对象子集的恢复顺序,即优先恢复与应用a对应的数据库对象子集:表1、表2、表3、表4;接着恢复与应用b对应的数据库对象子集:表5;最后恢复与应用c对应的数据库对象子集:表6。
67.通过本技术的上述实施方式,可以根据各个应用的优先级关系,对各个应用各自对应的数据库对象子集分批次进行恢复。此外,在确定恢复的数据库对象子集的顺序的过程中,还可以进一步当前集合根据与先前恢复或操作的应用所对应的子集中包括的对象之间的关系,确定出恢复当前应用所对应的数据库所需要的最小数据库对象集合,从而提升数据库对象的恢复效率。
68.在一种可选的实施方式中,上述确定多个应用各自的关键指数,包括以下至少之一:
69.方式一、获取与多个应用分别对应的预设优先级顺序,根据预设优先级顺序确定多个应用各自的关键指数;
70.方式二、获取多个应用在运行过程中的应用依赖关系,根据应用依赖关系确定多个应用各自的关键指数;
71.方式三、获取多个应用各自对应的对象标识集合中包括的对象标识的标识数量,根据标识数量确定多个应用各自的关键指数。
72.可以理解的是,在本实施方式中,提供了三种可选的确定上述关键指数的方法。在上述方式一中,可以根据多个应用分别对应的预设优先级顺序确定各自的关键指数。例如,上述预设优先级顺序可以是用户定义的各个应用的重要级别,从而为重要级别高的应用配置更高的关键系数,进而根据用户定义的重要级别确定出各个应用各自对应的数据库对象子集的恢复顺序;
73.在上述方式二中,可以根据各个应用在运行过程中的应用依赖关系确定出各个应用各的关键指数。例如,应用a为一种搜索应用,应用b为一种基于搜索结果进行进一步数据处理的数据处理应用,可见,应用b的运行需要依赖应用a的运行结果。进而基于应用b依赖于应用a的关系,为应用a配置更高的关键指数,进而实现对应用a对应的数据库对象的优先恢复;
74.在上述方式三中,还可以根据上述各个应用对应的对象标识集合的集合规模确定各个应用的关键指数。例如,应用a对应的对象标识集合中包括100个对象标识;应用b对应的对象标识集合中包括10个对象标识,进而为应用b配置更高的关键系数,从而实现对应用b的优先恢复;
75.在又一种可选的实施方式中,还可以根据上述各个应用各自对应的用户对象集合的集合规模,确定出各个应用的关键指数。例如,应用a的月均活跃用户量为10万,应用b的月均活跃用户量为1万,进而为应用a配置更高的关键指数,实现对应用a的相关应用业务的优先恢复。
76.可以理解的是,上述关键指数的确定方法之间可以任意组合,在关键指数的确定方法为上述多种方式之间的组合的情况下,可以为各个方法配置不同的指数权重,进而更精确地确定出各个应用的重要程度。
77.以下对上述多种方式之间的组合方式进行具体说明。
78.在第一种组合方式中,确定上述各个应用的关键指数可以由上述方式一和方式二组合得到。具体地,可以先获取用户定义的预设优先级顺序,以及通过对应用功能的解析得到的各个应用之间的依赖关系,并基于预设优先级顺序和依赖关系确定出各个应用的关键指数。可选地,在用户定义的预设优先级顺序为缺省的情况下,可以直接根据上述各个应用之间的依赖关系确定各个应用的关键指数;在获取到用户定义的预设优先级顺序的情况下,可以根据上述各个应用之间的依赖关系为各个应用分配第一关键系数,以及根据预设优先级顺序确定为各个应用分配第二关键系数,并根据第一关键系数和第二关键系数的加权求和值确定出各个应用的关键指数。
79.例如,用户定义的优先级关系为:应用a》应用b》应用c,进而为上述应用a至应用c分别分配第一关键系数:100;80;60;在根据应用功能的依赖关系分析确定出应用c功能实现需要依赖应用a,且应用b的功能实现需要依赖应用a 和应用c的情况下,可以为上述应用a至应用c分别分配第二关键系数:100;30;80;在第一关键系数和第二关键系数的权重相同的情况下,进而确定上述应用a至应用c各自的关键指数为:100*0.5+100*0.5=100;80*0.5+30*0.5=55;60*0.5+80*0.5=70;即上述应用a至应用c各自的关键指数分别为:100;55;70,进而优先对应用a进行恢复,接着恢复应用c,最后恢复应用b;
80.在第二种组合方式中,确定上述各个应用的关键指数可以由上述方式一、方式二和方式三组合得到。在本实施方式中,可以为上述多种方式各自配置优先级,并根据上述各个方式的优先级关系确定出各个应用的关键指数。例如,方式二的优先级最高,方式一、方式三的优先级相同的情况下,指示在用户指定的预设优先级顺序与通过应用依赖关系分析确定的目标优先级关系发生矛盾的情况下,优先基于通过应用依赖关系分析确定的目标优先级关系确定恢复顺序。
81.例如,在用户指定的优先级关系为:应用a》应用b》应用c》应用d,而根据应用功能的依赖关系分析的功能依赖情况为:应用c功能实现需要依赖应用a,且应用b的功能实现需要依赖应用a 和应用c的情况下,应用d的功能实现需要依赖应用a 和应用c的情况下,可以先根据功能依赖关系确定恢复顺序为:应用a》应用c》应用b,也就是说,先为应用a配置最高的关键指数,接着为应用c配置第二高的关键指数,最后通过上述方式一至上述方式三各自确定的应用b和应用d的关键系数的加权求和值,分别确定应用b和应用d的关键指数,进而
确定应用b和应用d的恢复顺序;
82.在第三种组合方式中,可以先根据方式二(即功能依赖关系)确定出各个应用对应的第一关键系数,并以第一关键系数的排序为基准恢复顺序;在不同应用的第一关键系数相同的情况下,再根据上述方式一、方式三、以及方式四分别确定出的关键系数的加权求和值,确定出第一关键系数相同的应用之间的恢复顺序。通过本技术的上述实施方式,通过四种可选的方式之间的任意组合,实现了对应用重要程度的精确界定,进而按照各个应用的重要程度顺序高效恢复各个应用各自对应的应用业务的运行。
83.在一种可选的实施方式中,上述根据恢复顺序对多个数据库对象子集依次进行数据恢复,包括:
84.s1,根据m个数据库对象子集中各个子集各自对应的恢复任务量,对m个数据库对象子集进行分组,得到n个待恢复对象子集,其中,m为大于或等于1的整数,n为小于或等于m且大于或等于1的整数;
85.s2,获取n个待恢复对象子集各自对应的参考恢复信息;
86.s3,基于n个待恢复对象子集确定各自对应的参考恢复信息,根据与恢复顺序匹配的目标顺序对待恢复对象子集依次进行数据恢复。
87.需要说明的是,在本实施方式中,在确定出上述多个数据库对象子集之后,还可以根据各个数据库对象子集对应的数据恢复的任务量,对各个数据库对象子集进行进一步分组,以得到多个待恢复对象子集。并以待恢复对象子集为单位进行数据恢复。
88.可以理解的是,如果直接根据数据库对象子集进行数据恢复,则可能由于数据库对象子集的数量较多,进而导致维护各个数据库对象子集的数据恢复过程的性能消耗较大的技术问题。在本技术的上述实施方式中,可以通过根据各个数据库对象子集的恢复任务量对数据库对象子集进行进一步分组,进而压缩数据库对象恢复任务的任务数量,解决过多组的划分会导致的性能问题。
89.在一种可选的实施方式中,上述根据m个数据库对象子集中各个子集各自对应的恢复任务量,对m个数据库对象子集进行分组,得到n个待恢复对象子集,包括:
90.s1,根据m个数据库对象子集中各个子集各自对应的恢复日志的数量,确定m个数据库对象子集中各个子集各自对应的恢复任务量,其中,恢复日志用于记录目标时间点后产生的数据库操作集合,目标时间点为数据恢复请求中指示的数据恢复操作的起始时间点;
91.s2,根据恢复任务量对m个数据库对象子集进行分组,得到n个待恢复对象子集,其中,n个待恢复对象子集中的任意两个待恢复对象子集所对应的恢复日志的数量差值小于或等于目标阈值。
92.以下结合图4对上述实施方式的一种具体过程进行说明。
93.在一种可选的实施方式中,可以根据用户定义的数据库恢复集合的个数,对数据库集合进行合并;在另一种方式中,在用户未对数据库恢复集合的个数进行定义的情况下,可以根据当前处理性能合理确定数据库恢复集合的个数,以避免恢复集合过多,造成数据库恢复信息爆炸的问题。集合的划分根据过去一段时间内,数据库对象每个检查点的重做日志(即上述恢复日志)的条数。
94.需要说明的是,上述检查点指的是在系统运行时所有被修改过的数据页写入磁盘
中的一个时间点。在数据库发生故障的情况下,可以通过该时间点记录的相关信息快速将数据库恢复到最近的稳定状态,从而避免数据丢失或者损坏的情况。
95.上述重做日志可用于重建对数据库所做的所有更改(包括还原段)的数据,由一组变化向量组成,每个变化向量描述对数据库中的单个块所做的更改。例如,如果更改业务数据表中的业务量值,则会生成包含更改向量的重做记录,这些更改向量描述对表的数据段块,撤消段数据块以及撤消段的事务处理表的更改。
96.如图4中的(a)图所示,根据恢复集合以及增量集合进行如下划分,考虑到过多组的划分会导致性能问题,则可根据重做日志的大小进行合并。分组划分需要按照顺序进行,可以将恢复组进行合并。如图5所示,由于1组中包括的数据库对象集合所对应的重做日志量为8000条;2组中包括的数据库对象集合所对应的重做日志量为2000条;3组中包括的数据库对象集合所对应的重做日志量为5000条;4组中包括的数据库对象集合所对应的重做日志量为7000条;进而可以重新分组为待恢复子集1,待恢复子集2(包括组2以及组3),待恢复子集3,三个集合如图4中的(b)所示,每个组所对应的重做日志大致相同,从而减少对于恢复组维护的开销。
97.在一种可选的实施方式中,上述基于n个待恢复对象子集确定各自对应的参考恢复信息,根据与恢复顺序匹配的目标顺序对待恢复对象子集依次进行数据恢复,包括:
98.s1,分别确定与n个待恢复对象子集各自对应的数据缓冲区域,其中,数据缓冲区域之间互不重叠;
99.s2,在与n个待恢复对象子集各自对应的数据缓冲区域中,按照与恢复顺序匹配的目标顺序对待恢复对象子集依次进行数据恢复。
100.需要说明的是,在本技术的上述实施方式中,可以在各个待恢复对象子集各自对应的数据缓冲区域中进行数据恢复。
101.具体地,为了实现数据库分组恢复则需要对恢复信息进行分别存储:
102.首先,根据数据库对象的分组,将数据库对象映射到对应的缓冲池;
103.其次,不同的缓冲池对应不同的恢复组,每个恢复集合包含独立的恢复信息文件以及重做日志文件。
104.在得到了数据库对象的集合之后需要建立对应的数据库对象与缓冲区的对应关系,并针对不同的缓冲区组合建立对应的恢复信息文件以及重做日志。由于数据库恢复信息和缓冲区密切相关,因此需要先确定分组与缓冲区的关系,再确认缓冲区与恢复文件的关系。其中一个分组可以对应多个缓冲区,但是各个分组的缓冲区不能交叠;一个分组只能对应一组恢复文件以及重做日志。
105.如图5所示,待恢复对象子集1对应两个缓冲区分别为缓冲区1以及缓冲区2,对应于恢复文件1以及重做日志1。也就是说,在对恢复对象子集1关联的数据库对象进行恢复的过程中,可以基于恢复文件1以及重做日志1在缓冲区1和缓冲区2中进行数据恢复;此外,待恢复对象子集2对应缓冲为缓冲区3,且对应于恢复文件2以及重做日志2;待恢复对象子集3对应缓冲为缓冲区4,且对应于恢复文件3以及重做日志3。
106.在恢复过程中,可以按照如下步骤进行分层恢复。
107.s1,首先根据数据库的恢复顺序,按顺序读取恢复信息;
108.s2,根据每个分组的恢复信息进行数据库恢复;
109.s3,每完成一个恢复集合的数据库对象,则输出相应的信息,表示对应的应用可以使用。
110.通过本技术的上述实施方式,通过得到了数据库对象的集合之后需要建立对应的数据库对象与缓冲区的对应关系,并针对不同的缓冲区组合建立对应的恢复信息文件以及重做日志,从而确保不同的待恢复数据对象子集在不同的数据缓冲区中进行恢复,避免了恢复过程中的出错,并提高了数据库恢复的恢复效率。
111.在一种可选的实施方式中,上述获取与多个应用一一对应的多个对象标识集合,包括:从多个应用中获取一个应用作为当前应用,重复如下步骤,直至遍历多个应用:
112.s1,从与当前应用的运行关联的运行语句中筛选出数据库操作语句;
113.s2,将数据库操作语句中包括的数据库对象标识确定为当前对象标识集合中包括的对象标识。
114.以下对获取与各个应用各自对应的对象标识集合的方法进行具体说明。具体可以包括步骤:对于用户设定的应用进行解析,获取其中的数据库相关的语句;对于数据库相关的语句进行解析,并确定对应的数据库对象。
115.通常来讲,数据库一般可以按照如下层级进行划分:
116.首先需要对用户指定的应用进行解析,根据解析出的查询,建立应用与数据库的对应的数据库对象。如图6所示,可以在编译的时候解析出应用的数据库相关语句;根据数据库语句生成对应的语句的解析树,根据数据库语句的解析树得到对应的原始数据对象。
117.在得到了原始的数据库对象的集合之后,如图7所示,还需要根据数据库的主外键信息,触发器信息,限制信息等得到所有相关的数据库对象。
118.通过本技术的上述实施方式,以从与当前应用的运行关联的运行语句中筛选出数据库操作语句;将数据库操作语句中包括的数据库对象标识确定为当前对象标识集合中包括的对象标识,从而可以根据不同应用各自运行过程中所调用的数据库相关操作语句中包括的数据库对象标识确定出与各个应用各自对应的标识集合,避免了用户自行解析各个应用对应的数据库对象,提升了对数据库对象进行解析的效率。
119.在一种可选的实施方式中,上述根据恢复顺序对多个数据库对象子集依次进行数据恢复之后,还包括:在多个应用中的目标应用关联的数据库对象子集完成恢复的情况下,发送恢复提示信息,其中,恢复提示信息用于指示目标应用当前已处于可运行状态。
120.如图8所示,在对各个待恢复对象子集进行恢复的时候,按照定义好的恢复集合,获取对应的恢复文件以及重做日志进行数据库对象的恢复。完成对应的数据库对象的恢复,则通知用户对应的应用可以恢复使用。
121.以下对本技术的一个完整实施过程进行说明。
122.在本实施方式中,包括如下几个步骤:
123.s1,获取用户定义应用的重要级别;
124.s2,根据应用涉及的不同的应用,设定应用恢复顺序;
125.s3,根据恢复顺序,将数据库对象划分成不同的恢复组;
126.上述步骤s1的具体实现过程可以进一步包括:用户需要根据应用的重要级别,分别定义不同应用恢复顺序,对于数据库侧需要完成以下动作:根据用户指定的应用进行解析,解析出所涉及的数据库查询语句;分析检查出的查询语句所涉及的数据库对象。
127.如图9所示,应用a包含3条查询语句,每条查询语句对应不同的数据库模块。对应用的查询解析,并得到如图9所示的信息结构。
128.由于用户对象定义了应用a,其中应用a涉及到3个查询语句分别为查询语句1,查询语句2,查询语句3。如图9所示,这三个查询所涉及的数据库对象分别为:表1,表2,表3,表4。因此进过上述步骤的分析,如果需要应用a恢复的情况下,只需要恢复所涉及的4个表就可以恢复应用1,并可以对外提供服务。
129.在上述步骤s2中,可以进一步包括如下步骤:
130.根据分析出的应用与数据库对象的对应关系以及用户指定的数据库应用的重要顺序,计算数据库对象的恢复顺序:根据用户指定的恢复顺序,将第一个应用所涉及的数据库对象加入恢复序列的起始位置,表示要首先恢复这些应用,这样可以使最重要的应用快速恢复;继续按照应用的重要性,顺序取出应用所涉及的对象,将没有在恢复队列中的数据库对象继续加入到恢复队列中;如此进行下去,直到所有的数据库对象都在恢复队列中。
131.以下结合图3对上述实施方式进行说明。如图3中的(a)图所示,其中应用a所对应的对象标识为表1、表2、表3、表4;应用b所对应的对象标识为表1、表2、表5;应用c所对应的对象标识为表6、表3、表4。
132.如果用户定义的数据库恢复顺序为应用a,应用b,应用c,则首先加入到恢复队列的是表1、表2、表3、表4,接下来需要恢复的是应用b,将表5加入到恢复队列中,最后加入对应应用c的表6。因此可以得到的恢复顺序如图3中的(b)图所示。
133.在上述步骤s3中,可以进一步包括:根据数据库对象的恢复顺序,需要将数据库对象划分为不同的恢复组:首先根据初始恢复的数据库对象集合,以及每次增量的数据库对象集合,建立多个恢复数据库对象集合;根据用户定义的数据库恢复集合的个数,对数据库集合进行合并,以避免恢复集合过多,造成数据库恢复信息爆炸的问题。集合的划分根据过去一段时间内,数据库对象每个检查点的重做日志的条数。
134.如图4中的(a)图所示,根据恢复集合以及增量集合进行如下划分,考虑到过多组的划分会导致性能问题,则可根据重做日志的大小进行合并。分组划分需要按照顺序进行,可以将恢复组进行合并。如图5所示,由于1组中包括的数据库对象集合所对应的重做日志量为8000条;2组中包括的数据库对象集合所对应的重做日志量为2000条;3组中包括的数据库对象集合所对应的重做日志量为5000条;4组中包括的数据库对象集合所对应的重做日志量为7000条;进而可以重新分组为待恢复子集1,待恢复子集2(包括组2以及组3),待恢复子集3,三个集合,每个组所对应的重做日志大致相同,从而减少对于恢复组维护的开销。
135.最后,在对各个待恢复数据库对象子集依次进行恢复的过程中,如图8所示,首先根据数据库的恢复顺序,按顺序读取恢复信息;根据每个分组的恢复信息进行数据库恢复;每完成一个恢复集合的数据库对象,则输出相应的信息,表示对应的应用可以使用。
136.在本技术的上述实施方式中,在获取对对应于多个应用的数据库对象集合的恢复请求的情况下,可以先获取各个应用各自对应的对象标识集合,再根据各个应用各自的关键指数确定出各个对象标识集合对应数据库对象子集的恢复顺序,进而实现了按照一定顺序对数据库中的不同数据库对象子集进行恢复,从而可以在对应于一个应用的数据库对象子集恢复完成的情况下,先对该应用进行恢复运行,进而实现了对多个应用的依次恢复,解决了现有的数据库恢复方法只能对数据库整体进行数据恢复,使得数据库恢复到应用重启
之间的时间消耗较长的技术问题,通过对数据库对象的分层次恢复实现了对多个应用的依次恢复运行,进而解决了现有的数据库恢复方法的恢复效率低的技术问题。
137.通过本技术的上述实施方式中,自动对数据库对象进行分层,建立多个数据库恢复组,并对每个组建立不同的数据库恢复点;在数据库恢复的时候,针对每个数据库不同的恢复组,对高重要性的数据库进行恢复,达到快速恢复关键的数据库应用的目的。
138.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
139.根据本发明实施例的另一个方面,还提供了一种用于实施上述数据库恢复方法的数据库恢复装置。如图10所示,该装置包括:
140.第一获取单元1002,用于获取数据库恢复请求,其中,数据库恢复请求用于对与多个应用对应的数据库对象集合进行数据恢复;
141.第二获取单元1004,用于获取与多个应用一一对应的多个对象标识集合,其中,对象标识集合中包括与之对应的应用在运行过程中所调用的数据库对象的对象标识,对象标识集合中的每一个对象标识分别指示一个数据库对象;
142.确定单元1006,用于确定多个应用各自的关键指数,并根据关键指数指示的顺序确定多个对象标识集合各自对应的数据库对象子集的恢复顺序,其中,关键指数用于指示应用的重要程度;
143.恢复单元1008,用于根据恢复顺序对多个数据库对象子集依次进行数据恢复。
144.可选地,上述确定单元1006包括:
145.第一确定模块,用于根据关键指数指示的顺序依次确定与多个对象标识集合一一对应的多个数据库对象子集;
146.第二确定模块,用于将关键指数指示的顺序确定为多个数据库对象子集的恢复顺序。
147.可选地,上述第一确定模块,用于:根据关键指数指示的顺序从多个对象标识集合中依次获取一个对象标识集合作为当前标识集合,并重复如下步骤,直至确定与多个对象标识集合一一对应的多个数据库对象子集:在当前标识集合中不包括历史标识集合中的历史对象标识的情况下,将当前标识集合中每一个当前对象标识所对应的数据库对象,确定为当前数据库对象子集中包括的当前数据库对象;在当前标识集合中包括历史标识集合中的历史对象标识的情况下,将当前标识集合中除历史对象标识之外的当前对象标识所对应的数据库对象,确定为当前数据库对象子集中包括的当前数据库对象;其中,历史标识集合为关键指数指示的次序在当前标识集合之前的标识集合。
148.可选地,上述确定单元1006,还用于以下至少之一:获取与多个应用分别对应的预设优先级顺序,根据预设优先级顺序确定多个应用各自的关键指数;获取多个应用在运行过程中的应用依赖关系,根据应用依赖关系确定多个应用各自的关键指数;获取多个应用各自对应的对象标识集合中包括的对象标识的标识数量,根据标识数量确定多个应用各自的关键指数。
149.可选地,上述恢复单元1008,用于:根据m个数据库对象子集中各个子集各自对应的恢复任务量,对m个数据库对象子集进行分组,得到n个待恢复对象子集,其中,m为大于或等于1的整数,n为小于或等于m且大于或等于1的整数;获取n个待恢复对象子集各自对应的参考恢复信息;基于n个待恢复对象子集确定各自对应的参考恢复信息,根据与恢复顺序匹配的目标顺序对待恢复对象子集依次进行数据恢复。
150.可选地,上述恢复单元1008,用于:分别确定与n个待恢复对象子集各自对应的数据缓冲区域,其中,数据缓冲区域之间互不重叠;在与n个待恢复对象子集各自对应的数据缓冲区域中,按照与恢复顺序匹配的目标顺序对待恢复对象子集依次进行数据恢复。
151.可选地,上述恢复单元1008,用于:根据m个数据库对象子集中各个子集各自对应的恢复日志的数量,确定m个数据库对象子集中各个子集各自对应的恢复任务量,其中,恢复日志用于记录目标时间点后产生的数据库操作集合,目标时间点为数据恢复请求中指示的数据恢复操作的起始时间点;根据恢复任务量对m个数据库对象子集进行分组,得到n个待恢复对象子集,其中,n个待恢复对象子集中的任意两个待恢复对象子集所对应的恢复日志的数量差值小于或等于目标阈值。
152.可选地,上述第二获取单元,用于:从多个应用中获取一个应用作为当前应用,重复如下步骤,直至遍历多个应用:从与当前应用的运行关联的运行语句中筛选出数据库操作语句;将数据库操作语句中包括的数据库对象标识确定为当前对象标识集合中包括的对象标识。
153.可选地,上述数据库恢复装置,还用于:在多个应用中的目标应用关联的数据库对象子集完成恢复的情况下,发送恢复提示信息,其中,恢复提示信息用于指示目标应用当前已处于可运行状态。
154.可选地,在本实施例中,上述各个单元模块所要实现的实施例,可以参考上述各个方法实施例,这里不再赘述。
155.根据本发明实施例的又一个方面,还提供了一种用于实施上述数据库恢复方法的电子设备,该电子设备可以是图11所示的终端设备或服务器。本实施例以该电子设备为终端设备为例来说明。如图11所示,该电子设备包括存储器1102和处理器1104,该存储器1102中存储有计算机程序,该处理器1104被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
156.可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
157.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
158.s1,获取数据库恢复请求,其中,数据库恢复请求用于对与多个应用对应的数据库对象集合进行数据恢复;
159.s2,获取与多个应用一一对应的多个对象标识构成的对象标识集合,其中,对象标识集合中包括与之对应的应用在运行过程中所调用的数据库对象的对象标识,对象标识集合中的每一个对象标识分别指示一个数据库对象;
160.s3,确定多个应用各自的关键指数,并根据关键指数指示的顺序确定多个对象标识集合各自对应的数据库对象子集的恢复顺序,其中,关键指数用于指示应用的重要程度;
161.s4,根据恢复顺序对多个数据库对象子集依次进行数据恢复。
162.可选地,本领域普通技术人员可以理解,图11所示的结构仅为示意,电子装置电子设备也可以是智能手机(如、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图11其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图11中所示更多或者更少的组件(如网络接口等),或者具有与图11所示不同的配置。
163.其中,存储器1102可用于存储软件程序以及模块,如本发明实施例中的数据库恢复方法和装置对应的程序指令/模块,处理器1104通过运行存储在存储器1102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据库恢复方法。存储器1102可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1102可进一步包括相对于处理器1104远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1102具体可以但不限于用于存储场景画面中的各个元素、数据库恢复信息等信息。作为一种示例,如图11所示,上述存储器1102中可以但不限于包括上述数据库恢复装置中的第一获取单元1002、第二获取单元1004,确定单元1006以及恢复单元1008。此外,还可以包括但不限于上述数据库恢复装置中的其他模块单元,本示例中不再赘述。
164.可选地,上述的传输装置1106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1106包括一个网络适配器(network interface controller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1106为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
165.此外,上述电子设备还包括:显示器1108,用于显示界面中的虚拟场景;和连接总线1110,用于连接上述电子设备中的各个模块部件。
166.在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(peer to peer)网络,任意形式的计算设备,例如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
167.根据本技术的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序/指令,该计算机程序/指令包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理器执行时,执行本技术实施例提供的各种功能。
168.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
169.根据本技术的一个方面,提供了一种计算机可读存储介质,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述数据库恢复方方法。
170.可选地,在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
171.s1,获取数据库恢复请求,其中,数据库恢复请求用于对与多个应用对应的数据库
对象集合进行数据恢复;
172.s2,获取与多个应用一一对应的多个对象标识构成的对象标识集合,其中,对象标识集合中包括与之对应的应用在运行过程中所调用的数据库对象的对象标识,对象标识集合中的每一个对象标识分别指示一个数据库对象;
173.s3,确定多个应用各自的关键指数,并根据关键指数指示的顺序确定多个对象标识集合各自对应的数据库对象子集的恢复顺序,其中,关键指数用于指示应用的重要程度;
174.s4,根据恢复顺序对多个数据库对象子集依次进行数据恢复。
175.可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
176.上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。
177.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
178.在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
179.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
180.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
181.以上上述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:
1.一种数据库恢复方法,其特征在于,包括:获取数据库恢复请求,其中,所述数据库恢复请求用于对与多个应用对应的数据库对象集合进行数据恢复;获取与所述多个应用一一对应的多个对象标识构成的对象标识集合,其中,所述对象标识集合中包括与之对应的所述应用在运行过程中所调用的数据库对象的对象标识,所述对象标识集合中的每一个对象标识分别指示一个数据库对象;确定所述多个应用各自的关键指数,并根据所述关键指数指示的顺序确定所述多个对象标识集合各自对应的数据库对象子集的恢复顺序,其中,所述关键指数用于指示所述应用的重要程度;根据所述恢复顺序对多个数据库对象子集依次进行数据恢复。2.根据权利要求1所述的方法,其特征在于,所述根据所述关键指数指示的顺序确定所述多个对象标识集合各自对应的数据库对象子集的恢复顺序,包括:根据所述关键指数指示的顺序依次确定与所述多个对象标识集合一一对应的多个数据库对象子集;将所述关键指数指示的顺序确定为所述多个数据库对象子集的所述恢复顺序。3.根据权利要求2所述的方法,其特征在于,所述根据所述关键指数指示的顺序依次确定与所述多个对象标识集合一一对应的多个数据库对象子集,包括:根据所述关键指数指示的顺序从所述多个对象标识集合中依次获取一个对象标识集合作为当前标识集合,并重复如下步骤,直至确定与所述多个对象标识集合一一对应的所述多个数据库对象子集:在所述当前标识集合中不包括历史标识集合中的历史对象标识的情况下,将所述当前标识集合中每一个当前对象标识所对应的所述数据库对象,确定为当前数据库对象子集中包括的当前数据库对象;在所述当前标识集合中包括历史标识集合中的历史对象标识的情况下,将所述当前标识集合中除所述历史对象标识之外的当前对象标识所对应的所述数据库对象,确定为当前数据库对象子集中包括的当前数据库对象;其中,所述历史标识集合为所述关键指数指示的次序在所述当前标识集合之前的标识集合。4.根据权利要求2所述的方法,其特征在于,所述确定所述多个应用各自的关键指数,包括以下至少之一:获取与所述多个应用分别对应的预设优先级顺序,根据所述预设优先级顺序确定所述多个应用各自的关键指数;获取所述多个应用在运行过程中的应用依赖关系,根据所述应用依赖关系确定所述多个应用各自的关键指数;获取所述多个应用各自对应的所述对象标识集合中包括的对象标识的标识数量,根据所述标识数量确定所述多个应用各自的关键指数。5.根据权利要求1所述的方法,其特征在于,所述根据所述恢复顺序对多个数据库对象子集依次进行数据恢复,包括:根据m个数据库对象子集中各个子集各自对应的恢复任务量,对所述m个数据库对象子
集进行分组,得到n个待恢复对象子集,其中,所述m为大于或等于1的整数,所述n为小于或等于m且大于或等于1的整数;获取所述n个待恢复对象子集各自对应的参考恢复信息;基于所述n个待恢复对象子集确定各自对应的所述参考恢复信息,根据与所述恢复顺序匹配的目标顺序对所述待恢复对象子集依次进行数据恢复。6.根据权利要求5所述的方法,其特征在于,所述基于所述n个待恢复对象子集确定各自对应的所述参考恢复信息,根据与所述恢复顺序匹配的目标顺序对所述待恢复对象子集依次进行数据恢复,包括:分别确定与所述n个待恢复对象子集各自对应的数据缓冲区域,其中,所述数据缓冲区域之间互不重叠;在与所述n个待恢复对象子集各自对应的所述数据缓冲区域中,按照与所述恢复顺序匹配的目标顺序对所述待恢复对象子集依次进行数据恢复。7.根据权利要求5所述的方法,其特征在于,所述根据m个数据库对象子集中各个子集各自对应的恢复任务量,对所述m个数据库对象子集进行分组,得到n个待恢复对象子集,包括:根据所述m个数据库对象子集中各个子集各自对应的恢复日志的数量,确定所述m个数据库对象子集中各个子集各自对应的所述恢复任务量,其中,所述恢复日志用于记录目标时间点后产生的数据库操作集合,所述目标时间点为所述数据恢复请求中指示的数据恢复操作的起始时间点;根据所述恢复任务量对所述m个数据库对象子集进行分组,得到所述n个待恢复对象子集,其中,所述n个待恢复对象子集中的任意两个所述待恢复对象子集所对应的所述恢复日志的数量差值小于或等于目标阈值。8.根据权利要求1所述的方法,其特征在于,所述获取与所述多个应用一一对应的多个对象标识构成的对象标识集合,包括:从所述多个应用中获取一个应用作为当前应用,重复如下步骤,直至遍历所述多个应用:从与所述当前应用的运行关联的运行语句中筛选出数据库操作语句;将所述数据库操作语句中包括的数据库对象标识确定为当前对象标识集合中包括的对象标识。9.根据权利要求1所述的方法,其特征在于,所述根据所述恢复顺序对多个数据库对象子集依次进行数据恢复之后,还包括:在所述多个应用中的目标应用关联的所述数据库对象子集完成恢复的情况下,发送恢复提示信息,其中,所述恢复提示信息用于指示所述目标应用当前已处于可运行状态。10.一种数据库恢复装置,其特征在于,包括:第一获取单元,用于获取数据库恢复请求,其中,所述数据库恢复请求用于对与多个应用对应的数据库对象集合进行数据恢复;第二获取单元,用于获取与所述多个应用一一对应的多个对象标识构成的对象标识集合,其中,所述对象标识集合中包括与之对应的所述应用在运行过程中所调用的数据库对象的对象标识,所述对象标识集合中的每一个对象标识分别指示一个数据库对象;
确定单元,用于确定所述多个应用各自的关键指数,并根据所述关键指数指示的顺序确定所述多个对象标识集合各自对应的数据库对象子集的恢复顺序,其中,所述关键指数用于指示所述应用的重要程度;恢复单元,用于根据所述恢复顺序对多个数据库对象子集依次进行数据恢复。11.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至9任一项中所述的方法。12.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至9任一项所述方法的步骤。13.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至9任一项中所述的方法。
技术总结
本发明公开了一种数据库恢复方法和装置、存储介质及电子设备。其中,该方法包括:获取数据库恢复请求,数据库恢复请求用于对与多个应用对应的数据库对象构成的对象标识集合进行数据恢复;获取与多个应用一一对应的多个对象标识集合,对象标识集合中包括与之对应的应用在运行过程中所调用的数据库对象的对象标识,对象标识集合中的每一个对象标识分别指示一个数据库对象;确定多个应用各自的关键指数,并根据关键指数指示的顺序确定多个对象标识集合各自对应的数据库对象子集的恢复顺序,关键指数用于指示应用的重要程度;根据恢复顺序对多个数据库对象子集依次进行数据恢复。本发明解决了现有数据库恢复方法的恢复效率较低的技术问题。的技术问题。的技术问题。
技术研发人员:李硕 李晋钢 伍鑫 郑礼雄 潘安群 雷海林
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2023.09.13
技术公布日:2023/10/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/