基于SQLite数据库的丢失数据的恢复装置和方法

文档序号:9326762阅读:1272来源:国知局
基于SQLite数据库的丢失数据的恢复装置和方法
【技术领域】
[0001] 本发明属于数据恢复技术领域,具体涉及一种基于SQLite数据库的丢失数据的 恢复装置和方法。
【背景技术】
[0002] SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌 入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百KB的内存 就够了。它能够支持Windows/Linux/Unix/Mac OSX等等主流的操作系统,同时能够跟很多 程序语言相结合。SQLite以资源占用少、操作简洁、零管理成本、性能良好、代码开源等一系 列特性广泛的应用于嵌入式设备、桌面应用以及Websites等领域。
[0003] 然而,一旦基于SQLite数据库的系统发生了数据丢失的情况,往往会给用户带来 诸多不便,现有的进行SQLite数据库恢复的方法一般都是针对某个应用程序,比如微信, QQ等,并不能解决整个数据库的数据丢失问题,即便有针对整个数据库进行数据恢复的方 法也存在数据恢复不全,恢复的数据不够准确以及运行效率低下等情况。
[0004] 比如,申请日为2012年10月30日,申请号为201210430026. 0,发明名称为一种恢 复移动终端已删除SQLite文件的方法和装置针对SQLite数据丢失提出了一种解决方案, 本发明提供的方法预先设置若干种SQLite页特征规则,当检测到移动终端时,执行步骤: 获取当前移动终端的镜像文件;解析当前移动终端的镜像文件并设置搜索区域;根据搜索 区域内的数据特征调用至少一种预先设置的SQLite页特征规则,以SQLite页特征规则作 为匹配依据对搜索区域内的数据进行匹配,获得当前移动终端上已删除的SQLite文件页 碎片;最后对当前移动终端上已删除的SQLite文件页碎片内的数据进行解码。本发明提供 的方案可获取移动终端上所有已删除SQLite文件未被覆盖的页碎片内有效数据,恢复成 功率及恢复完整性高。
[0005] 上述解决方案存在以下缺陷:以页作为特征规则,使得数据恢复的规则筛选范围 过大,恢复数据的精细化程度不高,导致数据恢复仍然不够全面,完整性也有待提高,且运 行效率低下。
[0006] 另外,上述解决方案仅仅是针对移动终端,而现实情况中在PC端和其它应用平台 也大量使用SQLite数据库,因此现有的解决方案并不能满足现实情况的需求。

【发明内容】

[0007] 本发明针对现有技术的不足,提供了一种基于SQLite数据库的丢失数据的恢复 装置和方法,能够有效解决现有技术数据恢复不够全面,运行效率低下等问题。
[0008] 为解决以上问题,本发明采用的技术方案如下:一种基于SQLite数据库的丢失数 据的恢复装置,包括以下模块:
[0009] 特征配置模块:用于配置包含待恢复数据的源数据库中部分或全部表的列的属性 特征;
[0010] 特征匹配模块:用于将列的属性特征与待恢复数据进行匹配验证。
[0011] 作为优选,特征配置模块包含以下单元:
[0012] 数据库加载单元:用于读取待恢复数据的源数据库的信息;
[0013] 特征定义单元:用于设置源数据库中部分或全部表的列的属性特征,包括列值类 型、列值长度和列数量;
[0014] 保存单元:用于保存列的属性特征至预置的特定文件类型中。
[0015] 作为优选,特征匹配模块包含以下单元:
[0016] 数据库加载单元:用于读取源数据库的信息;
[0017] 特征匹配单元:用于将列的属性特征与待恢复数据进行匹配验证;
[0018] 保存单元:用于将匹配成功的信息进行保存。
[0019] 作为优选,特征匹配模块还包含以下单元:
[0020] 显示单元:用于将读取的源数据库的信息以表格形式展示,并将匹配成功的信息 解码展示到显示单元;
[0021] 设置单元:用于设置显示单元所需显示的表和列。
[0022] 为了实现本发明目的,本发明还提供了一种基于SQLite数据库的丢失数据的恢 复方法,其包括以下步骤:
[0023] Sl配置包含待恢复数据的源数据库中部分或全部表的列的属性特征;
[0024] S2将特列的属性特征与待恢复数据进行匹配验证。
[0025] 作为优选,Sl的详细流程如下所述:
[0026] Sll读取包含待恢复数据的源数据库;
[0027] S12根据Sll中获取的源数据库,设置包含待恢复数据的表的列的属性,包括列值 类型、列值长度和列数量;
[0028] S13保存S12设置的列的属性至预置的特定文件类型中。
[0029] 作为优选,S2的详细流程如下所述:
[0030] S21从0字节开始遍历读取待恢复的镜像文件;
[0031] S22读取Sl中配置的源数据库的列的属性特征;
[0032] S23将列的属性特征与待恢复数据进行匹配验证;
[0033] S24根据SQLite数据库存储规则进行信息解码,并按照源数据库格式恢复数据库 的丢失数据。
[0034] 作为优选,S23的详细流程如下所述:
[0035] 以S23的列的属性特征作为匹配规则,对读取的镜像文件扫描匹配管理字节,扫 描时从镜像文件〇字节开始依次读取长度为最小扫描单元的内容进行匹配,匹配成功则跳 至S24,否则跳转至下一个字节即1字节,继续执行本步骤,其中最小扫描单元=3+列的数 量。
[0036] 作为优选,S23判断结构是否匹配的方法为:在扫描过程中成功匹配数据时,则向 前读取3个字节的数据内容,并检验其是否满足存储数据的结构特征。
[0037] 作为优选,所述的检验其是否满足存储数据的结构特征规则如下:
[0038] 规则1 :数据符合正常的payload结构,则直接按照结构读取;
[0039] 规则2 :数据不符合正常payload结构时,又分为多字节匹配和单字节匹配,当字 节的第八位为1时,表明该管理项为多字节,多字节的处理方式为读取的数据中当字节第 八位为1时,继续向下读取,直至字节的第八位为O结束,将读取的字节作为一个管理项, 去掉每字节的第八位构成新的值作为该管理项对应数据的长度值;当字节的第八位为O 时,表示该字节为单字节,其值即为该管理项的长度;根据匹配成功的字节中记录的关于 列长度的值,向后匹配数据内容,在匹配的过程中将数据库定义时的数据类型划分为int、 double、text、blob,按照这四种类型进行逐一匹配。
[0040] 本发明的有益效果如下:由于本发明采用了列的属性特征作为匹配规则,筛选单 位小于页结构,因此可以保证恢复的数据具有较高的完整性,并且提升了数据恢复的效率; 由于本发明采用了匹配验证的手段,因此可以保证恢复的数据具有较高的准确性;本发明 还能根据不同应用条件下自定义源数据库的特征来恢复所有使用到SQLite数据库的应用 数据,而不仅仅限于移动终端,因此应用平台十分广泛,具有良好的应用前景。
【附图说明】
[0041] 图1数据库中数据存储的结构(payload)示意图。
【具体实施方式】
[0042] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对 本发明做进一步详细说明。
[0043] 本发明提出一种基于SQLite数据库的丢失数据的恢复的装置和方法,结合 SQLite 3版本的数据存储结构,简要介绍SQLite数据库在存储数据时的特点。SQLite数 据库的页结构中使用BTree树,而数据库中列值存储在BTree的单元内容区中,单元内容区 中数据以图1所示的格式进行存储。匹配过程中,通过读取源数据库的特征信息,待恢复数 据按照特征信息进行逐一匹配,匹配成功后再结合图1所示的数据存储结构进一步验证数 据的完整性和有效性。
[0044] 实施例1 :
[0045] -种基于SQLite数据库的丢失数据的恢复装置,包括以下模块:
[0046] 特征配置模块:用于配置包含待恢复数据的源数据库中部分或全部表的列的属性 特征;
[0047] 特征匹配模块:用于将列的属性特征与待恢复数据进行匹配验证。
[0048] 进一步地,特征配置模块包含以下单元:
[0049] 数据库加载单元:用于读取含待恢复数据的数据库的信息;
[0050] 特征定义单元:用于设置源数据库中部分或全部表的列的属性特征,包括列值类 型、列值长度和列数量;
[0051] 保存单元:用于保存列的属性特征至预置的特定文件类型中。
[0052] 进一步地,特征匹配模块包含以下单元:
[0053] 数据库加载单元:用于读取源数据库的信息;
[0054] 特征匹配单元:用于将列的属性特征与待恢复数据进行匹配验证;
[0055] 保存单元:用于将匹配成功的信息进
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1