[发明专利]一种基于InnoDB的碎片文件恢复方法、装置及存储介质有效
| 申请号: | 201811225169.1 | 申请日: | 2018-10-19 |
| 公开(公告)号: | CN109408290B | 公开(公告)日: | 2021-02-26 |
| 发明(设计)人: | 梁德荣;田庆宜;黄建邦;沈长达;吴少华;张学君 | 申请(专利权)人: | 厦门市美亚柏科信息股份有限公司 |
| 主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F16/28 |
| 代理公司: | 厦门福贝知识产权代理事务所(普通合伙) 35235 | 代理人: | 郝学江 |
| 地址: | 361000 福建省厦门市*** | 国省代码: | 福建;35 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 innodb 碎片 文件 恢复 方法 装置 存储 介质 | ||
1.一种基于InnoDB的碎片文件恢复方法,其特征在于,该方法包括:
读取步骤,从基于InnoDB的初始位置Offset=0开始读取n字节数据作为InnoDB数据文件的一个数据页,所述碎片文件是ibdata和/或ibd碎片文件;
匹配步骤,读取所述数据页的前4个字节记为校验值CheckSum1,使用数据页的折叠和校验算法计算出所述数据页的校验值CheckSum2,判断CheckSum1是否等于CheckSum2,如果否,则Offset=Offset+m,重新执行读取步骤,如果是,则执行恢复步骤,所述使用数据页的折叠和校验算法计算出所述数据页的校验值CheckSum2的操作为:从所述数据页的第4个字节开始取长度为22字节的一段数据进行折叠异或计算得到检验值为sum1,从所述数据页的第38个字节开始取长度为n-46字节的一段数据进行折叠异或计算得到检验值为sum2,则该数据页的校验值Checksum2=sum1+sum2;
恢复步骤,读取所述数据页的页号PageNo和该数据页所属文件的文件标识FileId,根据所述FileId进行数据页的合并,并根据页号PageNo在所属文件内从小到大进行排序,然后令Offset=Offset+n,重新执行读取步骤;
其中,m为一个数据偏移单位,n为一个数据页的大小。
2.根据权利要求1所述的方法,其特征在于,
定义两个整型数异或值算法,操作符设为**:设两个4字节整型数a和b,异或值算法为:
a**b=(((((a^b^RANDOM_MASK)8)+a)^RANDOM_MASK2)+b);
即a异或b异或RANDOM_MASK的值左移8加a再异或RANDOM_MASK2加b;
所述折叠异或计算的操作为:设置折叠数fold初始值为0,按字节顺序遍历该段数据,设遍历结构为数据集N{N1,N2,N3,..,Nm},依次按整型数异或值算法与fold进行计算,返回值更新到fold,即fold=fold**Ni,其中,1=i=m,RANDOM_MASK=1653893711,RANDOM_MASK2=1463735687。
3.根据权利要求2所述的方法,其特征在于,按字节顺序遍历该段数据形成数据集N{N1,N2,N3,..,Nm}的操作为:从该段数据的起始位置按照每四个字节读出生成一个4字节整型数,如果最后剩余的数据小于4个字节,将剩余的字节数形成一个整数作为Nm。
4.一种基于InnoDB的碎片文件恢复装置,其特征在于,该装置包括:
读取单元,用于从基于InnoDB的初始位置Offset=0开始读取n字节数据作为InnoDB数据文件的一个数据页,所述碎片文件是ibdata和/或ibd碎片文件;
匹配单元,用于读取所述数据页的前4个字节记为校验值CheckSum1,使用数据页的折叠和校验算法计算出所述数据页的校验值CheckSum2,判断CheckSum1是否等于CheckSum2,如果否,则Offset=Offset+m,重新执行读取单元的操作,如果是,则执行恢复单元的操作,所述使用数据页的折叠和校验算法计算出所述数据页的校验值CheckSum2的操作为:从所述数据页的第4个字节开始取长度为22字节的一段数据进行折叠异或计算得到检验值为sum1,从所述数据页的第38个字节开始取长度为n-46字节的一段数据进行折叠异或计算得到检验值为sum2,则该数据页的校验值Checksum2=sum1+sum2;
恢复单元,用于读取所述数据页的页号PageNo和该数据页所属文件的文件标识FileId,根据所述FileId进行数据页的合并,并根据页号PageNo在所属文件内从小到大进行排序,然后令Offset=Offset+n,重新执行读取单元的操作;
其中,m为一个数据偏移单位,n为一个数据页的大小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市美亚柏科信息股份有限公司,未经厦门市美亚柏科信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811225169.1/1.html,转载请声明来源钻瓜专利网。





