数据备份的方法及内存数据库存储引擎的制作方法

文档序号:6503469阅读:176来源:国知局
数据备份的方法及内存数据库存储引擎的制作方法
【专利摘要】本发明公开了一种数据备份的方法及内存数据库存储引擎,涉及数据处理领域。本发明通过为待备份页设置用于存储原始数据的快照页,来保证即使在数据备份进程中进行数据修改也可以保证能够备份到原始数据,从而保证备份结束时得到的备份数据与备份开始时的数据保持一致。本发明提供的方法可以应用于数据备份和数据修改流程中。
【专利说明】数据备份的方法及内存数据库存储引擎

【技术领域】
[0001] 本发明涉及数据处理领域,尤其涉及一种数据备份的方法及内存数据库存储引 擎。

【背景技术】
[0002] 在目前的内存数据库系统中,所有数据都存放在内存中,以便提供高性能数据库 服务。为了进一步保证内存数据库的可用性,还提供内存数据库的备份和恢复功能:用户首 先对内存中的数据进行备份,将数据备份到磁盘文件中,当内存数据库出现故障后,再将备 份的数据用于数据恢复。
[0003] 在已有实现方法中,对内存数据库进行备份时,一般按页的方式进行备份,也就是 说,将内存数据以页为单位进行分割,形成内存页,然后依次按页将内存数据备份到磁盘文 件。并且,特别在备份过程中待备份内存页中的数据被修改的时候,一般都优先进行修改然 后再进行备份,而且,为了保证数据的一致性,还需要备份用于记录这些修改的重做日志文 件到磁盘文件中。
[0004] 在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:一般而言,当 对某个对象进行备份时,用户希望得到的备份数据是备份发生时的数据。但是从上述现有 技术的描述中可以得知,通过现有技术备份用户最终备份得到的内存数据库的数据是备份 结束时的数据,而不是备份开始时的数据。尤其随着内存数据库容量的增大,备份时间随之 变长,备份结束时和备份开始时的数据出现差异的情况会越来越明显,从而很难保证数据 备份的时效性。


【发明内容】

[0005] 本发明的实施例提供一种数据备份的方法及内存数据库存储引擎,能够保证数据 备份的时效性。
[0006] 为达到上述目的,本发明的实施例采用如下技术方案:
[0007] 第一方面,本发明实施例提供了一种数据备份的方法,包括:
[0008] 获取当前待备份页的标识;
[0009] 根据所述当前待备份页的标识,从快照页存储空间中查找与所述当前待备份页对 应的快照页,从与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数 据,并对所述当前待备份页对应的原始数据进行备份,其中,所述当前待备份页对应的快照 页存储了所述当前待备份页在备份进程启动时存储的原始数据;
[0010] 释放与所述当前待备份页对应的快照页所占用的存储空间。
[0011] 结合第一方面,在第一方面的第一种可能的实现方式中,在释放所述当前待备份 页对应的快照页所占用的存储空间之后,还包括:
[0012] 获取其余待备份页的标识,其中所述其余待备份页为除了当前待备份页之外的待 备份页;
[0013] 根据所述其余待备份页的标识,从快照页存储空间中查找与所述其余待备份页各 自对应的快照页;
[0014] 当查找到所述其余待备份页中的至少一个存在对应的快照页,则优先从每个已查 找到的快照页中获取待备份页的原始数据进行备份,并释放已备份的快照页所占用的存储 空间;
[0015] 在对每个已查找到的快照页内存储的原始数据完成备份之后,直接从不存在对应 快照页的其余待备份页中获取数据进行备份。
[0016] 结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述从与 所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数据,并对所述当前 待备份页对应的原始数据进行备份包括:
[0017] 从所述快照页存储空间中检测在所述其余备份页中,是否存在所述其余待备份页 相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是 连续的;
[0018] 若存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页 相应的快照页所占用的存储空间是连续的,则优先从与所述当前待备份页相应的快照页所 占用的存储空间连续的快照页中获取待备份页的原始数据进行备份,然后从与所述当前待 备份页相应的快照页所占用的存储空间不连续的快照页中获取待备份页的原始数据进行 备份。
[0019] 结合第一方面或第一方面的前两种可能的实现方式之一,在第三种可能的实现方 式中,在获取当前待备份页的标识之前,还包括:
[0020] 接收数据修改请求,所述数据修改请求携带有待修改数据所在页的标识;
[0021] 根据所述待修改数据所在页的标识,确定当前待修改数据在待备份页中,根据所 述待修改数据所在待备份页存储的原始数据,在快照页存储空间为所述待修改数据所在待 备份页分配一个快照页,并使用所述待修改数据所在待备份页的标识进行标记;
[0022] 将所述待备份页存储的原始数据复制到分配好的快照页进行存储;
[0023] 对所述待备份页内的待修改数据进行修改。
[0024] 结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,当快照页 存储空间的剩余空间小于为所述待修改数据所在待备份页分配一个快照页所占用的存储 空间时,对所述待备份页存储的原始数据进行备份;
[0025] 对所述待备份页内的待修改数据进行修改。
[0026] 第二方面,本发明实施例提供了一种内存数据库存储引擎,包括:
[0027] 获取单元,用于获取当前待备份页的标识;
[0028] 查找单元,用于根据所述获取单元获取的当前待备份页的标识,从快照页存储空 间中查找与所述当前待备份页对应的快照页;其中,所述当前待备份页对应的快照页存储 了所述当前待备份页在备份进程启动时存储的原始数据;
[0029] 备份单元,用于从所述查找单元查找到的与所述当前待备份页对应的快照页中获 取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行备份;
[0030] 资源释放单元,用于释放所述备份单元已备份的与所述当前待备份页对应的快照 页所占用的存储空间。
[0031] 结合第二方面,在第二方面的第一种可能的实现方式中,所述获取单元还用于获 取其余待备份页的标识,其中所述其余待备份页为除了当前待备份页之外的待备份页;
[0032] 所述查找单元,还用于根据所述获取单元获取的所述其余待备份页的标识,从快 照页存储空间中查找与其余待备份页各自对应的快照页;
[0033] 所述备份单元,用于当所述查找单元查找到所述其余待备份页中的至少一个存在 对应的快照页,则优先从每个已查找到的快照页中获取待备份页的原始数据进行备份;以 及,直接从不存在对应快照页的其余待备份页中获取数据进行备份;
[0034] 所述资源释放单元,用于释放所述备份单元已备份的快照页所占用的存储空间。
[0035] 结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述备份 单元包括:
[0036] 检测模块,用于从所述快照页存储空间中检测在所述其余备份页中,是否存在所 述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占 用的存储空间是连续的;
[0037] 备份模块,用于在所述检测模块存在所述其余待备份页相应的快照页所占用的存 储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的时,则优先从与所述 当前待备份页相应的快照页所占用的存储空间连续的快照页中获取待备份页的原始数据 进行备份,然后从与所述当前待备份页相应的快照页所占用的存储空间不连续的快照页中 获取待备份页的原始数据进行备份。
[0038] 结合第二方面或第二方面的前两种可能的实现方式之一,在第三种可能的实现方 式中,还包括:
[0039] 接收单元,用于接收数据修改请求,所述数据修改请求携带有待修改数据所在页 的标识;
[0040] 确定单元,用于根据所述待修改数据所在页的标识,确定当前待修改数据在待备 份页中;
[0041] 分配单元,用于根据所述确定单元确定的待修改数据所在待备份页存储的原始数 据,在快照页存储空间为所述待修改数据所在待备份页分配一个快照页,并使用所述待修 改数据所在待备份页的标识进行标记;
[0042] 复制单元,用于将所述待备份页存储的原始数据复制到分配好的快照页进行存 储;
[0043] 修改单元,用于对所述待备份页内的待修改数据进行修改。
[0044] 结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述备份 单元用于当在快照页存储空间的剩余空间小于为所述待修改数据所在待备份页分配一个 快照页所占用的存储空间时,对所述待备份页存储的原始数据进行备份;
[0045] 所述修改单元,用于对所述待备份页内的待修改数据进行修改。
[0046] 本发明实施例提供的数据备份的方法及内存数据库存储引擎,通过将为待备份页 中的数据提供快照页进行存储,以保证即使在备份进程中存在数据被修改,也可以保证修 改前的数据可以被保存下来,使得备份进程得到的数据都是备份进程开始时的数据,相比 于现有技术中若发生数据修改则只能存储修改后的数据相比,可以保证所有备份数据存储 的都是备份开始时的数据,使进而有效保证数据备份的时效性。

【专利附图】

【附图说明】
[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0048] 图1为本发明实施例提供的一种内存数据库系统的组成架构图;
[0049] 图2为本发明实施例提供的一种数据备份的方法流程图;
[0050] 图3为本发明实施例提供的另一种数据备份的方法流程图;
[0051] 图4为本发明实施例提供的另一种数据备份的方法流程图;
[0052] 图5为本发明实施例提供的一种数据修改的方法流程图;
[0053] 图6为本发明实施例提供的另一种数据修改的方法流程图;
[0054] 图7为本发明实施例提供的一种内存数据库存储引擎的装置结构图;
[0055] 图8为本发明实施例提供的另一种内存数据库存储引擎的装置结构图;
[0056] 图9为本发明实施例提供的另一种内存数据库存储引擎的装置结构图;
[0057] 图10为本发明实施例提供的另一种内存数据库存储引擎的装置结构图。

【具体实施方式】
[0058] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0059] 本发明实施例提供了一种数据备份和修改的方法,均可以应用于如图1所示的内 存数据库系统,该系统可包括SQL会话模块、内存数据库SQL引擎、内存数据库存储引擎、备 份数据文件模块。
[0060] 其中,SQL会话模块用于为各个SQL客户端建立会话,以处理客户端对内存数据的 备份和修改的请求。
[0061] 内存数据库SQL引擎用于调用内存数据库存储引擎的数据读写接口来对内存数 据库存储引擎内部存储的数据进行备份和修改。
[0062]内存数据库存储引擎用于存储所有内存数据和作为部分内存数据的镜像副本的 快照页数据;并且,快照页的数据拥有独立的存储空间,且不能被修改,是在内存数据被修 改时保留的修改前的数据。
[0063] 备份数据文件模块用于存储所有备份数据。
[0064] 基于上述内存数据库系统架构,本发明提供的数据备份方法如图2所示,一般由 内存数据库存储引擎实现,包括:
[0065] 101、获取当前待备份页的标识。
[0066] 其中,内存数据库中的每个数据页均有各自的标识,用以与其它数据页进行区分。 通常可以使用编号、哈希值等实现。而本发明涉及的待备份页是指在备份进程启动时需要 进行备份的数据页的统称。
[0067] 102、根据当前待备份页的标识,从快照页存储空间中查找与所述当前待备份页对 应的快照页,所述与所述当前待备份页对应的快照页存储了所述当前待备份页在备份进程 启动时存储的原始数据。
[0068] 其中,需要说明的是,快照页就是备份页的镜像,优先存储在内存空间中,以便可 以被快速写入和读取,其本身存储架构和相关的写入读取方法均可以参照内存页的相关实 现方式。并且,为了查找方便,快照页的生成过程中会使待备份页的标识进行标记,以保证 快照页与待备份页一一对应。
[0069] 103、从与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始 数据,并对所述当前待备份页对应的原始数据进行备份。
[0070] 值得说明的是,当待备份的数据存储在多个备份页时,则需要依次对每个备份页 进行备份,每个待备份页的备份过程均参照步骤101至103的流程步骤。
[0071] 在此补充说明,若确定当前待备份页不存在相应的快照页,则直接从所述当前待 备份页中获取数据进行备份即可。
[0072] 104、释放所述当前待备份页对应的快照页所占用的存储空间。
[0073] 本发明实施例提供的数据备份的方法,通过将为待备份页中的数据提供快照页进 行存储,以保证即使在备份进程中存在数据被修改,也可以保证修改前的数据可以被保存 下来,使得备份进程得到的数据都是备份进程开始时的数据,相比于现有技术中若发生数 据修改则只能存储修改后的数据相比,可以保证所有备份数据存储的都是备份开始时的数 据,使进而有效保证数据备份的时效性。
[0074] 并且,在完成对部分被修改的内存数据备份之后,就直接删除用于保存修改前的 内存数据的快照页,来释放不必要的存储空间资源,从而为其它待备份数据的快照页提供 足够的存储空间,进而保证每个被修改的内存数据在备份前都能够有快照页来保存修改前 的数据信息,用以保证所有备份数据存储的都是备份开始时的数据。
[0075] 在备份进程启动后,为了尽可能让所有被修改的数据都能够有足够的存储空间, 因此,在执行步骤101至104的基础上,在执行步骤104之后,如图3所示,本发明实施例提 供的数据备份的方法的另一种实施方式中还包括:
[0076] 105、获取其余待备份页的标识。
[0077] 其中,所述其余待备份页为除了当前待备份页之外的待备份页,并且,此处描述的 标识与步骤101的有关描述相同。
[0078] 106、根据所述其余待备份页的标识,从快照页存储空间中查找与其余待备份页各 自对应的快照页。当查找到所述其余待备份页中的至少一个存在对应的快照页,则先执行 107,再执行108 ;否则直接执行108。
[0079] 107、从每个已查找到的快照页中获取待备份页的原始数据进行备份,并释放已备 份的快照页所占用的存储空间。
[0080] 108、直接从不存在对应快照页的其余待备份页中获取数据进行备份。
[0081] 在本实施方式中,在优先对存在快照页的待备份页进行备份,并在备份后释放所 有快照页的存储空间,来释放不必要的存储空间资源,从而为其它待备份数据的快照页提 供足够的存储空间,进而保证每个被修改的内存数据在备份前都能够有快照页来保存修改 前的数据信息,用以保证所有备份数据存储的都是备份开始时的数据。
[0082] 在执行步骤101至108的基础上,本发明实施例提供的数据备份的方法的另一种 实施方式中,对步骤107的实现提供了一种【具体实施方式】,如图4所示,包括:
[0083] 1071、从所述快照页存储空间中检测在所述其余备份页中,是否存在所述其余待 备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储 空间是连续的。
[0084] 1072、若存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备 份页相应的快照页所占用的存储空间是连续的,则优先从与所述当前待备份页相应的快照 页所占用的存储空间连续的快照页中获取待备份页的原始数据进行备份,然后从与所述当 前待备份页相应的快照页所占用的存储空间不连续的快照页中获取待备份页的原始数据 进行备份。
[0085] 在此补充说明,在执行步骤1071之后,若不存在所述其余待备份页相应的快照页 所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的,则从其 余存在快照页的待备份页中再选取一个进行步骤101至104所示备份流程,或者,执行步骤 101至108所示的备份流程即可。
[0086] 在本实施方式中,在优先对存储空间连续的快照页中的数据信息进行备份,以避 免出现离散的磁盘输入输出进程,提高备份速度。
[0087] 基于如图1所示的内存数据库系统,本发明实施例还提供了用于数据修改的方法 流程,需要在备份流程已经启动时执行与步骤101之前,如图5所示,包括:
[0088] 201、接收数据修改请求,所述数据修改请求携带有待修改数据所在页的标识。
[0089] 其中,此处描述的标识与步骤101的有关描述相同。
[0090] 202、根据所述待修改数据所在页的标识,确定当前待修改数据在待备份页中。
[0091] 其中,步骤202的具体实现方法就是使用所述待修改数据所在页的标识与所有待 备份页的标识一一进行比对,一样则确定待修改数据在待备份页中,否则认为待修改数据 不在待备份页中。
[0092] 203、根据所述待修改数据所在待备份页存储的原始数据,在快照页存储空间为所 述待修改数据所在待备份页分配一个快照页,并使用所述待修改数据所在待备份页的标识 进行标记。
[0093] 其中,为所述待备份页分配一个快照页的流程就是在快照页存储空间为待备份页 分配一块存储空间,并将该块存储空间设置为页的存储形式。
[0094] 204、将所述待备份页存储的原始数据复制到分配好的快照页进行存储。
[0095] 205、对所述待备份页内的待修改数据进行修改。
[0096] 另外,执行步骤202之后,当确定待修改数据不在待备份页中时,则直接对待备份 页存储的原始数据进行修改。
[0097] 本发明实施例提供的数据修改流程,通过在修改前将原始数据保存至快照页,然 后只对所述待备份页存储的原始数据进行修改,而不对快照页中的原始数据进行修改,使 得在备份过程中可以获取到备份开始时各个待备份页的原始数据,从而保证所有备份数据 存储的都是备份开始时的数据,使进而有效保证数据备份的时效性。
[0098] 本发明实施例还提供了数据修改的另一种实施方式,如图6所示,在所述步骤203 无法执行时,即当在快照页存储空间的剩余空间小于为所述待修改数据所在待备份页分配 一个快照页所占用的存储空间时,还包括:
[0099] 206、对所述待备份页存储的原始数据进行备份。
[0100] 207、对所述待备份页内的待修改数据进行修改。
[0101] 在本实施方式,当无法为待备份页分配快照页时,优先进行备份再进行修改,以保 证所有备份数据存储的都是备份开始时的数据,使进而有效保证数据备份的时效性。
[0102] 本发明实施例还提供了一种内存数据库存储引擎,可以用于实现如图2至图6所 示的方法流程,如图7所示,该装置包括:
[0103] 获取单元31,用于获取当前待备份页的标识。
[0104] 查找单元32,用于根据所述获取单元31获取的当前待备份页的标识,从快照页存 储空间中查找与所述当前待备份页对应的快照页,所述当前待备份页对应的快照页存储了 所述当前待备份页在备份进程启动时存储的原始数据。
[0105] 备份单元33,用于从所述查找单元32查找到的与所述当前待备份页对应的快照 页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行 备份。
[0106] 资源释放单元34,用于释放所述备份单元33已备份的与所述当前待备份页对应 的快照页所占用的存储空间。
[0107] 可选的是,所述获取单元31还用于获取其余待备份页的标识,其中所述其余待备 份页为除了当前待备份页之外的待备份页。
[0108] 所述查找单元32,还用于根据所述获取单元31获取的所述其余待备份页的标识, 从快照页存储空间中查找与其余待备份页各自对应的快照页。
[0109] 所述备份单元33,用于当所述查找单元32查找到所述其余待备份页中的至少一 个存在对应的快照页,则优先从每个已查找到的快照页中获取待备份页的原始数据进行备 份;以及,直接从不存在对应快照页的其余待备份页中获取数据进行备份。
[0110] 所述资源释放单元34,用于释放所述备份单元33已备份的快照页所占用的存储 空间。
[0111] 可选的是,如图8所示,所述备份单元33包括:
[0112] 检测模块331,用于从所述快照页存储空间中检测在所述其余备份页中,是否存在 所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所 占用的存储空间是连续的。
[0113] 备份模块332,用于在所述检测模块331存在所述其余待备份页相应的快照页所 占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的时,则优先 从与所述当前待备份页相应的快照页所占用的存储空间连续的快照页中获取待备份页的 原始数据进行备份,然后从与所述当前待备份页相应的快照页所占用的存储空间不连续的 快照页中获取待备份页的原始数据进行备份。
[0114] 可选的是,如图9所示,还包括:
[0115] 接收单元41,用于接收数据修改请求,所述数据修改请求携带有待修改数据所在 页的标识。
[0116] 确定单元42,用于根据所述待修改数据所在页的标识,确定当前待修改数据在待 备份页中。
[0117] 分配单元43,用于根据所述确定单元42确定的待修改数据所在待备份页存储的 原始数据,在快照页存储空间为所述待修改数据所在待备份页分配一个快照页,并使用所 述待修改数据所在待备份页的标识进行标记。
[0118] 复制单元44,用于将所述待备份页存储的原始数据复制到分配好的快照页进行存 储。
[0119] 修改单元45,用于对所述待备份页内的待修改数据进行修改。
[0120] 可选的是,所述备份单元44用于当在快照页存储空间的剩余空间小于为所述待 修改数据所在待备份页分配一个快照页所占用的存储空间时,对所述待备份页存储的原始 数据进行备份。
[0121] 所述修改单元45,用于对所述待备份页内的待修改数据进行修改。
[0122] 本发明实施例提供的内存数据库存储引擎,通过将为待备份页中的数据提供快照 页进行存储,以保证即使在备份进程中存在数据被修改,也可以保证修改前的数据可以被 保存下来,使得备份进程得到的数据都是备份进程开始时的数据,相比于现有技术中若发 生数据修改则只能存储修改后的数据相比,可以保证所有备份数据存储的都是备份开始时 的数据,使进而有效保证数据备份的时效性。
[0123] 本发明实施例还提供了一种内存数据库存储引擎,如图10所示,包括处理器51和 输入输出接口 52,所述输入输出接口 52用于处理器51与外部器件进行通信。
[0124] 其中,所述处理器51用于获取当前待备份页的标识;根据所述当前待备份页的标 识,从快照页存储空间中查找与所述当前待备份页对应的快照页,从与所述当前待备份页 对应的快照页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原 始数据进行备份,其中,所述当前待备份页对应的快照页存储了所述当前待备份页在备份 进程启动时存储的原始数据;释放与所述当前待备份页对应的快照页所占用的存储空间。
[0125] 可选的是,所述处理器51还用于获取其余待备份页的标识,其中所述其余待备份 页为除了当前待备份页之外的待备份页;根据所述其余待备份页的标识,从快照页存储空 间中查找与所述其余待备份页各自对应的快照页;当查找到所述其余待备份页中的至少一 个存在对应的快照页,则优先从每个已查找到的快照页中获取待备份页的原始数据进行备 份,并释放已备份的快照页所占用的存储空间;在对每个已查找到的快照页内存储的原始 数据完成备份之后,直接从不存在对应快照页的其余待备份页中获取数据进行备份。
[0126] 可选的是,所述处理器51还具体用于从所述快照页存储空间中检测在所述其余 备份页中,是否存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份 页相应的快照页所占用的存储空间是连续的;若存在所述其余待备份页相应的快照页所占 用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续的,则优先从与 所述当前待备份页相应的快照页所占用的存储空间连续的快照页中获取待备份页的原始 数据进行备份,然后从与所述当前待备份页相应的快照页所占用的存储空间不连续的快照 页中获取待备份页的原始数据进行备份。
[0127] 可选的是,所述处理器51还用于通过所述输入输出接口 52接收数据修改请求,所 述数据修改请求携带有待修改数据所在页的标识;根据所述待修改数据所在页的标识,确 定当前待修改数据在待备份页中,根据所述待修改数据所在待备份页存储的原始数据,在 快照页存储空间为所述待修改数据所在待备份页分配一个快照页,并使用所述待修改数据 所在待备份页的标识进行标记;将所述待备份页存储的原始数据复制到分配好的快照页进 行存储;对所述待备份页内的待修改数据进行修改。
[0128] 可选的是,所述处理器51还用于当在快照页存储空间的剩余空间小于为所述待 修改数据所在待备份页分配一个快照页所占用的存储空间时,对所述待备份页存储的原始 数据进行备份;对所述待备份页内的待修改数据进行修改。
[0129] 本发明实施例提供的内存数据库存储引擎,通过将为待备份页中的数据提供快照 页进行存储,以保证即使在备份进程中存在数据被修改,也可以保证修改前的数据可以被 保存下来,使得备份进程得到的数据都是备份进程开始时的数据,相比于现有技术中若发 生数据修改则只能存储修改后的数据相比,可以保证所有备份数据存储的都是备份开始时 的数据,使进而有效保证数据备份的时效性。
[0130] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借 助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳 的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部 分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计 算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0131] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1. 一种数据备份的方法,其特征在于,包括: 获取当前待备份页的标识; 根据所述当前待备份页的标识,从快照页存储空间中查找与所述当前待备份页对应的 快照页,从与所述当前待备份页对应的快照页中获取所述当前待备份页对应的原始数据, 并对所述当前待备份页对应的原始数据进行备份,其中,所述当前待备份页对应的快照页 存储了所述当前待备份页在备份进程启动时存储的原始数据; 释放与所述当前待备份页对应的快照页所占用的存储空间。
2. 根据权利要求1所述的方法,其特征在于,在释放所述当前待备份页对应的快照页 所占用的存储空间之后,还包括: 获取其余待备份页的标识,其中所述其余待备份页为除了当前待备份页之外的待备份 页; 根据所述其余待备份页的标识,从快照页存储空间中查找与所述其余待备份页各自对 应的快照页; 当查找到所述其余待备份页中的至少一个存在对应的快照页,则优先从每个已查找 到的快照页中获取待备份页的原始数据进行备份,并释放已备份的快照页所占用的存储空 间; 在对每个已查找到的快照页内存储的原始数据完成备份之后,直接从不存在对应快照 页的其余待备份页中获取数据进行备份。
3. 根据权利要求2所述的方法,其特征在于,所述从与所述当前待备份页对应的快照 页中获取所述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行 备份包括: 从所述快照页存储空间中检测在所述其余备份页中,是否存在所述其余待备份页相应 的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的存储空间是连续 的; 若存在所述其余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应 的快照页所占用的存储空间是连续的,则优先从与所述当前待备份页相应的快照页所占用 的存储空间连续的快照页中获取待备份页的原始数据进行备份,然后从与所述当前待备份 页相应的快照页所占用的存储空间不连续的快照页中获取待备份页的原始数据进行备份。
4. 根据权利要求1至3任意一项所述的方法,其特征在于,在获取当前待备份页的标识 之前,还包括: 接收数据修改请求,所述数据修改请求携带有待修改数据所在页的标识; 根据所述待修改数据所在页的标识,确定当前待修改数据在待备份页中,根据所述待 修改数据所在待备份页存储的原始数据,在快照页存储空间为所述待修改数据所在待备份 页分配一个快照页,并使用所述待修改数据所在待备份页的标识进行标记; 将所述待备份页存储的原始数据复制到分配好的快照页进行存储; 对所述待备份页内的待修改数据进行修改。
5. 根据权利要求4所述的方法,其特征在于,还包括: 当快照页存储空间的剩余空间小于为所述待修改数据所在待备份页分配一个快照页 所占用的存储空间时,对所述待备份页存储的原始数据进行备份; 对所述待备份页内的待修改数据进行修改。
6. -种内存数据库存储引擎,其特征在于,包括: 获取单元,用于获取当前待备份页的标识; 查找单元,用于根据所述获取单元获取的当前待备份页的标识,从快照页存储空间中 查找与所述当前待备份页对应的快照页;其中,所述当前待备份页对应的快照页存储了所 述当前待备份页在备份进程启动时存储的原始数据; 备份单元,用于从所述查找单元查找到的与所述当前待备份页对应的快照页中获取所 述当前待备份页对应的原始数据,并对所述当前待备份页对应的原始数据进行备份; 资源释放单元,用于释放所述备份单元已备份的与所述当前待备份页对应的快照页所 占用的存储空间。
7. 根据权利要求6所述的内存数据库存储引擎,其特征在于,所述获取单元还用于获 取其余待备份页的标识,其中所述其余待备份页为除了当前待备份页之外的待备份页; 所述查找单元,还用于根据所述获取单元获取的所述其余待备份页的标识,从快照页 存储空间中查找与其余待备份页各自对应的快照页; 所述备份单元,用于当所述查找单元查找到所述其余待备份页中的至少一个存在对应 的快照页,则优先从每个已查找到的快照页中获取待备份页的原始数据进行备份;以及,直 接从不存在对应快照页的其余待备份页中获取数据进行备份; 所述资源释放单元,用于释放所述备份单元已备份的快照页所占用的存储空间。
8. 根据权利要求7所述的内存数据库存储引擎,其特征在于,所述备份单元包括: 检测模块,用于从所述快照页存储空间中检测在所述其余备份页中,是否存在所述其 余待备份页相应的快照页所占用的存储空间与所述当前待备份页相应的快照页所占用的 存储空间是连续的; 备份模块,用于在所述检测模块存在所述其余待备份页相应的快照页所占用的存储空 间与所述当前待备份页相应的快照页所占用的存储空间是连续的时,则优先从与所述当前 待备份页相应的快照页所占用的存储空间连续的快照页中获取待备份页的原始数据进行 备份,然后从与所述当前待备份页相应的快照页所占用的存储空间不连续的快照页中获取 待备份页的原始数据进行备份。
9. 根据权利要求6至8任意一项所述的内存数据库存储引擎,其特征在于,还包括: 接收单元,用于接收数据修改请求,所述数据修改请求携带有待修改数据所在页的标 识; 确定单元,用于根据所述待修改数据所在页的标识,确定当前待修改数据在待备份页 中; 分配单元,用于根据所述确定单元确定的待修改数据所在待备份页存储的原始数据, 在快照页存储空间为所述待修改数据所在待备份页分配一个快照页,并使用所述待修改数 据所在待备份页的标识进行标记; 复制单元,用于将所述待备份页存储的原始数据复制到分配好的快照页进行存储; 修改单元,用于对所述待备份页内的待修改数据进行修改。
10. 根据权利要求9所述的内存数据库存储引擎,其特征在于,所述备份单元用于当在 快照页存储空间的剩余空间小于为所述待修改数据所在待备份页分配一个快照页所占用 的存储空间时,对所述待备份页存储的原始数据进行备份; 所述修改单元,用于对所述待备份页内的待修改数据进行修改。
【文档编号】G06F17/30GK104216792SQ201310208187
【公开日】2014年12月17日 申请日期:2013年5月29日 优先权日:2013年5月29日
【发明者】梁远胜 申请人:华为软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1