CN104216792A - 数据备份的方法及内存数据库存储引擎 - Google Patents

数据备份的方法及内存数据库存储引擎 Download PDF

Info

Publication number
CN104216792A
CN104216792A CN201310208187.XA CN201310208187A CN104216792A CN 104216792 A CN104216792 A CN 104216792A CN 201310208187 A CN201310208187 A CN 201310208187A CN 104216792 A CN104216792 A CN 104216792A
Authority
CN
China
Prior art keywords
page
backed
snapshot
data
storage space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310208187.XA
Other languages
English (en)
Other versions
CN104216792B (zh
Inventor
梁远胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Huawei Software Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310208187.XA priority Critical patent/CN104216792B/zh
Publication of CN104216792A publication Critical patent/CN104216792A/zh
Application granted granted Critical
Publication of CN104216792B publication Critical patent/CN104216792B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据备份的方法及内存数据库存储引擎,涉及数据处理领域。本发明通过为待备份页设置用于存储原始数据的快照页,来保证即使在数据备份进程中进行数据修改也可以保证能够备份到原始数据,从而保证备份结束时得到的备份数据与备份开始时的数据保持一致。本发明提供的方法可以应用于数据备份和数据修改流程中。

Description

数据备份的方法及内存数据库存储引擎
技术领域
本发明涉及数据处理领域,尤其涉及一种数据备份的方法及内存数据库存储引擎。
背景技术
在目前的内存数据库***中,所有数据都存放在内存中,以便提供高性能数据库服务。为了进一步保证内存数据库的可用性,还提供内存数据库的备份和恢复功能:用户首先对内存中的数据进行备份,将数据备份到磁盘文件中,当内存数据库出现故障后,再将备份的数据用于数据恢复。
在已有实现方法中,对内存数据库进行备份时,一般按页的方式进行备份,也就是说,将内存数据以页为单位进行分割,形成内存页,然后依次按页将内存数据备份到磁盘文件。并且,特别在备份过程中待备份内存页中的数据被修改的时候,一般都优先进行修改然后再进行备份,而且,为了保证数据的一致性,还需要备份用于记录这些修改的重做日志文件到磁盘文件中。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:一般而言,当对某个对象进行备份时,用户希望得到的备份数据是备份发生时的数据。但是从上述现有技术的描述中可以得知,通过现有技术备份用户最终备份得到的内存数据库的数据是备份结束时的数据,而不是备份开始时的数据。尤其随着内存数据库容量的增大,备份时间随之变长,备份结束时和备份开始时的数据出现差异的情况会越来越明显,从而很难保证数据备份的时效性。
发明内容
本发明的实施例提供一种数据备份的方法及内存数据库存储引擎,能够保证数据备份的时效性。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种数据备份的方法,包括:
获取当前待备份页的标识;
根据所述当前待备份页的标识,从快照页存储空间中查找与所述当前待备份页对应的快照页,从与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行备份,其中,所述当前待备份页对应的快照页存储了所述当前待备份页在备份进程启动时存储的原始数据;
释放与所述当前待备份页对应的快照页所占用的存储空间。
结合第一方面,在第一方面的第一种可能的实现方式中,在释放所述当前待备份页对应的快照页所占用的存储空间之后,还包括:
获取其余待备份页的标识,其中所述其余待备份页为除了当前待备份页之外的待备份页;
根据所述其余待备份页的标识,从快照页存储空间中查找与所述其余待备份页各自对应的快照页;
当查找到所述其余待备份页中的至少一个存在对应的快照页,则优先从每个已查找到的快照页中获取待备份页的原始数据进行备份,并释放已备份的快照页所占用的存储空间;
在对每个已查找到的快照页内存储的原始数据完成备份之后,直接从不存在对应快照页的其余待备份页中获取数据进行备份。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述从与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行备份包括:
从所述快照页存储空间中检测在所述其余备份页中,是否存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的;
若存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的,则优先从与所述当前待备份页相应的快照页所占用的存储空间连续的快照页中获取待备份页的原始数据进行备份,然后从与所述当前待备份页相应的快照页所占用的存储空间不连续的快照页中获取待备份页的原始数据进行备份。
结合第一方面或第一方面的前两种可能的实现方式之一,在第三种可能的实现方式中,在获取当前待备份页的标识之前,还包括:
接收数据修改请求,所述数据修改请求携带有待修改数据所在页的标识;
根据所述待修改数据所在页的标识,确定当前待修改数据在待备份页中,根据所述待修改数据所在待备份页存储的原始数据,在快照页存储空间为所述待修改数据所在待备份页分配一个快照页,并使用所述待修改数据所在待备份页的标识进行标记;
将所述待备份页存储的原始数据复制到分配好的快照页进行存储;
对所述待备份页内的待修改数据进行修改。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,当快照页存储空间的剩余空间小于为所述待修改数据所在待备份页分配一个快照页所占用的存储空间时,对所述待备份页存储的原始数据进行备份;
对所述待备份页内的待修改数据进行修改。
第二方面,本发明实施例提供了一种内存数据库存储引擎,包括:
获取单元,用于获取当前待备份页的标识;
查找单元,用于根据所述获取单元获取的当前待备份页的标识,从快照页存储空间中查找与所述当前待备份页对应的快照页;其中,所述当前待备份页对应的快照页存储了所述当前待备份页在备份进程启动时存储的原始数据;
备份单元,用于从所述查找单元查找到的与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行备份;
资源释放单元,用于释放所述备份单元已备份的与所述当前待备份页对应的快照页所占用的存储空间。
结合第二方面,在第二方面的第一种可能的实现方式中,所述获取单元还用于获取其余待备份页的标识,其中所述其余待备份页为除了当前待备份页之外的待备份页;
所述查找单元,还用于根据所述获取单元获取的所述其余待备份页的标识,从快照页存储空间中查找与其余待备份页各自对应的快照页;
所述备份单元,用于当所述查找单元查找到所述其余待备份页中的至少一个存在对应的快照页,则优先从每个已查找到的快照页中获取待备份页的原始数据进行备份;以及,直接从不存在对应快照页的其余待备份页中获取数据进行备份;
所述资源释放单元,用于释放所述备份单元已备份的快照页所占用的存储空间。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述备份单元包括:
检测模块,用于从所述快照页存储空间中检测在所述其余备份页中,是否存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的;
备份模块,用于在所述检测模块存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的时,则优先从与所述当前待备份页相应的快照页所占用的存储空间连续的快照页中获取待备份页的原始数据进行备份,然后从与所述当前待备份页相应的快照页所占用的存储空间不连续的快照页中获取待备份页的原始数据进行备份。
结合第二方面或第二方面的前两种可能的实现方式之一,在第三种可能的实现方式中,还包括:
接收单元,用于接收数据修改请求,所述数据修改请求携带有待修改数据所在页的标识;
确定单元,用于根据所述待修改数据所在页的标识,确定当前待修改数据在待备份页中;
分配单元,用于根据所述确定单元确定的待修改数据所在待备份页存储的原始数据,在快照页存储空间为所述待修改数据所在待备份页分配一个快照页,并使用所述待修改数据所在待备份页的标识进行标记;
复制单元,用于将所述待备份页存储的原始数据复制到分配好的快照页进行存储;
修改单元,用于对所述待备份页内的待修改数据进行修改。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述备份单元用于当在快照页存储空间的剩余空间小于为所述待修改数据所在待备份页分配一个快照页所占用的存储空间时,对所述待备份页存储的原始数据进行备份;
所述修改单元,用于对所述待备份页内的待修改数据进行修改。
本发明实施例提供的数据备份的方法及内存数据库存储引擎,通过将为待备份页中的数据提供快照页进行存储,以保证即使在备份进程中存在数据被修改,也可以保证修改前的数据可以被保存下来,使得备份进程得到的数据都是备份进程开始时的数据,相比于现有技术中若发生数据修改则只能存储修改后的数据相比,可以保证所有备份数据存储的都是备份开始时的数据,使进而有效保证数据备份的时效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种内存数据库***的组成架构图;
图2为本发明实施例提供的一种数据备份的方法流程图;
图3为本发明实施例提供的另一种数据备份的方法流程图;
图4为本发明实施例提供的另一种数据备份的方法流程图;
图5为本发明实施例提供的一种数据修改的方法流程图;
图6为本发明实施例提供的另一种数据修改的方法流程图;
图7为本发明实施例提供的一种内存数据库存储引擎的装置结构图;
图8为本发明实施例提供的另一种内存数据库存储引擎的装置结构图;
图9为本发明实施例提供的另一种内存数据库存储引擎的装置结构图;
图10为本发明实施例提供的另一种内存数据库存储引擎的装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据备份和修改的方法,均可以应用于如图1所示的内存数据库***,该***可包括SQL会话模块、内存数据库SQL引擎、内存数据库存储引擎、备份数据文件模块。
其中,SQL会话模块用于为各个SQL客户端建立会话,以处理客户端对内存数据的备份和修改的请求。
内存数据库SQL引擎用于调用内存数据库存储引擎的数据读写接口来对内存数据库存储引擎内部存储的数据进行备份和修改。
内存数据库存储引擎用于存储所有内存数据和作为部分内存数据的镜像副本的快照页数据;并且,快照页的数据拥有独立的存储空间,且不能被修改,是在内存数据被修改时保留的修改前的数据。
备份数据文件模块用于存储所有备份数据。
基于上述内存数据库***架构,本发明提供的数据备份方法如图2所示,一般由内存数据库存储引擎实现,包括:
101、获取当前待备份页的标识。
其中,内存数据库中的每个数据页均有各自的标识,用以与其它数据页进行区分。通常可以使用编号、哈希值等实现。而本发明涉及的待备份页是指在备份进程启动时需要进行备份的数据页的统称。
102、根据当前待备份页的标识,从快照页存储空间中查找与所述当前待备份页对应的快照页,所述与所述当前待备份页对应的快照页存储了所述当前待备份页在备份进程启动时存储的原始数据。
其中,需要说明的是,快照页就是备份页的镜像,优先存储在内存空间中,以便可以被快速写入和读取,其本身存储架构和相关的写入读取方法均可以参照内存页的相关实现方式。并且,为了查找方便,快照页的生成过程中会使待备份页的标识进行标记,以保证快照页与待备份页一一对应。
103、从与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行备份。
值得说明的是,当待备份的数据存储在多个备份页时,则需要依次对每个备份页进行备份,每个待备份页的备份过程均参照步骤101至103的流程步骤。
在此补充说明,若确定当前待备份页不存在相应的快照页,则直接从所述当前待备份页中获取数据进行备份即可。
104、释放所述当前待备份页对应的快照页所占用的存储空间。
本发明实施例提供的数据备份的方法,通过将为待备份页中的数据提供快照页进行存储,以保证即使在备份进程中存在数据被修改,也可以保证修改前的数据可以被保存下来,使得备份进程得到的数据都是备份进程开始时的数据,相比于现有技术中若发生数据修改则只能存储修改后的数据相比,可以保证所有备份数据存储的都是备份开始时的数据,使进而有效保证数据备份的时效性。
并且,在完成对部分被修改的内存数据备份之后,就直接删除用于保存修改前的内存数据的快照页,来释放不必要的存储空间资源,从而为其它待备份数据的快照页提供足够的存储空间,进而保证每个被修改的内存数据在备份前都能够有快照页来保存修改前的数据信息,用以保证所有备份数据存储的都是备份开始时的数据。
在备份进程启动后,为了尽可能让所有被修改的数据都能够有足够的存储空间,因此,在执行步骤101至104的基础上,在执行步骤104之后,如图3所示,本发明实施例提供的数据备份的方法的另一种实施方式中还包括:
105、获取其余待备份页的标识。
其中,所述其余待备份页为除了当前待备份页之外的待备份页,并且,此处描述的标识与步骤101的有关描述相同。
106、根据所述其余待备份页的标识,从快照页存储空间中查找与其余待备份页各自对应的快照页。当查找到所述其余待备份页中的至少一个存在对应的快照页,则先执行107,再执行108;否则直接执行108。
107、从每个已查找到的快照页中获取待备份页的原始数据进行备份,并释放已备份的快照页所占用的存储空间。
108、直接从不存在对应快照页的其余待备份页中获取数据进行备份。
在本实施方式中,在优先对存在快照页的待备份页进行备份,并在备份后释放所有快照页的存储空间,来释放不必要的存储空间资源,从而为其它待备份数据的快照页提供足够的存储空间,进而保证每个被修改的内存数据在备份前都能够有快照页来保存修改前的数据信息,用以保证所有备份数据存储的都是备份开始时的数据。
在执行步骤101至108的基础上,本发明实施例提供的数据备份的方法的另一种实施方式中,对步骤107的实现提供了一种具体实施方式,如图4所示,包括:
1071、从所述快照页存储空间中检测在所述其余备份页中,是否存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的。
1072、若存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的,则优先从与所述当前待备份页相应的快照页所占用的存储空间连续的快照页中获取待备份页的原始数据进行备份,然后从与所述当前待备份页相应的快照页所占用的存储空间不连续的快照页中获取待备份页的原始数据进行备份。
在此补充说明,在执行步骤1071之后,若不存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的,则从其余存在快照页的待备份页中再选取一个进行步骤101至104所示备份流程,或者,执行步骤101至108所示的备份流程即可。
在本实施方式中,在优先对存储空间连续的快照页中的数据信息进行备份,以避免出现离散的磁盘输入输出进程,提高备份速度。
基于如图1所示的内存数据库***,本发明实施例还提供了用于数据修改的方法流程,需要在备份流程已经启动时执行与步骤101之前,如图5所示,包括:
201、接收数据修改请求,所述数据修改请求携带有待修改数据所在页的标识。
其中,此处描述的标识与步骤101的有关描述相同。
202、根据所述待修改数据所在页的标识,确定当前待修改数据在待备份页中。
其中,步骤202的具体实现方法就是使用所述待修改数据所在页的标识与所有待备份页的标识一一进行比对,一样则确定待修改数据在待备份页中,否则认为待修改数据不在待备份页中。
203、根据所述待修改数据所在待备份页存储的原始数据,在快照页存储空间为所述待修改数据所在待备份页分配一个快照页,并使用所述待修改数据所在待备份页的标识进行标记。
其中,为所述待备份页分配一个快照页的流程就是在快照页存储空间为待备份页分配一块存储空间,并将该块存储空间设置为页的存储形式。
204、将所述待备份页存储的原始数据复制到分配好的快照页进行存储。
205、对所述待备份页内的待修改数据进行修改。
另外,执行步骤202之后,当确定待修改数据不在待备份页中时,则直接对待备份页存储的原始数据进行修改。
本发明实施例提供的数据修改流程,通过在修改前将原始数据保存至快照页,然后只对所述待备份页存储的原始数据进行修改,而不对快照页中的原始数据进行修改,使得在备份过程中可以获取到备份开始时各个待备份页的原始数据,从而保证所有备份数据存储的都是备份开始时的数据,使进而有效保证数据备份的时效性。
本发明实施例还提供了数据修改的另一种实施方式,如图6所示,在所述步骤203无法执行时,即当在快照页存储空间的剩余空间小于为所述待修改数据所在待备份页分配一个快照页所占用的存储空间时,还包括:
206、对所述待备份页存储的原始数据进行备份。
207、对所述待备份页内的待修改数据进行修改。
在本实施方式,当无法为待备份页分配快照页时,优先进行备份再进行修改,以保证所有备份数据存储的都是备份开始时的数据,使进而有效保证数据备份的时效性。
本发明实施例还提供了一种内存数据库存储引擎,可以用于实现如图2至图6所示的方法流程,如图7所示,该装置包括:
获取单元31,用于获取当前待备份页的标识。
查找单元32,用于根据所述获取单元31获取的当前待备份页的标识,从快照页存储空间中查找与所述当前待备份页对应的快照页,所述当前待备份页对应的快照页存储了所述当前待备份页在备份进程启动时存储的原始数据。
备份单元33,用于从所述查找单元32查找到的与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行备份。
资源释放单元34,用于释放所述备份单元33已备份的与所述当前待备份页对应的快照页所占用的存储空间。
可选的是,所述获取单元31还用于获取其余待备份页的标识,其中所述其余待备份页为除了当前待备份页之外的待备份页。
所述查找单元32,还用于根据所述获取单元31获取的所述其余待备份页的标识,从快照页存储空间中查找与其余待备份页各自对应的快照页。
所述备份单元33,用于当所述查找单元32查找到所述其余待备份页中的至少一个存在对应的快照页,则优先从每个已查找到的快照页中获取待备份页的原始数据进行备份;以及,直接从不存在对应快照页的其余待备份页中获取数据进行备份。
所述资源释放单元34,用于释放所述备份单元33已备份的快照页所占用的存储空间。
可选的是,如图8所示,所述备份单元33包括:
检测模块331,用于从所述快照页存储空间中检测在所述其余备份页中,是否存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的。
备份模块332,用于在所述检测模块331存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的时,则优先从与所述当前待备份页相应的快照页所占用的存储空间连续的快照页中获取待备份页的原始数据进行备份,然后从与所述当前待备份页相应的快照页所占用的存储空间不连续的快照页中获取待备份页的原始数据进行备份。
可选的是,如图9所示,还包括:
接收单元41,用于接收数据修改请求,所述数据修改请求携带有待修改数据所在页的标识。
确定单元42,用于根据所述待修改数据所在页的标识,确定当前待修改数据在待备份页中。
分配单元43,用于根据所述确定单元42确定的待修改数据所在待备份页存储的原始数据,在快照页存储空间为所述待修改数据所在待备份页分配一个快照页,并使用所述待修改数据所在待备份页的标识进行标记。
复制单元44,用于将所述待备份页存储的原始数据复制到分配好的快照页进行存储。
修改单元45,用于对所述待备份页内的待修改数据进行修改。
可选的是,所述备份单元44用于当在快照页存储空间的剩余空间小于为所述待修改数据所在待备份页分配一个快照页所占用的存储空间时,对所述待备份页存储的原始数据进行备份。
所述修改单元45,用于对所述待备份页内的待修改数据进行修改。
本发明实施例提供的内存数据库存储引擎,通过将为待备份页中的数据提供快照页进行存储,以保证即使在备份进程中存在数据被修改,也可以保证修改前的数据可以被保存下来,使得备份进程得到的数据都是备份进程开始时的数据,相比于现有技术中若发生数据修改则只能存储修改后的数据相比,可以保证所有备份数据存储的都是备份开始时的数据,使进而有效保证数据备份的时效性。
本发明实施例还提供了一种内存数据库存储引擎,如图10所示,包括处理器51和输入输出接口52,所述输入输出接口52用于处理器51与外部器件进行通信。
其中,所述处理器51用于获取当前待备份页的标识;根据所述当前待备份页的标识,从快照页存储空间中查找与所述当前待备份页对应的快照页,从与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行备份,其中,所述当前待备份页对应的快照页存储了所述当前待备份页在备份进程启动时存储的原始数据;释放与所述当前待备份页对应的快照页所占用的存储空间。
可选的是,所述处理器51还用于获取其余待备份页的标识,其中所述其余待备份页为除了当前待备份页之外的待备份页;根据所述其余待备份页的标识,从快照页存储空间中查找与所述其余待备份页各自对应的快照页;当查找到所述其余待备份页中的至少一个存在对应的快照页,则优先从每个已查找到的快照页中获取待备份页的原始数据进行备份,并释放已备份的快照页所占用的存储空间;在对每个已查找到的快照页内存储的原始数据完成备份之后,直接从不存在对应快照页的其余待备份页中获取数据进行备份。
可选的是,所述处理器51还具体用于从所述快照页存储空间中检测在所述其余备份页中,是否存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的;若存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的,则优先从与所述当前待备份页相应的快照页所占用的存储空间连续的快照页中获取待备份页的原始数据进行备份,然后从与所述当前待备份页相应的快照页所占用的存储空间不连续的快照页中获取待备份页的原始数据进行备份。
可选的是,所述处理器51还用于通过所述输入输出接口52接收数据修改请求,所述数据修改请求携带有待修改数据所在页的标识;根据所述待修改数据所在页的标识,确定当前待修改数据在待备份页中,根据所述待修改数据所在待备份页存储的原始数据,在快照页存储空间为所述待修改数据所在待备份页分配一个快照页,并使用所述待修改数据所在待备份页的标识进行标记;将所述待备份页存储的原始数据复制到分配好的快照页进行存储;对所述待备份页内的待修改数据进行修改。
可选的是,所述处理器51还用于当在快照页存储空间的剩余空间小于为所述待修改数据所在待备份页分配一个快照页所占用的存储空间时,对所述待备份页存储的原始数据进行备份;对所述待备份页内的待修改数据进行修改。
本发明实施例提供的内存数据库存储引擎,通过将为待备份页中的数据提供快照页进行存储,以保证即使在备份进程中存在数据被修改,也可以保证修改前的数据可以被保存下来,使得备份进程得到的数据都是备份进程开始时的数据,相比于现有技术中若发生数据修改则只能存储修改后的数据相比,可以保证所有备份数据存储的都是备份开始时的数据,使进而有效保证数据备份的时效性。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种数据备份的方法,其特征在于,包括:
获取当前待备份页的标识;
根据所述当前待备份页的标识,从快照页存储空间中查找与所述当前待备份页对应的快照页,从与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行备份,其中,所述当前待备份页对应的快照页存储了所述当前待备份页在备份进程启动时存储的原始数据;
释放与所述当前待备份页对应的快照页所占用的存储空间。
2.根据权利要求1所述的方法,其特征在于,在释放所述当前待备份页对应的快照页所占用的存储空间之后,还包括:
获取其余待备份页的标识,其中所述其余待备份页为除了当前待备份页之外的待备份页;
根据所述其余待备份页的标识,从快照页存储空间中查找与所述其余待备份页各自对应的快照页;
当查找到所述其余待备份页中的至少一个存在对应的快照页,则优先从每个已查找到的快照页中获取待备份页的原始数据进行备份,并释放已备份的快照页所占用的存储空间;
在对每个已查找到的快照页内存储的原始数据完成备份之后,直接从不存在对应快照页的其余待备份页中获取数据进行备份。
3.根据权利要求2所述的方法,其特征在于,所述从与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行备份包括:
从所述快照页存储空间中检测在所述其余备份页中,是否存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的;
若存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的,则优先从与所述当前待备份页相应的快照页所占用的存储空间连续的快照页中获取待备份页的原始数据进行备份,然后从与所述当前待备份页相应的快照页所占用的存储空间不连续的快照页中获取待备份页的原始数据进行备份。
4.根据权利要求1至3任意一项所述的方法,其特征在于,在获取当前待备份页的标识之前,还包括:
接收数据修改请求,所述数据修改请求携带有待修改数据所在页的标识;
根据所述待修改数据所在页的标识,确定当前待修改数据在待备份页中,根据所述待修改数据所在待备份页存储的原始数据,在快照页存储空间为所述待修改数据所在待备份页分配一个快照页,并使用所述待修改数据所在待备份页的标识进行标记;
将所述待备份页存储的原始数据复制到分配好的快照页进行存储;
对所述待备份页内的待修改数据进行修改。
5.根据权利要求4所述的方法,其特征在于,还包括:
当快照页存储空间的剩余空间小于为所述待修改数据所在待备份页分配一个快照页所占用的存储空间时,对所述待备份页存储的原始数据进行备份;
对所述待备份页内的待修改数据进行修改。
6.一种内存数据库存储引擎,其特征在于,包括:
获取单元,用于获取当前待备份页的标识;
查找单元,用于根据所述获取单元获取的当前待备份页的标识,从快照页存储空间中查找与所述当前待备份页对应的快照页;其中,所述当前待备份页对应的快照页存储了所述当前待备份页在备份进程启动时存储的原始数据;
备份单元,用于从所述查找单元查找到的与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行备份;
资源释放单元,用于释放所述备份单元已备份的与所述当前待备份页对应的快照页所占用的存储空间。
7.根据权利要求6所述的内存数据库存储引擎,其特征在于,所述获取单元还用于获取其余待备份页的标识,其中所述其余待备份页为除了当前待备份页之外的待备份页;
所述查找单元,还用于根据所述获取单元获取的所述其余待备份页的标识,从快照页存储空间中查找与其余待备份页各自对应的快照页;
所述备份单元,用于当所述查找单元查找到所述其余待备份页中的至少一个存在对应的快照页,则优先从每个已查找到的快照页中获取待备份页的原始数据进行备份;以及,直接从不存在对应快照页的其余待备份页中获取数据进行备份;
所述资源释放单元,用于释放所述备份单元已备份的快照页所占用的存储空间。
8.根据权利要求7所述的内存数据库存储引擎,其特征在于,所述备份单元包括:
检测模块,用于从所述快照页存储空间中检测在所述其余备份页中,是否存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的;
备份模块,用于在所述检测模块存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的时,则优先从与所述当前待备份页相应的快照页所占用的存储空间连续的快照页中获取待备份页的原始数据进行备份,然后从与所述当前待备份页相应的快照页所占用的存储空间不连续的快照页中获取待备份页的原始数据进行备份。
9.根据权利要求6至8任意一项所述的内存数据库存储引擎,其特征在于,还包括:
接收单元,用于接收数据修改请求,所述数据修改请求携带有待修改数据所在页的标识;
确定单元,用于根据所述待修改数据所在页的标识,确定当前待修改数据在待备份页中;
分配单元,用于根据所述确定单元确定的待修改数据所在待备份页存储的原始数据,在快照页存储空间为所述待修改数据所在待备份页分配一个快照页,并使用所述待修改数据所在待备份页的标识进行标记;
复制单元,用于将所述待备份页存储的原始数据复制到分配好的快照页进行存储;
修改单元,用于对所述待备份页内的待修改数据进行修改。
10.根据权利要求9所述的内存数据库存储引擎,其特征在于,所述备份单元用于当在快照页存储空间的剩余空间小于为所述待修改数据所在待备份页分配一个快照页所占用的存储空间时,对所述待备份页存储的原始数据进行备份;
所述修改单元,用于对所述待备份页内的待修改数据进行修改。
CN201310208187.XA 2013-05-29 2013-05-29 数据备份的方法及内存数据库存储引擎 Expired - Fee Related CN104216792B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310208187.XA CN104216792B (zh) 2013-05-29 2013-05-29 数据备份的方法及内存数据库存储引擎

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310208187.XA CN104216792B (zh) 2013-05-29 2013-05-29 数据备份的方法及内存数据库存储引擎

Publications (2)

Publication Number Publication Date
CN104216792A true CN104216792A (zh) 2014-12-17
CN104216792B CN104216792B (zh) 2017-05-31

Family

ID=52098313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310208187.XA Expired - Fee Related CN104216792B (zh) 2013-05-29 2013-05-29 数据备份的方法及内存数据库存储引擎

Country Status (1)

Country Link
CN (1) CN104216792B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019130A (zh) * 2017-12-06 2019-07-16 阿里巴巴集团控股有限公司 一种数据库更新的方法及装置
CN110032541A (zh) * 2019-04-12 2019-07-19 苏州浪潮智能科技有限公司 一种可写快照实现方法及***
CN110688252A (zh) * 2019-08-26 2020-01-14 无锡华云数据技术服务有限公司 一种数据的恢复方法、备份方法、装置及存储介质
CN111324295A (zh) * 2018-12-17 2020-06-23 ***通信集团四川有限公司 数据迁移的方法、装置、设备及介质
CN112559243A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 数据快照方法、装置、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567262A (zh) * 2003-06-10 2005-01-19 联想(北京)有限公司 基于数据卷快照的在线数据备份方法
US20070101063A1 (en) * 2004-02-27 2007-05-03 Hitachi, Ltd. System recovery method and computer system using the same
CN101201774A (zh) * 2006-12-15 2008-06-18 英业达股份有限公司 磁盘快照的方法
CN101295276A (zh) * 2008-06-20 2008-10-29 中国科学院计算技术研究所 一种磁盘级数据备份***和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567262A (zh) * 2003-06-10 2005-01-19 联想(北京)有限公司 基于数据卷快照的在线数据备份方法
US20070101063A1 (en) * 2004-02-27 2007-05-03 Hitachi, Ltd. System recovery method and computer system using the same
CN101201774A (zh) * 2006-12-15 2008-06-18 英业达股份有限公司 磁盘快照的方法
CN101295276A (zh) * 2008-06-20 2008-10-29 中国科学院计算技术研究所 一种磁盘级数据备份***和方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019130A (zh) * 2017-12-06 2019-07-16 阿里巴巴集团控股有限公司 一种数据库更新的方法及装置
CN110019130B (zh) * 2017-12-06 2022-09-06 阿里巴巴集团控股有限公司 一种数据库更新的方法及装置
CN111324295A (zh) * 2018-12-17 2020-06-23 ***通信集团四川有限公司 数据迁移的方法、装置、设备及介质
CN111324295B (zh) * 2018-12-17 2023-09-19 ***通信集团四川有限公司 数据迁移的方法、装置、设备及介质
CN110032541A (zh) * 2019-04-12 2019-07-19 苏州浪潮智能科技有限公司 一种可写快照实现方法及***
CN110688252A (zh) * 2019-08-26 2020-01-14 无锡华云数据技术服务有限公司 一种数据的恢复方法、备份方法、装置及存储介质
CN112559243A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 数据快照方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN104216792B (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
US9116903B2 (en) Method and system for inserting data records into files
KR101556435B1 (ko) 데이터베이스 백업본 복구 방법 및 그 장치
JP4419884B2 (ja) データ複製装置、方法及びプログラム並びに記憶システム
CN104216792A (zh) 数据备份的方法及内存数据库存储引擎
US11397537B2 (en) Data restoration method and apparatus
US10049020B2 (en) Point in time recovery on a database
CN105573859A (zh) 一种数据库的数据恢复方法和设备
WO2017185210A1 (zh) 一种使用布隆过滤器过滤文件的方法及装置
US10007436B2 (en) Storage control apparatus and control method of storage control apparatus
CN107391544A (zh) 列式存储数据的处理方法、装置、设备及计算机储存介质
CN107590144A (zh) 一种文件存储方法和终端
CN111666046B (zh) 一种数据存储方法、装置及设备
JP2015528957A (ja) 分散ファイルシステム、ファイルアクセス方法及びクライアントデバイス
CN110019063B (zh) 计算节点数据容灾回放的方法、终端设备及存储介质
US7581135B2 (en) System and method for storing and restoring a data file using several storage media
US8015375B1 (en) Methods, systems, and computer program products for parallel processing and saving tracking information for multiple write requests in a data replication environment including multiple storage devices
CN114924911B (zh) Windows操作***有效数据备份方法、装置、设备和存储介质
US9235349B2 (en) Data duplication system, data duplication method, and program thereof
CN108984343B (zh) 一种基于内容分析的虚拟机备份及存储管理方法
CN114116317A (zh) 一种数据处理方法、装置、设备及介质
CN113986846A (zh) 数据处理方法、***、设备及存储介质
CN111241099A (zh) 一种工业大数据存储方法及装置
WO2017050029A1 (zh) 一种数据块处理的方法、装置及设备
CN116257531B (zh) 一种数据库空间回收方法
CN117170942B (zh) 一种基于文件***快照的数据库备份方法以及相关设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170531

Termination date: 20200529