【技术实现步骤摘要】
一种基于SQLite全文索引的数据恢复方法及其系统
[0001]本专利技术属于数据恢复
,具体涉及一种基于SQLite全文索引的数据恢复方法及其系统。
技术介绍
[0002]SQLite是一款轻型的嵌入式型数据库。相比于Mysql、PostgreSQL数据库,SQLite有着更好的实时性、处理速度更快、占用资源非常小等优点。
[0003]在智能手机为代表等移动终端的迅速普及,SQLite数据库被广泛使用于各种通讯软件中。目前市面上的Sqlite恢复工具,使用的数据恢复技术大多恢复效率低。对于存储在SQLite数据库上的数据,删除的数据大多恢复不回来。所以寻求一些新的恢复方法,能够提高SQLite的数据恢复效率。
[0004]随着各种通讯软件对于数据存储、数据检索的需求,SQLite支持了全文搜索,可以方便用户快速进行查找。SQLite以虚拟表的方式存在着全文检索相关的数据,存储着大量有用的数据内容。SQLite数据删除后,全文检索中对应的数据会被标记保留在对应的索引数据中,而这些数据碎片的内容有可能提高Sqlite的数据恢复效率。因此需要寻求一种基于SQLite全文索引的数据恢复方法。
[0005]现有的SQLite删除数据恢复技术,具有很大的局限性,删除数据恢复不够全面。其中有一种技术方法是基于空闲页进行删除数据恢复,另一种现有技术方法是基于日志文件进行删除数据的恢复,这些技术具有如下问题:
[0006]1、基于空闲页的删除数据的恢复方法,对于新记录更新,可能导致删除数据被覆盖 ...
【技术保护点】
【技术特征摘要】
1.一种基于SQLite全文索引的数据恢复方法,其特征在于,该方法包括如下步骤:S1、响应于解析并获取带有全文索引的SQLite DB文件的虚拟表中的数据;S2、对获取的索引数据中的数据碎片进行提炼;以及S3、进一步对提炼的所述数据碎片集合进行组装,以对删除数据进行恢复。2.根据权利要求1所述的基于SQLite全文索引的数据恢复方法,其特征在于,在S1之前还包括:预先提取带有SQLite全文索引的虚拟表中的两张关联的数据表,两张所述关联的数据表分别是表名称以_content结尾的表和以_data结尾的表。3.根据权利要求2所述的基于SQLite全文索引的数据恢复方法,其特征在于,S1具体包括:S11、选择虚拟表中表名称以_data结尾的表中block列字段的一行数据,block列字段中的数据主要以id列作为标准进行组合排列,优先提取_data结尾的表中id值较小的block字段数据,已经处理过的数据则跳过;若存在多张虚拟表,则对多张虚拟表进行单独解析恢复处理。4.根据权利要求3所述的基于SQLite全文索引的数据恢复方法,其特征在于,S1还包括:S12、解析当前id的数据的头部信息,以提取第一个主键ID的偏移位置以及第一个页眉的偏移位置,同时校验第一块的主键ID的偏移位置和第一个页眉的偏移位置是否正常,存在异常的情况下则排除当前的block数据,正常的情况下则执行S13步骤进行处理;S13、判断当前数据中是否有第一个页眉的位置信息,如果有第一个页眉的信息,说明数据是包含了多个数据块,每个数据块对应的起始主键ID不做叠加重新开始,则执行步骤S14,没有说明当前id中的数据是一整块数据则执行S2对数据碎片进行提炼;S14、解析当前id的数据内容,并从第一个页眉的偏移位置开始往后提取出每一个页眉的偏移位置信息,并做临时存储,用于步骤S15;同一个id的数据中页眉的偏移位置之间存在相关性,以前一块页眉的偏移位置作为基础下,进行计算下一个页眉的偏移位置;S15、根据S14得到的当前id对应的block数据中的所有的页眉偏移位置信息,根据页眉的偏移位置提取出每一个数据块的起始和终止偏移位置,并根据起始和终止偏移位置获取到各个数据块的内容。5.根据权利要求4所述的基于SQLite全文索引的数据恢复方法,其特征在于,S2具体包括:S21、根据S15得到的各个数据块的内容,解析每个数据块的数据碎片;S22、根据S21得到的数据碎片的集合,结合当前的虚拟表中以表_content数据信息,进行数据碎片裁剪;S23、保存裁剪后的各个主键ID的已删除的数据碎片的集合,如果上一个id的block数据已经解析出来一些数据碎片的集合,则需要与当前的集合并为同一个集合;S24、判断当前id的block数据是否存在没有解析的数据,如果存在没有解析的数据则执行S25,当前id的block数据全部解析完成的则执行步骤S26;S25、对未解析的数据内容,保存并用于下一个相邻id的block数据中,同时需要标记当前未解析的数据是否是已经处理过的数据内容剩余的,如果是处理过的剩余数据则需要记录下这块数据的一些标识,包含前缀的数据片、前缀的偏移值位置以及主键ID;
S26、判断当前表的所有id对应的block数据是否已经全部解析完成,如果没有解析完成,则获取下一个id值最接近的block数据,然后执行S11,在当前虚拟表中所有的id全部解析完成的情况下,则执行S27;S27、对于步骤S25中存在未...
【专利技术属性】
技术研发人员:吴少华,吴江煌,连慧奇,林文财,张旭,
申请(专利权)人:厦门理工学院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。