[发明专利]一种针对MongoDB-MMAPv1引擎的数据恢复方法有效
申请号: | 202110342466.X | 申请日: | 2021-03-30 |
公开(公告)号: | CN113076221B | 公开(公告)日: | 2023-05-02 |
发明(设计)人: | 梁效宁;许超明;张强;刘涛 | 申请(专利权)人: | 四川效率源信息安全技术股份有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F16/182 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 641000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 mongodb mmapv1 引擎 数据 恢复 方法 | ||
1.一种针对MongoDB-MMAPv1引擎的数据恢复方法,其特征在于包括以下步骤:
S100:加载MongoDB-MMAPv1引擎的数据库文件/数据库镜像,读取所述数据库文件/数据库镜像的字节长度,将当前偏移地址赋初值为0;
S200:寻址当前偏移地址并读取连续的4字节内容,判断是否为MongoDB-MMAPv1数据分区标识,如果是,执行步骤S300,否则执行步骤S600;
S300:从所述数据分区标识向后偏移152字节并读取连续的4字节内容作为分区长度,判断当前分区长度是否合法,如果是,执行步骤S400,否则执行步骤S600;
S400:从所述数据分区标识向后偏移4字节并读取连续的4字节内容作为分区页内偏移;
从所述数据分区标识向后偏移160字节并读取连续的4字节内容作为首记录偏移;
从所述数据分区标识向后偏移168字节并读取连续的4字节内容作为末记录偏移;
判断分区页内偏移、首记录偏移及末记录偏移是否合法,如果是,执行步骤S500,否则执行步骤S600;
S500:根据MongoDB-MMAPv1分区结构、磁盘定位指针结构及记录结构,逐一读取数据库的记录,并采用bson格式解析当前记录,直至当前分区的各个记录解析完毕;
S600:判断所述MongoDB-MMAPv1引擎的数据库文件/数据库镜像是否解析完毕完成,如果是,结束流程,否则,执行步骤S200。
2.根据权利要求1所述的一种针对MongoDB-MMAPv1引擎的数据恢复方法,其特征在于,所述步骤S200包括以下步骤:
S201:寻址当前偏移地址并读取连续的4字节内容;
S202:判断所读取4字节内容是否为MongoDB-MMAPv1数据分区标识0x41424344,如果是,执行步骤S300,否则,执行步骤S203;
S203:当前偏移地址=当前偏移地址+1,执行步骤S600。
3.根据权利要求1所述的一种针对MongoDB-MMAPv1引擎的数据恢复方法,其特征在于,所述步骤S300包括以下步骤:
S301:从所述数据分区标识向后偏移152字节并读取连续的4字节内容作为分区长度;
S302:判断当前偏移地址加当前分区长度的和是否大于所述数据库文件/数据库镜像的字节长度,如果是,执行步骤S303,否则,执行步骤S400;
S303:当前偏移地址=当前偏移地址+4,执行步骤S600。
4.根据权利要求1所述的一种针对MongoDB-MMAPv1引擎的数据恢复方法,其特征在于,所述步骤S400包括以下步骤:
S401:从所述数据分区标识向后偏移4字节并读取连续的4字节内容作为分区页内偏移;
S402:从所述数据分区标识向后偏移160字节并读取连续的4字节内容作为首记录偏移;
S403:从所述数据分区标识向后偏移168字节并读取连续的4字节内容作为末记录偏移;
S404:判断首记录偏移是否大于分区页内偏移且末记录偏移是否小于分区页内偏移加判断当前分区长度之和,如果是,执行步骤S500,否则,执行步骤S405;
S405:分区页内偏移=分区页内偏移+4,执行步骤S600。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川效率源信息安全技术股份有限公司,未经四川效率源信息安全技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110342466.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自动化程度高的全自动玻纤精密切割锯
- 下一篇:一种硅PU高效率生产工艺