数据恢复方法、装置、电子设备、介质及程序产品制造方法及图纸

技术编号:35011174 阅读:11 留言:0更新日期:2022-09-21 15:03
本申请涉及一种数据恢复方法、装置、电子设备、介质及程序产品,应用于数据存储技术领域,所述方法包括:当源文件发生损坏时,获取源文件对应的、具有预设压缩比的备份数据,其中,备份数据包括:第一数据块矩阵中多组数据块分别对应的第一校验数据,第一数据块矩阵是对源文件进行切割生成的;对第一数据块矩阵中的数据块重新进行编码校验,得到与每个第一校验数据对应的第二校验数据;根据第一校验数据和第一校验数据对应的第二校验数据的差值,确定第一数据块矩阵中的异常数据块;根据异常数据块对应的第一校验数据和第二校验数据,对异常数据块进行恢复。本申请可以降低存储空间。本申请可以降低存储空间。本申请可以降低存储空间。

【技术实现步骤摘要】
数据恢复方法、装置、电子设备、介质及程序产品


[0001]本申请涉及数据存储
,尤其涉及一种数据恢复方法、装置、电子设备、介质及程序产品。

技术介绍

[0002]目前,在存储数据时,通常可以同时存储对应的备份数据,以在数据丢失或损坏时能够进行恢复。相关技术中,可以使用同等备份或压缩备份方案进行覆盖恢复,假设文件的大小为5G,同等备份时除了需要5G的存储空间存储该文件外,还需要额外5G的存储空间来存储备份数据。或者,使用无损压缩方案,如果压缩比为2:1,那么需要额外2.5G的存储空间来存储备份数据。可以看出,上述方法在存储备份数据时需要较大的存储空间,尤其针对大文本数据,存储空间损失比较大。

技术实现思路

[0003]为了解决上述技术问题,本申请提供了一种数据恢复方法、装置、电子设备、介质及程序产品。
[0004]根据本申请的第一方面,提供了一种数据恢复方法,包括:
[0005]当源文件发生损坏时,获取所述源文件对应的、具有预设压缩比的备份数据,其中,所述备份数据包括:第一数据块矩阵中多组数据块分别对应的第一校验数据,所述第一数据块矩阵是对所述源文件进行切割生成的;
[0006]对所述第一数据块矩阵中的数据块重新进行编码校验,得到与每个所述第一校验数据对应的第二校验数据;
[0007]根据所述第一校验数据和所述第一校验数据对应的第二校验数据的差值,确定所述第一数据块矩阵中的异常数据块;
[0008]根据所述异常数据块对应的第一校验数据和第二校验数据,对所述异常数据块进行恢复。
[0009]可选的,在获取所述源文件的备份数据之前,所述方法包括:
[0010]获取源文件,将所述源文件切割为第一数据块矩阵;
[0011]对所述第一数据块矩阵中每个数据块进行编码校验,得到每个数据块对应的校验数据;
[0012]根据所述第一数据块矩阵中各组数据块对应的校验数据,得到所述第一校验数据,将所述第一校验数据作为备份数据,并存储所述备份数据。
[0013]可选的,所述第一数据块矩阵为N
×
N的矩阵,所述预设压缩比为N:2,N为2的幂指数;
[0014]所述根据所述第一数据块矩阵中各组数据块对应的校验数据,得到所述第一校验数据,包括:
[0015]将所述第一数据块矩阵单行中包含的数据块的校验数据之和,确定为所述第一校
验数据;以及
[0016]将所述第一数据块矩阵单列中包含的数据块的校验数据之和,确定为所述第一校验数据。
[0017]可选的,所述根据所述第一校验数据和所述第一校验数据对应的第二校验数据的差值,确定所述第一数据块矩阵中的异常数据块,包括:
[0018]如果所述第一数据块矩阵中任一行数据块对应的第一校验数据和该行数据块对应第二校验数据的行差值不等于0,确定该任一行数据块中存在异常数据块;
[0019]如果所述第一数据块矩阵中任一列数据块对应的第一校验数据和该列数据块对应第二校验数据的列差值不等于0,确定该任一列数据块中存在异常数据块;
[0020]根据所述第一数据块矩阵中各行数据块对应的行差值和各列数据块对应的列差值,确定异常数据块。
[0021]可选的,所述根据所述异常数据块对应的第一校验数据和第二校验数据,对所述异常数据块进行恢复,包括:
[0022]如果所述异常数据块的数量小于或等于预设数量,根据所述异常数据块对应的第一校验数据和第二校验数据,对所述异常数据块进行恢复;
[0023]如果所述异常数据块的数量大于所述预设数量,根据所述异常数据块在所述第一数据块矩阵中的位置分布,确定是否对所述异常数据块进行恢复。
[0024]可选的,所述根据所述异常数据块在所述第一数据块矩阵中的位置分布,确定是否对所述异常数据块进行恢复,包括:
[0025]如果所述第一数据块矩阵中存在第一异常数据块,根据所述第一异常数据块所在行数据块对应的第一校验数据和第二校验数据,对所述第一异常数据块进行恢复;其中,所述第一异常数据块为所述第一异常数据块所在行中唯一的异常数据块;
[0026]如果所述第一数据块矩阵中存在第二异常数据块,根据所述第二异常数据块所在列数据块对应的第一校验数据和第二校验数据,对所述第二异常数据块进行恢复;其中,所述第二异常数据块为所述第二异常数据块所在列中唯一的异常数据块;
[0027]在对所述第一异常数据块和所述第二异常数据块进行恢复之后,如果所述第一数据块矩阵中任一行数据块中存在至少两个剩余的异常数据块,且任一列数据块中存在至少两个剩余的异常数据块,则确定无法对所述剩余异常数据块进行恢复。
[0028]可选的,所述备份数据还包括:第二数据块矩阵中多组数据块分别对应的第三校验数据,所述第二数据块矩阵是对所述第一数据块矩阵进行变形处理之后得到的;
[0029]所述方法还包括:
[0030]在获取所述源文件的备份数据之后,对所述第二数据块矩阵中的数据块重新进行编码校验,得到与每个所述第三校验数据对应的第四校验数据;
[0031]所述根据所述第一校验数据和所述第一校验数据对应的第二校验数据的差值,确定所述第一数据块矩阵中的异常数据块,包括:
[0032]根据所述第一校验数据和所述第一校验数据对应的第二校验数据的差值,以及所述第三校验数据和所述第三校验数据对应的第四校验数据的差值,确定所述第一数据块矩阵和所述第二数据块矩阵中的异常数据块;
[0033]所述根据所述异常数据块对应的第一校验数据和第二校验数据,对所述异常数据
块进行恢复,包括:
[0034]根据所述第一数据块矩阵中的异常数据块对应的第一校验数据和第二校验数据,以及所述第二数据块矩阵中的异常数据块对应的第三校验数据和第四校验数据,对所述第一数据块矩阵和所述第二数据块矩阵中的异常数据块进行恢复。
[0035]可选的,所述第二数据块矩阵是将所述第一数据块矩阵中的数据块进行偏移处理之后得到的;或者
[0036]所述第二数据块矩阵是对所述第一数据块矩阵的行数和列数进行调整之后得到的。
[0037]可选的,所述第一数据块矩阵为256
×
256的数据块矩阵;
[0038]所述对所述第一数据块矩阵中每个数据块进行编码校验,得到每个数据块对应的校验数据,包括:
[0039]利用循环冗余校验16位算法,对所述第一数据块矩阵中每个数据块进行编码校验,得到每个数据块对应的校验数据。
[0040]根据本申请的第二方面,提供了一种数据恢复装置,包括:
[0041]备份数据获取模块,用于当源文件发生损坏时,获取所述源文件对应的、具有预设压缩比的备份数据,其中,所述备份数据包括:第一数据块矩阵中多组数据块分别对应的第一校验数据,所述第一数据块矩阵是对所述源文件进行切割生成的;
[0042]编码校验模块,用于对所述第一数据块矩阵中的数据块重新进行编码校验,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据恢复方法,其特征在于,所述方法包括:当源文件发生损坏时,获取所述源文件对应的、具有预设压缩比的备份数据,其中,所述备份数据包括:第一数据块矩阵中多组数据块分别对应的第一校验数据,所述第一数据块矩阵是对所述源文件进行切割生成的;对所述第一数据块矩阵中的数据块重新进行编码校验,得到与每个所述第一校验数据对应的第二校验数据;根据所述第一校验数据和所述第一校验数据对应的第二校验数据的差值,确定所述第一数据块矩阵中的异常数据块;根据所述异常数据块对应的第一校验数据和第二校验数据,对所述异常数据块进行恢复。2.根据权利要求1所述的方法,其特征在于,在获取所述源文件的备份数据之前,所述方法包括:获取源文件,将所述源文件切割为第一数据块矩阵;对所述第一数据块矩阵中每个数据块进行编码校验,得到每个数据块对应的校验数据;根据所述第一数据块矩阵中各组数据块对应的校验数据,得到所述第一校验数据,将所述第一校验数据作为备份数据,并存储所述备份数据。3.根据权利要求2所述的方法,其特征在于,所述第一数据块矩阵为N
×
N的矩阵,所述预设压缩比为N:2,N为2的幂指数;所述根据所述第一数据块矩阵中各组数据块对应的校验数据,得到所述第一校验数据,包括:将所述第一数据块矩阵单行中包含的数据块的校验数据之和,确定为所述第一校验数据;以及将所述第一数据块矩阵单列中包含的数据块的校验数据之和,确定为所述第一校验数据。4.根据权利要求3所述的方法,其特征在于,所述根据所述第一校验数据和所述第一校验数据对应的第二校验数据的差值,确定所述第一数据块矩阵中的异常数据块,包括:如果所述第一数据块矩阵中任一行数据块对应的第一校验数据和该行数据块对应第二校验数据的行差值不等于0,确定该任一行数据块中存在异常数据块;如果所述第一数据块矩阵中任一列数据块对应的第一校验数据和该列数据块对应第二校验数据的列差值不等于0,确定该任一列数据块中存在异常数据块;根据所述第一数据块矩阵中各行数据块对应的行差值和各列数据块对应的列差值,确定异常数据块。5.根据权利要求1所述的方法,其特征在于,所述根据所述异常数据块对应的第一校验数据和第二校验数据,对所述异常数据块进行恢复,包括:如果所述异常数据块的数量小于或等于预设数量,根据所述异常数据块对应的第一校验数据和第二校验数据,对所述异常数据块进行恢复;如果所述异常数据块的数量大于所述预设数量,根据所述异常数据块在所述第一数据块矩阵中的位置分布,确定是否对所述异常数据块进行恢复。
6.根据权利要求5所述的方法,其特征在于,所述根据所述异常数据块在所述第一数据块矩阵中的位置分布,确定是否对所述异常数据块进行恢复,包括:如果所述第一数据块矩阵中存在第一异常数据块,根据所述第一异常数据块所在行数据块对应的第一校验数据和第二校验数据,对所述第一异常数据块进行恢复;其中,所述第一异常数据块为所述第一异常数据块所在行中唯一的异常数据块;如果所述第一数据块矩阵中存在第二异常数据块,根据所述第二异常数据块所在列数据块对应的第一校验数据和第二校验数据,对所述第二异常数据块进行恢复;其中,所述第二异常数据块为所述第二异常数据块所在列中唯一的异常数据块;在对所述第一异常数据块和所述...

【专利技术属性】
技术研发人员:马剑博
申请(专利权)人:北京字跳网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1