[发明专利]innodb引擎删除记录的离线恢复方法、存储介质有效
申请号: | 201711213512.6 | 申请日: | 2017-11-28 |
公开(公告)号: | CN108062358B | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 梁德荣;田庆宜;沈长达;吴少华 | 申请(专利权)人: | 厦门市美亚柏科信息股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/28;G06F16/245 |
代理公司: | 深圳市博锐专利事务所 44275 | 代理人: | 张明 |
地址: | 361000 福建省厦门*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | innodb 引擎 删除 记录 离线 恢复 方法 存储 介质 | ||
1.一种innodb存储引擎删除记录的离线恢复方法,其特征在于,包括:
依据表空间文件的数据字典信息获取索引页的根节点页号;
从所述根节点页号开始,遍历每个节点;
通过遍历每个节点对应索引页的正常记录链表以及删除记录链表中的每条记录,依据每条记录的偏移地址和记录号,以及当前索引页内所有的记录数,获取未维护删除记录对应的记录号以及偏移地址范围;
依据未维护删除记录的记录号,从对应的偏移地址范围中解析得到与所述未维护删除记录的记录号一致的记录;
所述通过遍历每个节点对应索引页的正常记录链表以及删除记录链表中的每条记录,依据每条记录的偏移地址和记录号,以及当前索引页内所有的记录数,获取系统未维护的删除记录对应的记录号以及偏移地址范围;具体为:
S01:遍历当前节点对应的索引页的正常记录链表,获取所有正常记录,同时记录每条正常记录的记录号和偏移地址;
遍历当前节点对应的索引页的删除记录链表,获取所有删除记录,同时记录每条删除记录的记录号和偏移地址;
S02:获取当前索引页内所有的记录数;
S03:依据所述所有的记录数,以及所述每条正常记录的记录号和偏移地址、每条删除记录的记录号和偏移地址,确定未维护删除记录的记录号和偏移地址范围;
所述依据未维护删除记录的记录号,从对应的偏移地址范围中解析得到与所述未维护删除记录的记录号一致的记录,具体为:
S04:获取一未维护删除记录对应的记录号、起始偏移地址以及结束偏移地址;
S05:从起始偏移地址开始,随着当前指针的移动,判断当前指针指向的偏移地址所对应的记录的记录号是否等于所述一未维护删除记录对应的记录号;若是,则执行S06;
S06:判断所述当前指针指向的偏移地址对应的记录的slot所拥有的记录数是否匹配;若是则执行S07;
S07:判断所述当前指针指向的偏移地址对应的记录的每个字段长度是否正确;若是,则执行S08;
S08:获取所述当前指针指向的偏移地址对应的记录;
S09:获取下一未维护删除记录对应的记录号、起始偏移地址以及结束偏移地址;返回执行S05。
2.如权利要求1所述的一种innodb存储引擎删除记录的离线恢复方法,其特征在于,若记录的格式为Redundant;则所述S07具体为:
判断所述当前指针指向的偏移地址对应的记录的每个字段长度是否正确;
若是,则判断所述当前指针指向的偏移地址对应的记录的记录状态是否正确;
若是,则执行S08。
3.如权利要求1所述的一种innodb存储引擎删除记录的离线恢复方法,其特征在于,所述依据表空间文件的数据字典信息获取索引页的根节点页号;具体为:
分析表空间文件,获取其数据字典信息;
依据所述数据字典信息,从数据字典中的系统表中获取所述表空间文件的索引页的根节点页号。
4.如权利要求1所述的一种innodb存储引擎删除记录的离线恢复方法,其特征在于,还包括:
判断解析得到的记录的时间字段是否符合规则要求,以及对照其字符串类型判断其字符串长度是否正确;
若均符合,则判定解析成功。
5.一种计算机可读存储介质,其内存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-4任意一项所述的一种innodb存储引擎删除记录的离线恢复方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市美亚柏科信息股份有限公司,未经厦门市美亚柏科信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711213512.6/1.html,转载请声明来源钻瓜专利网。