掌桥专利:专业的专利平台
掌桥专利
首页

一种数据备份的方法、装置、设备和计算机可读存储介质

文献发布时间:2023-06-19 11:32:36


一种数据备份的方法、装置、设备和计算机可读存储介质

技术领域

本申请涉及数据处理技术领域,特别是涉及一种数据备份的方法、装置、设备和计算机可读存储介质。

背景技术

Nand Flash(计算机闪存设备)具有非易失性存储功能,即断电后仍能保存数据。随着人们持续追求功耗更低、重量更轻和性能更佳的产品,Nand Flash被广泛用于存储数据。为了提升数据的安全性,可以对数据进行备份存储。

传统的数据备份方式都是将数据拷贝到Nand Flash备份存储区域的前面几个块(block)。备份数据具有时效性,当备份数据到期时,可以将备份数据从Nand Flash备份分区中擦除。当有新的备份数据时,又会将新的备份数据拷贝到Nand Flash备份存储区域的前面几个block。这种数据备份的方式会导致每次都是前面几个block被反复的擦除和读写。如果反复对Nand Flash中同一个位置进行擦除和读写,容易导致Nand Flash损坏或者是出现位反转等异常。尤其是关键数据的存储区发生损坏或异常,会使得系统稳定性大大降低。

可见,如何在备份数据时实现对备份存储区域的均衡调用,是本领域技术人员需要解决的问题。

发明内容

本申请实施例的目的是提供一种数据备份的方法、装置、设备和计算机可读存储介质,可以在备份数据时实现对备份存储区域的均衡调用。

为解决上述技术问题,本申请实施例提供一种数据备份的方法,包括:

当接收到数据备份指令时,查询最新备份数据的位置信息;

判断目标数据块的剩余存储空间是否满足待备份数据的存储需求;其中,所述目标数据块为所述位置信息对应的数据块;

若所述目标数据块的剩余存储空间满足所述待备份数据的存储需求,则将所述待备份数据存储至所述目标数据块中与所述位置信息相邻的剩余存储空间,并依据所述待备份数据所在的存储位置,更新所述位置信息;

若所述目标数据块的剩余存储空间不满足所述待备份数据的存储需求,则依据数据块的排列顺序,选取出满足所述待备份数据的存储需求的数据块以存储所述待备份数据,并依据所述待备份数据所在的存储位置,更新所述位置信息。

可选地,所述位置信息包括备份数据在数据块的位置索引和备份数据在整个备份存储区域的编号索引。

可选地,所述依据所述待备份数据所在的存储位置,更新所述位置信息包括:

基于所述待备份数据所在数据块的位置,确定出所述待备份数据的位置索引;

将所述最新备份数据的位置信息中的编号索引加一作为所述待备份数据的编号索引;

将所述待备份数据的位置索引以及所述待备份数据的编号索引作为更新后的位置信息。

可选地,在所述将所述待备份数据的位置索引以及所述待备份数据的编号索引作为更新后的位置信息之后还包括:

将所述更新后的位置信息记录至缓存区域。

可选地,所述查询最新备份数据的位置信息包括:

判断所述缓存区域中是否记载有最新备份数据的位置信息;

若所述缓存区域中记载有最新备份数据的位置信息,则读取所述最新备份数据的位置信息;

若所述缓存区域中未记载最新备份数据的位置信息,则遍历整个备份存储区域以查找取值最大的编号索引,并将所述取值最大的编号索引及其对应的位置索引作为最新备份数据的位置信息。

可选地,所述依据数据块的排列顺序,选取出满足所述待备份数据的存储需求的数据块以存储所述待备份数据包括:

判断所述目标数据块是否为最后一个数据块;

若所述目标数据块为最后一个数据块,则从整个备份存储区域中选取第一个数据块;在将所述第一个数据块的原数据擦除后,将所述待备份数据写入所述第一个数据块;

若所述目标数据块不为最后一个数据块,则依据数据块的排列顺序,选取与所述目标数据块相邻的下一个数据块以存储所述待备份数据。

可选地,所述在所述查询最新备份数据的位置信息之后还包括:

判断所述待备份数据的校验值和list个数与所述最新备份数据的校验值和list个数是否均一致;

若所述待备份数据的校验值与所述最新备份数据的校验值不一致或者是所述待备份数据的list个数与所述最新备份数据的list个数不一致,则执行所述判断目标数据块的剩余存储空间是否满足所述待备份数据的存储需求的步骤;

若所述待备份数据的校验值和list个数与所述最新备份数据的校验值和list个数均一致,则结束操作。

本申请实施例还提供了一种数据备份的装置,包括查询单元、判断单元、存储单元、选取单元和更新单元;

所述查询单元,用于当接收到数据备份指令时,查询最新备份数据的位置信息;

所述判断单元,用于判断目标数据块的剩余存储空间是否满足待备份数据的存储需求;其中,所述目标数据块为所述位置信息对应的数据块;

所述存储单元,用于若所述目标数据块的剩余存储空间满足所述待备份数据的存储需求,则将所述待备份数据存储至所述目标数据块中与所述位置信息相邻的剩余存储空间;

所述选取单元,用于若所述目标数据块的剩余存储空间不满足所述待备份数据的存储需求,则依据数据块的排列顺序,选取出满足所述待备份数据的存储需求的数据块以存储所述待备份数据;

所述更新单元,用于依据所述待备份数据所在的存储位置,更新所述位置信息。

可选地,所述位置信息包括备份数据在数据块的位置索引和备份数据在整个备份存储区域的编号索引。

可选地,所述更新单元包括确定子单元和作为子单元;

所述确定子单元,用于基于所述待备份数据所在数据块的位置,确定出所述待备份数据的位置索引;

所述作为子单元,用于将所述最新备份数据的位置信息中的编号索引加一作为所述待备份数据的编号索引;将所述待备份数据的位置索引以及所述待备份数据的编号索引作为更新后的位置信息。

可选地,还包括缓存单元;

所述缓存单元,用于将所述更新后的位置信息记录至缓存区域。

可选地,所述查询单元包括判断子单元、读取子单元、遍历子单元和作为子单元;

所述判断子单元,用于判断所述缓存区域中是否记载有最新备份数据的位置信息;

所述读取子单元,用于若所述缓存区域中记载有最新备份数据的位置信息,则读取所述最新备份数据的位置信息;

所述遍历子单元,用于若所述缓存区域中未记载最新备份数据的位置信息,则遍历整个备份存储区域以查找取值最大的编号索引;

所述作为子单元,用于将所述取值最大的编号索引及其对应的位置索引作为最新备份数据的位置信息。

可选地,所述选取单元包括判断子单元、第一读取子单元、写入子单元和第二读取子单元;

所述判断子单元,用于判断所述目标数据块是否为最后一个数据块;

所述第一读取子单元,用于若所述目标数据块为最后一个数据块,则从整个备份存储区域中选取第一个数据块;

所述写入子单元,用于在将所述第一个数据块的原数据擦除后,将所述待备份数据写入所述第一个数据块;

所述第二读取子单元,用于若所述目标数据块不为最后一个数据块,则依据数据块的排列顺序,选取与所述目标数据块相邻的下一个数据块以存储所述待备份数据。

可选地,所述在所述查询最新备份数据的位置信息之后还包括数据判断单元和结束单元;

所述数据判断单元,用于判断所述待备份数据的校验值和list个数与所述最新备份数据的校验值和list个数是否均一致;若所述待备份数据的校验值与所述最新备份数据的校验值不一致或者是所述待备份数据的list个数与所述最新备份数据的list个数不一致,则触发所述判断单元执行所述判断目标数据块的剩余存储空间是否满足所述待备份数据的存储需求的步骤;

所述结束单元,用于若所述待备份数据的校验值和list个数与所述最新备份数据的校验值和list个数均一致,则结束操作。

本申请实施例还提供了一种数据备份的设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上述任意一项所述数据备份的方法的步骤。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述数据备份的方法的步骤。

由上述技术方案可以看出,当接收到数据备份指令时,查询最新备份数据的位置信息;最新备份数据的位置信息用于指示上一次存储的备份数据所在的位置。可以将该位置信息对应的数据块称作目标数据块,判断目标数据块的剩余存储空间是否满足待备份数据的存储需求。若目标数据块的剩余存储空间满足待备份数据的存储需求,则将待备份数据存储至目标数据块中与位置信息相邻的剩余存储空间,并依据待备份数据所在的存储位置,更新位置信息。若目标数据块的剩余存储空间不满足待备份数据的存储需求,则依据数据块的排列顺序,选取出满足待备份数据的存储需求的数据块以存储待备份数据,并依据待备份数据所在的存储位置,更新位置信息。在该技术方案中,依据上一次存储备份数据的位置信息对新的备份数据进行存储,可以实现备份数据的链式存储,即使上一次存储的备份数据被擦除,记录的位置信息不会发生改变,新的备份数据可以存储至该位置信息后边的存储空间,从而可以最大限度的调用整个备份存储区域中各数据块,实现了备份存储区域的均衡调用。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种数据备份的方法的流程图;

图2为本申请实施例提供的一种数据备份实例的结构示意图;

图3为本申请实施例提供的一种数据备份的装置的结构示意图;

图4为本申请实施例提供的一种数据备份的设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。

接下来,详细介绍本申请实施例所提供的一种数据备份的方法。图1为本申请实施例提供的一种数据备份的方法的流程图,该方法包括:

S101:当接收到数据备份指令时,查询最新备份数据的位置信息。

在实际应用中,当接收到数据备份指令时,可以查询最新备份数据的位置信息。其中,最新备份数据的位置信息可以用于指示上一次存储的备份数据所在的位置。

备份存储区域中包含有多个数据块,每个数据块可以包含有多个数据备份实例,所需备份的数据可以存储至该数据备份实例中。

在本申请实施例中,位置信息可以包括备份数据在数据块的位置索引(Offset onBlock)和备份数据在整个备份存储区域的编号索引(Backup List index)。为了便于记载备份数据的位置信息,在本申请实施例中,可以对数据备份实例的结构进行调整,在其表头中分配存储空间用于记录位置信息。

如图2所示为本申请实施例提供的一种数据备份实例的结构示意图,数据备份实例可以划分为表头(head)和备份数据存储空间两部分。其中,表头包括校验文件头(MagicHead)、编号索引(Backup List index)、备份数据的整个长度(TotalLen withHead)、备份的odm nv的条数即list个数(NV list Number)、所有odm nv条目的校验值(CRCvalue for odm nv)、位置索引(Offset on Block),表头中的Keep EXT代表保留字段,可以用于扩展。一个数据备份实例的备份数据存储空间可以划分为多个odm nv。在实际应用中,可以通过不同的编号区分不同的odm nv。

S102:判断目标数据块的剩余存储空间是否满足待备份数据的存储需求。

为了便于区分不同的数据块,可以将位置信息对应的数据块称作目标数据块。

若目标数据块的剩余存储空间满足待备份数据的存储需求,则说明可以将待备份数据存储至目标数据块中,即执行S103。

若目标数据块的剩余存储空间不满足待备份数据的存储需求,则说明目标数据块的剩余存储空间无法完整的存储待备份数据,此时可以执行S104。

S103:将待备份数据存储至目标数据块中与位置信息相邻的剩余存储空间,并依据待备份数据所在的存储位置,更新位置信息。

在本申请实施例中,为了保证整个备份存储区域中各数据块,以及每个数据块中不同存储空间的充分调用,可以按照位置信息对备份数据进行链式存储。

在实际应用中,根据位置信息可以确定出最新备份数据是在哪个目标数据块的哪个位置上存储。在目标数据块的剩余存储空间满足待备份数据的存储需求的情况下,可以将待备份数据存储至目标数据块中与位置信息相邻的剩余存储空间。

S104:依据数据块的排列顺序,选取出满足待备份数据的存储需求的数据块以存储待备份数据,并依据待备份数据所在的存储位置,更新位置信息。

按照链式存储的方式,当最新备份数据的位置信息对应的是目标数据块的情况下,与该目标数据块相邻的下一个数据块不会存储有任何数据,因此,在目标数据块的剩余存储空间不满足待备份数据的存储需求的情况下,为了保证待备份数据的完整存储,可以选取与目标数据块相邻的下一个数据块存储待备份数据。

考虑到整个备份存储区域中包含的数据块的个数有限,在实际应用中,在目标数据块的剩余存储空间不满足待备份数据的存储需求的情况下,可以判断目标数据块是否为最后一个数据块;若目标数据块为最后一个数据块,则需要从整个备份存储区域中选取第一个数据块;在将第一个数据块的原数据擦除后,将待备份数据写入第一个数据块。若目标数据块不为最后一个数据块,则可以依据数据块的排列顺序,选取与目标数据块相邻的下一个数据块以存储待备份数据。

在本申请实施例中,依据位置信息确定出当前最新存储的备份数据所在的位置,因此当存储了新的备份数据之后,需要对位置信息进行更新。

结合上述介绍中位置信息包括位置索引和编号索引为例,在实际应用中,可以基于待备份数据所在数据块的位置,确定出待备份数据的位置索引。

编号索引可以采用数字的形式表示,每存储一个备份数据,在更新位置信息时可以将原编号索引加一。在存储了待备份数据之后,可以将最新备份数据的位置信息中的编号索引加一作为待备份数据的编号索引。此时待备份数据的位置索引以及待备份数据的编号索引即为更新后的位置信息。

由上述技术方案可以看出,当接收到数据备份指令时,查询最新备份数据的位置信息;最新备份数据的位置信息用于指示上一次存储的备份数据所在的位置。可以将该位置信息对应的数据块称作目标数据块,判断目标数据块的剩余存储空间是否满足待备份数据的存储需求。若目标数据块的剩余存储空间满足待备份数据的存储需求,则将待备份数据存储至目标数据块中与位置信息相邻的剩余存储空间,并依据待备份数据所在的存储位置,更新位置信息。若目标数据块的剩余存储空间不满足待备份数据的存储需求,则依据数据块的排列顺序,选取出满足待备份数据的存储需求的数据块以存储待备份数据,并依据待备份数据所在的存储位置,更新位置信息。在该技术方案中,依据上一次存储备份数据的位置信息对新的备份数据进行存储,可以实现备份数据的链式存储,即使上一次存储的备份数据被擦除,记录的位置信息不会发生改变,新的备份数据可以存储至该位置信息后边的存储空间,从而可以最大限度的调用整个备份存储区域中各数据块,实现了备份存储区域的均衡调用。

为了便于后续对位置信息进行查询,可以将更新后的位置信息记录至缓存区域。考虑到实际应用中,可能会存在缓存区域中不存在位置信息的情况,造成该种情况的原因可能是由于系统掉电等异常情况造成缓存区域中位置信息的丢失或者是忘记向缓存区域中存储位置信息。因此,在本申请实施例中,在获取到待备份数据的情况下,可以判断缓存区域中是否记载有最新备份数据的位置信息;若缓存区域中记载有最新备份数据的位置信息,则读取最新备份数据的位置信息。

结合上述介绍中,每存储一个备份数据则将编号索引加一的方式,若缓存区域中未记载最新备份数据的位置信息,则可以遍历整个备份存储区域以查找取值最大的编号索引,并将取值最大的编号索引及其对应的位置索引作为最新备份数据的位置信息。

通过对缓存区域中是否记载有最新备份数据的位置信息进行判断,可以在缓存区域中未记载最新备份数据的位置信息时,以编号索引为依据,遍历整个备份存储区域以查找取值最大的编号索引,从而获取到位置信息,保证了位置信息的有效获取。

考虑到在实际应用中,可能会存在相同的数据进行重复备份的情况。根据表1中数据备份实例的表头中包含有校验值和list个数,根据校验值和list个数可以区分不同的备份数据,因此在查询最新备份数据的位置信息之后,可以判断待备份数据的校验值和list个数与最新备份数据的校验值和list个数是否均一致。

若待备份数据的校验值与最新备份数据的校验值不一致或者是待备份数据的list个数与最新备份数据的list个数不一致,则说明当前所需存储的待备份数据未被存储,此时可以执行判断目标数据块的剩余存储空间是否满足待备份数据的存储需求的步骤。

若待备份数据的校验值和list个数与最新备份数据的校验值和list个数均一致,则说明当前所需存储的待备份数据已经在整个备份存储区域中存储,此时可以结束操作。

通过依据备份数据的校验值和list个数,可以识别备份数据是否已经在整个备份存储区域中存储,有效的避免了对数据的重复备份,提升了存储空间的利用率。

图3为本申请实施例提供的一种数据备份的装置的结构示意图,包括查询单元31、判断单元32、存储单元33、选取单元34和更新单元35;

查询单元31,用于当接收到数据备份指令时,查询最新备份数据的位置信息;

判断单元32,用于判断目标数据块的剩余存储空间是否满足待备份数据的存储需求;其中,目标数据块为位置信息对应的数据块;

存储单元33,用于若目标数据块的剩余存储空间满足待备份数据的存储需求,则将待备份数据存储至目标数据块中与位置信息相邻的剩余存储空间;

选取单元34,用于若目标数据块的剩余存储空间不满足待备份数据的存储需求,则依据数据块的排列顺序,选取出满足待备份数据的存储需求的数据块以存储待备份数据;

更新单元35,用于依据待备份数据所在的存储位置,更新位置信息。

可选地,位置信息包括备份数据在数据块的位置索引和备份数据在整个备份存储区域的编号索引。

可选地,更新单元包括确定子单元和作为子单元;

确定子单元,用于基于待备份数据所在数据块的位置,确定出待备份数据的位置索引;

作为子单元,用于将最新备份数据的位置信息中的编号索引加一作为待备份数据的编号索引;将待备份数据的位置索引以及待备份数据的编号索引作为更新后的位置信息。

可选地,还包括缓存单元;

缓存单元,用于将更新后的位置信息记录至缓存区域。

可选地,查询单元包括判断子单元、读取子单元、遍历子单元和作为子单元;

判断子单元,用于判断缓存区域中是否记载有最新备份数据的位置信息;

读取子单元,用于若缓存区域中记载有最新备份数据的位置信息,则读取最新备份数据的位置信息;

遍历子单元,用于若缓存区域中未记载最新备份数据的位置信息,则遍历整个备份存储区域以查找取值最大的编号索引;

作为子单元,用于将取值最大的编号索引及其对应的位置索引作为最新备份数据的位置信息。

可选地,选取单元包括判断子单元、第一读取子单元、写入子单元和第二读取子单元;

判断子单元,用于判断目标数据块是否为最后一个数据块;

第一读取子单元,用于若目标数据块为最后一个数据块,则从整个备份存储区域中选取第一个数据块;

写入子单元,用于在将第一个数据块的原数据擦除后,将待备份数据写入第一个数据块;

第二读取子单元,用于若目标数据块不为最后一个数据块,则依据数据块的排列顺序,选取与目标数据块相邻的下一个数据块以存储待备份数据。

可选地,在查询最新备份数据的位置信息之后还包括数据判断单元和结束单元;

数据判断单元,用于判断待备份数据的校验值和list个数与最新备份数据的校验值和list个数是否均一致;若待备份数据的校验值与最新备份数据的校验值不一致或者是待备份数据的list个数与最新备份数据的list个数不一致,则触发判断单元执行判断目标数据块的剩余存储空间是否满足待备份数据的存储需求的步骤;

结束单元,用于若待备份数据的校验值和list个数与最新备份数据的校验值和list个数均一致,则结束操作。

图3所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,当接收到数据备份指令时,查询最新备份数据的位置信息;最新备份数据的位置信息用于指示上一次存储的备份数据所在的位置。可以将该位置信息对应的数据块称作目标数据块,判断目标数据块的剩余存储空间是否满足待备份数据的存储需求。若目标数据块的剩余存储空间满足待备份数据的存储需求,则将待备份数据存储至目标数据块中与位置信息相邻的剩余存储空间,并依据待备份数据所在的存储位置,更新位置信息。若目标数据块的剩余存储空间不满足待备份数据的存储需求,则依据数据块的排列顺序,选取出满足待备份数据的存储需求的数据块以存储待备份数据,并依据待备份数据所在的存储位置,更新位置信息。在该技术方案中,依据上一次存储备份数据的位置信息对新的备份数据进行存储,可以实现备份数据的链式存储,即使上一次存储的备份数据被擦除,记录的位置信息不会发生改变,新的备份数据可以存储至该位置信息后边的存储空间,从而可以最大限度的调用整个备份存储区域中各数据块,实现了备份存储区域的均衡调用。

图4为本申请实施例提供的一种数据备份的设备40的结构示意图,包括:

存储器41,用于存储计算机程序;

处理器42,用于执行计算机程序以实现如上述任意实施例所述的数据备份的方法的步骤。

本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意实施例所述的数据备份的方法的步骤。

以上对本申请实施例所提供的一种数据备份的方法、装置、设备和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

相关技术
  • 一种数据备份方法、装置、设备及计算机可读存储介质
  • 一种数据备份方法、装置、设备及计算机可读存储介质
技术分类

06120112966345