一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据库快照查询方法、系统及存储介质与流程

2023-03-29 01:38:18 来源:中国专利 TAG:


1.本技术涉及数据库技术领域,尤其涉及一种数据库快照查询方法、系统及存储介质。


背景技术:

2.相关技术中,数据库,作为存放数据的仓库,能够存储大量数据,因此广泛应用于各类领域。为了保证数据库能够安全稳定运行,通常会配备数据库管理员(database administrator,简称dba)对数据库进行管理和维护。然而,在对数据库进行管理和维护的过程中,数据库管理员由于多数据库进行频繁操作,也会出现误操作的情况,而误操作则会使得数据库的数据发生丢失,因此,需要对此种情况丢失的数据进行恢复。在当前的数据库架构中,通常采用多版本并发控制架构(multi-version concurrency control,简称mvcc),此种架构的一个特点,就是数据被删除后,被删除的数据在一段时间内是仍然保留在数据页中的,再此前提下,要想对数据进行恢复,则需要对该被误删除的数据进行查询,以确定想要恢复的数据内容。目前采用的查询数据的方法,是通过快照来查询被删除的数据的。此种查询方法,因不清楚每一快照对应的数据集是哪个时间段的数据,因此查找相关数据非常费时,不利于数据库数据的快速恢复。因此,如何快速查询数据库被误删除的数据,成为了亟待解决的技术问题。


技术实现要素:

3.本技术旨在至少解决现有技术中存在的技术问题之一。为此,本技术提出一种数据库快照查询方法、系统及存储介质,能够减少快照查询时间,进而快速查询快照,从而快速查询被误删除的数据,并且还能够实现被误删除的数据的精准查询。
4.根据本技术的第一方面实施例的数据库快照查询方法,包括:
5.获取至少一个时间范围,以及所述时间范围内数据库进行数据操作对应的序号快照信息,并将所述时间范围、所述序号快照信息按照对应关系存储在预设的环形缓冲器;
6.获取待恢复数据对应的目标时间,并根据所述目标时间确定所述时间范围,以从所述环形缓冲器中提取所述序号快照信息中的最小序号信息,其中,所述目标时间落入所述时间范围;
7.根据预设的日志读取规则以及所述最小序号信息,获取预写式日志中的目标快照;
8.根据所述目标快照查询得到所述待恢复数据。
9.根据本技术实施例的数据库快照查询方法,至少具有如下有益效果:首先,获取至少一个时间范围,以及时间范围内数据库进行数据操作对应的序号快照信息,并将时间范围、序号快照信息按照对应关系存储在预设的环形缓冲器;其次,获取待恢复数据对应的目标时间,并根据目标时间确定时间范围,以从环形缓冲器中提取序号快照信息中的最小序号信息,其中,目标时间落入时间范围;之后,根据预设的日志读取规则以及所述最小序号
信息,获取预写式日志中的目标快照;最后,根据目标快照查询得到待恢复数据。本技术的数据库快照查询方法,通过环形缓冲器设置时间范围,在获取目标时间后,能够获取目标时间对应的时间范围,并根据时间范围对应的最小序号信息实现预写式日志的读取,一方面,能够减少预写式日志的读取量,只读取最小序号信息对应的日志文件,从而能够加快快照信息的查询速度;另一方面,能够根据目标时间获取对应的时间范围,实现时间范围的精确获取,进而能够较为精确的读取目标时间对应的快照,最终实现数据的精准查询。因此,本技术的数据库快照查询方法,能够减少快照查询时间,进而快速查询快照,从而快速查询被误删除的数据,并且还能够实现被误删除的数据的精准查询。
10.根据本技术的一些实施例,所述最小序号信息为所述时间范围内的最小日志序号;
11.所述根据预设的日志读取规则以及所述最小序号信息,获取预写式日志中的目标快照,包括:
12.从所述最小日志序号开始读取所述预写式日志中的日志文件,以获取所述日志文件中与所述最小日志序号对应的第一日志时间,并根据所述第一日志时间,从所述日志文件中获取与所述目标时间在时间维度上最相近的第二日志时间和第三日志时间,其中,所述第二日志时间早于所述目标时间,所述第三日志时间晚于所述目标时间;
13.将所述第三日志时间对应的第三快照作为所述目标快照。
14.根据本技术的一些实施例,所述根据预设的日志读取规则以及所述最小序号信息,获取预写式日志中的目标快照,还包括:
15.当未获取到所述第三日志时间,将所述第二日志时间对应的第二快照作为所述目标快照。
16.根据本技术的一些实施例,所述根据预设的日志读取规则以及所述最小序号信息,获取预写式日志中的目标快照,还包括:
17.当未获取到所述第二日志时间,将所述序号快照信息中的所述第一日志时间对应的第一快照作为所述目标快照,其中,所述第一快照为与所述最小日志序号对应的并在所述时间范围内的最早快照。
18.根据本技术的一些实施例,在所述获取至少一个时间范围,以及所述时间范围内数据库进行数据操作对应的序号快照信息之前,还包括:
19.通过事务的方式对数据库进行数据操作,并在事务结束后将数据库进行数据操作对应的时间快照信息写入所述预写式日志。
20.根据本技术的一些实施例,在所述获取至少一个时间范围,以及所述时间范围内数据库进行数据操作对应的序号快照信息之前,所述方法还包括:
21.将所述环形缓冲器中的所述时间范围对应的所述预写式日志设置为保留日志,将其余的所述预写式日志设置为非保留日志;
22.清理所述非保留日志。
23.根据本技术的一些实施例,在所述获取至少一个时间范围,以及所述时间范围内数据库进行数据操作对应的序号快照信息之前,所述方法还包括:
24.将所述环形缓冲器中的所述时间范围对应的历史数据设置为保留数据,将其余的所述历史数据设置为非保留数据;
25.通过所述数据库的vacuum命令清理所述非保留数据。
26.根据本技术的第二方面实施例的数据库快照查询系统,包括:
27.存储模块,用于获取至少一个时间范围,以及所述时间范围内数据库进行数据操作对应的序号快照信息,并将所述时间范围、所述序号快照信息按照对应关系存储在预设的环形缓冲器;
28.序号获取模块,用于获取待恢复数据对应的目标时间,并根据所述目标时间确定所述时间范围,以从所述环形缓冲器中提取出所述序号快照信息中的最小序号信息,其中,所述目标时间落入所述时间范围;
29.快照获取模块,用于根据预设的日志读取规则以及所述最小序号信息,获取预写式日志中的目标快照;
30.数据查询模块,用于根据所述目标快照查询得到所述待恢复数据。
31.根据本技术的第三方面实施例的数据库快照查询系统,包括:
32.至少一个存储器;
33.至少一个处理器;
34.至少一个程序;
35.所述程序被存储在所述存储器中,所述处理器执行至少一个所述程序以实现如第一方面实施例所述的数据库快照查询方法。
36.根据本技术的第四方面实施例的计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面实施例所述的数据库快照查询方法。
37.本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
38.下面结合附图和实施例对本技术做进一步的说明,其中:
39.图1为本技术一个实施例所提供的数据库快照查询方法的流程示意图;
40.图2为本技术一个实施例所提供的环形缓冲器内的序号查询过程示意图;
41.图3为本技术一个实施例所提供的wal日志的快照查询过程示意图;
42.图4为本技术另一实施例所提供的wal日志的快照查询过程示意图;
43.图5为本技术另一实施例所提供的wal日志的快照查询过程示意图;
44.图6为本技术一个实施例所提供的数据库快照查询方法的操作过程示意图;
45.图7为本技术一个实施例所提供的数据库快照查询系统的连接示意图;
46.图8为本技术一个实施例所提供的数据库快照查询系统的结构示意图。
47.附图标记:
48.存储模块100、序号获取模块110、快照获取模块120、数据查询模块130、存储器200、处理器300。
具体实施方式
49.下面详细描述本技术的实施例,实施例的示例在附图中示出,其中自始至终相同
或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能理解为对本技术的限制。
50.需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
51.在本技术的描述中,若干的含义是一个以上,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
52.本技术的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本技术中的具体含义。
53.本技术的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
54.下面对本技术的部分名词进行解释。
55.日志序号(log sequence number,简称lsn),用于标识特定日志文件记录在日志文件中的位置。
56.相关技术中,数据库管理员(database administrator,简称dba)可能会因为误操作导致数据库的数据丢失,这时可以使用较为常规的数据库恢复手段进行数据恢复,但是这类方式花费的时间比较多,容易导致数据库出现长时间停止运行的情况。因此,出现了通过闪回的方式进行数据恢复的手段,闪回是一种较快的数据恢复手段,可以较快的进行数据恢复。
57.在基于行级多版本并发控制架构(mvcc)的存储设计架构中,数据删除在一短时间内是仍然保留在数据页中的,这时,可以通过使用历史快照去查询数据,这样可以查询出已经被删除的数据。但是,在一般情况下,dba只对时间敏感,并不会关心快照的概念,因此需要一种将时间转化为快照的手段。
58.现有情况下,通常有两种方法。第一种方法,需要在数据库内部直接记录每一个快照与时间的对应关系,以供查询;第二种方法,需要进行粗粒度时间与快照的对应。现有的实现方式,第一种方法查询相关数据非常费时,会对数据库造成压力;第二种方法,时间与快照的对应不精确,无法进行较为精确的闪回查询。
59.基于此,本技术提供了一种数据库快照查询方法、系统及存储介质,能够减少快照查询时间,进而快速查询快照,从而快速查询被误删除的数据,并且还能够实现被误删除的数据的精准查询。
60.下面,根据图1描述本技术实施例的数据库快照查询方法。
61.可以理解的是,如图1所示,提供了一种数据库快照查询方法,包括:
62.步骤s100,获取至少一个时间范围,以及时间范围内数据库进行数据操作对应的序号快照信息,并将时间范围、序号快照信息按照对应关系存储在预设的环形缓冲器;
63.步骤s110,获取待恢复数据对应的目标时间,并根据目标时间确定时间范围,以从环形缓冲器中提取序号快照信息中的最小序号信息,其中,目标时间落入时间范围;
64.步骤s120,根据预设的日志读取规则以及最小序号信息,获取预写式日志中的目标快照;
65.步骤s130,根据目标快照查询得到待恢复数据。
66.首先,获取至少一个时间范围,以及时间范围内数据库进行数据操作对应的序号快照信息,并将时间范围、序号快照信息按照对应关系存储在预设的环形缓冲器;其次,获取待恢复数据对应的目标时间,并根据目标时间确定时间范围,以从环形缓冲器中提取序号快照信息中的最小序号信息,其中,目标时间落入时间范围;之后,根据预设的日志读取规则以及最小序号信息,获取预写式日志中的目标快照;最后,根据目标快照查询得到待恢复数据。本技术的数据库快照查询方法,通过环形缓冲器设置时间范围,在获取目标时间后,能够获取目标时间对应的时间范围,并根据时间范围对应的最小序号信息实现预写式日志的读取,一方面,能够减少预写式日志的读取量,只读取最小序号信息对应的日志文件,从而能够加快快照信息的查询速度;另一方面,能够根据目标时间获取对应的时间范围,实现时间范围的精确获取,进而能够较为精确的读取目标时间对应的快照,最终实现数据的精准查询。因此,本技术的数据库快照查询方法,能够减少快照查询时间,进而快速查询快照,从而快速查询被误删除的数据,并且还能够实现被误删除的数据的精准查询。
67.需要说明的是,最小序号信息为时间范围内的最小日志序号,如图2所示,环形缓冲器(环形buffer)可以存储多个时间范围以及与改时间范围对应的日志序号(lsn)、与日志序号对应的快照,且该日志序号为该时间范围内的最小日志序号。如需闪回查询,则需要指定目标时间,当目标时间落入某一时间范围,则获取该时间范围对应的序号快照信息,并进一步获取得到最小序号信息。
68.需要说明的是,数据库进行数据操作可以为数据库的基本操作(data manipulation language,简称dml操作),简而言之就是实现了基本的“增删改查”操作。包括的关键字有:select、update、delete、insert、merge。
69.可以理解的是,根据预设的日志读取规则以及最小序号信息,获取预写式日志中的目标快照,包括:
70.从最小日志序号开始读取预写式日志中的日志文件,以获取日志文件中与最小日志序号对应的第一日志时间,并根据第一日志时间,从日志文件中获取与目标时间在时间维度上最相近的第二日志时间和第三日志时间,其中,第二日志时间早于目标时间,第三日志时间晚于目标时间;
71.将第三日志时间对应的第三快照作为目标快照。
72.需要说明的是,如图3所示,在预写式日志(wal日志)中需要找到第一个比目标时间大的时间快照关系,记为[t1|s1],找到第一个比指定时间小的时间快照对应关系,记为[t2|s2],这时s2就是我们需要的精确快照。
[0073]
可以理解的是,根据预设的日志读取规则以及最小序号信息,获取预写式日志中的目标快照,还包括:
[0074]
当未获取到第三日志时间,将第二日志时间对应的第二快照作为目标快照。
[0075]
需要说明的是,如图4所示,如果未找到[t2|s2],那么就使用找到的最接近目标时间的s1即为我们需要的精确快照,此时此快照也等于数据库最新快照。
[0076]
可以理解的是,根据预设的日志读取规则以及最小序号信息,获取预写式日志中的目标快照,还包括:
[0077]
当未获取到第二日志时间,将序号快照信息中的第一日志时间对应的第一快照作为目标快照,其中,第一快照为与最小日志序号对应的并在时间范围内的最早快照。
[0078]
需要说明的是,如图5所示,如果未找到[t1|s1]那么直接使用环形buffer中的s0作为我们需要的精确快照,也就是最小日志序号对应的快照。
[0079]
可以理解的是,在获取至少一个时间范围,以及时间范围内数据库进行数据操作对应的序号快照信息之前,还包括:
[0080]
通过事务的方式对数据库进行数据操作,并在事务结束后将数据库进行数据操作对应的时间快照信息写入预写式日志。
[0081]
可以理解的是,如图6所示,在获取至少一个时间范围,以及时间范围内数据库进行数据操作对应的序号快照信息之前,还包括:
[0082]
将环形缓冲器中的时间范围对应的预写式日志设置为保留日志,将其余的预写式日志设置为非保留日志;
[0083]
清理非保留日志。
[0084]
需要说明的是,确保检查点(checkpoint)不会清理环形buffer内的wal日志,以此保证闪回查询时就可读取到需要的wal日志,具体步骤如下:
[0085]
根据环形缓冲器中的时间范围,获取预写式日志中的第四日志时间和第五日志时间,其中,第四日志时间对应时间范围的开头,第五日志时间对应时间范围的结尾;
[0086]
获取第四日志时间和第五日志时间之间的目标预写式日志,并将数据库的检查点设置为不清理目标预写式日志。
[0087]
可以理解的是,如图6所示,在获取至少一个时间范围,以及时间范围内数据库进行数据操作对应的序号快照信息之前,还包括:
[0088]
将环形缓冲器中的时间范围对应的历史数据设置为保留数据,将其余的历史数据设置为非保留数据;
[0089]
通过数据库的vacuum命令清理非保留数据。
[0090]
需要说明的是,确保vacuum命令不会清理环形buffer范围的脏数据,这样保证闪回查询可以读取到历史时间的数据,具体步骤如下:
[0091]
获取第四日志时间对应的第四快照信息、第五日志时间对应的第五快照信息,并根据第四快照信息和第五快照信息;
[0092]
根据第四快照信息和第五快照信息,确定时间范围内的历史数据;
[0093]
将数据库的vacuum命令设置为不清理历史数据。
[0094]
下面参照图7描述根据本技术实施例的数据库快照查询系统。
[0095]
可以理解的是,如图7所示,提供了一种数据库快照查询系统,包括:
[0096]
存储模块100,用于获取至少一个时间范围,以及时间范围内数据库进行数据操作对应的序号快照信息,并将时间范围、序号快照信息按照对应关系存储在预设的环形缓冲
器;
[0097]
序号获取模块110,用于获取待恢复数据对应的目标时间,并根据目标时间确定时间范围,以从环形缓冲器中提取出序号快照信息中的最小序号信息,其中,目标时间落入时间范围;
[0098]
快照获取模块120,用于根据预设的日志读取规则以及最小序号信息,获取预写式日志中的目标快照;
[0099]
数据查询模块130,用于根据目标快照查询得到待恢复数据。
[0100]
下面参照图8描述根据本技术实施例的数据库快照查询系统。
[0101]
可以理解的是,如图8所示,数据库快照查询系统,包括:
[0102]
至少一个存储器200;
[0103]
至少一个处理器300;
[0104]
至少一个程序;
[0105]
程序被存储在存储器200中,处理器300执行至少一个程序以实现上述的数据库快照查询方法。图8以一个处理器300为例。
[0106]
处理器300和存储器200可以通过总线或其他方式连接,图8以通过总线连接为例。
[0107]
存储器200作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及信号,如本技术实施例中的数据库快照查询系统对应的程序指令/信号。处理器300通过运行存储在存储器200中的非暂态软件程序、指令以及信号,从而执行各种功能应用以及数据处理,即实现上述方法实施例的数据库快照查询方法。
[0108]
存储器200可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储上述数据库快照查询方法的相关数据等。此外,存储器200可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器200可选包括相对于处理器300远程设置的存储器,这些远程存储器可以通过网络连接至数据库快照查询系统。上述网络的实例包括但不限于物联网、软件定义网络、传感器网络、互联网、企业内部网、局域网、移动通信网及其组合。
[0109]
一个或者多个信号存储在存储器200中,当被一个或者多个处理器300执行时,执行上述任意方法实施例中的数据库快照查询方法。例如,执行以上描述的图1中的方法。
[0110]
下面参照图8描述根据本技术实施例的计算机可读存储介质。
[0111]
如图8所示,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器300执行,例如,被图8中的一个处理器300执行,可使得上述一个或多个处理器300执行上述方法实施例中的数据库快照查询方法。例如,执行以上描述的图1中的方法。
[0112]
以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0113]
通过以上的实施方式的描述,本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件
或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质和通信介质。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读信号、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0114]
上面结合附图对本技术实施例作了详细说明,但是本技术不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本技术宗旨的前提下作出各种变化。此外,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献