CN105653403B - 一种mdb文件数据的恢复方法及其系统 - Google Patents
一种mdb文件数据的恢复方法及其系统 Download PDFInfo
- Publication number
- CN105653403B CN105653403B CN201610113082.XA CN201610113082A CN105653403B CN 105653403 B CN105653403 B CN 105653403B CN 201610113082 A CN201610113082 A CN 201610113082A CN 105653403 B CN105653403 B CN 105653403B
- Authority
- CN
- China
- Prior art keywords
- data
- page
- deletion
- record
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种MDB文件数据的恢复方法及其系统,方法包括:获取Jet格式的MDB文件;确定已删除数据删除前所处的表格;解析MDB文件的系统表,获取表格的表格定义页;解析表格定义页,得到表格的列定义信息;获取表格的数据页;依据数据页中记录的偏移地址的签名标识位,获取已删除数据的删除记录;依据删除记录的偏移地址以及列定义信息,获取对应删除记录的已删除数据。本发明解决现有MDB文件数据删除后无法恢复的问题,利用MDB本身的结构信息来恢复数据,具有准确度高、恢复数据快的特点;数据无价,为误删除数据的恢复提供了一种行之有效的方法,为失误操作留有后路;同时还能确保所恢复的数据的完整性,无数据丢失。
Description
技术领域
本发明涉及数据库文件数据分析处理领域,具体说的是一种MDB文件数据的恢复方法及其系统。
背景技术
Microsoft Office Access软件开发的Microsoft JET数据库提供一种MDB数据库文件格式。ACCESS数据库本身是没有提供删除记录和删除表格恢复的功能,因为它本身是一个实时增加、重组的数据库,没有办法全部缓冲删除的记录。
Microsoft没有也不会提供MDB格式二进制组织方式,目前国内外已有的研究资料也是说MDB中误删除的记录、误删除的表格是无法恢复的,因为ACCESS数据库本身是没有物理删除和逻辑删除的概念的,一旦删除就无法恢复了。也就是说针对于删除的数据,如果不考虑备份数据的话只有通过解析文件的方法来进行恢复。
Microsoft Access MDB文件格式有Jet3和Jet4两种,而Jet格式的文件在创建之初会有一部分初始化的数据。目前研究中发现MDB文件有一些固定的结构:
1、MDB文件由固定大小的页组成,文件中所有的数据都存储在页中,Jet3格式中页的大小为2k,Jet4中页的大小为4k;
2、固有的系统表包括:窗体、宏、报表、模块、数据表、查询、列表等等。他们在文件新建的时候就被创建,有着固定的偏移位置/入口,其中系统表MSysObjects中包含所有表格的定义表格页的相对偏移地址;
3、每个页第一个字节就是类型定义签名。除了文件开始的页(包括文件版本信息、密码等等)有着自身特有的签名,其它页的类型由每个页的签名标识。页的种类有:数据库定义页(签名:0x00)、数据页(签名:0x01)、表格定义页(签名:0x02)、中间索引页(签名:0x03)、叶子索引页(签名:0x04)、文件已用页分布图(签名:0x05)、删除表格的表格定义页(签名:0x08)等等。
MDB文件表格相关页的说明:
对于一个表格(不管是系统表还是用户自己创建的表格)重要的页包括:表格的定义页(一个表格唯一对应一个定义页)、索引页(包括中间索引页、叶子索引页)、数据页(包括溢出页)。
MDB文件简单的分布结构如图1所示:
不管是系统表还是用户表,始终包括如图2所示的三部分:
表格不同页之间的联系如下:
1、表格定义页中的信息有:列/字段的定义(即段定义),具体包括列名称、列类型、列的长度等,规定每一列所存储的数据类型;该表格的索引页的相对偏移地址,指向中间索引页或者叶子索引页们,可以由中间索引页找到叶子索引页。
2、索引页中包含的信息:表格定义页的相对偏移,中间索引页指向所有的叶子索引页,叶子索引页中存储着表格数据页的相对偏移地址。
3、数据页包含的信息:表格定义页的相对偏移地址、正常的记录、删除的记录、溢出数据等。当然数据也还包括备注页等等其他信息。
可见,表格定义页指向索引页,索引页指向数据页,而数据页和索引页都指向表格定义页。因为MDB文件由页组成,所以文中提到的所有指向页均意为相对于文件首页,该页的页偏移量。
在Microsoft Access MDB文件中删除一条记录的时候,会提示说不可恢复。具体的,MDB文件数据的删除,是以每一行为单位的数据删除,当数据删除后,该行数据在数据页中的记录的签名标识位将从0变为C,但是对应数据页包含的记录总数没有改变。在ACCESS数据库实时增加和重组的特性下,若所删除数据记录还存储在磁盘中,则可以实现数据的恢复。
发明内容
本发明所要解决的技术问题是:提供一种MDB文件数据的恢复方法,实现已删除的MDB文件数据的恢复。
为了解决上述技术问题,本发明采用的技术方案为:
一种MDB文件数据的恢复方法,包括:
获取Jet格式的MDB文件;
确定已删除数据删除前所处的表格;
解析所述MDB文件的系统表,获取所述表格的表格定义页;
解析所述表格定义页,得到所述表格的列定义信息;
获取所述表格的数据页;
依据所述数据页中记录的偏移地址的签名标识位,获取所述已删除数据的删除记录;
依据所述删除记录的偏移地址以及所述列定义信息,获取对应所述删除记录的已删除数据。
本发明提供的另一个技术方案为:
一种MDB文件数据的恢复系统,包括:
第一获取模块,用于获取Jet格式的MDB文件;
确定模块,用于确定已删除数据删除前所处的表格;
解析模块,用于解析所述MDB文件的系统表;
第二获取模块,用于获取所述表格的表格定义页;
第三获取模块,用于获取所述表格的数据页;
第四获取模块,用于依据所述数据页中记录的偏移地址的签名标识位,获取所述已删除数据的删除记录;
第五获取模块,用于依据所述删除记录的偏移地址以及所述列定义信息,获取对应所述删除记录的已删除数据。
本发明的有益效果在于:解决现有技术无法实现已删除MDB文件数据的恢复,无法满足MDB文件数据恢复需求的问题。本发明提供一种MDB文件数据的恢复方法及其系统;基于表格的数据都被记录在数据页中,而表格的列定义信息都被存储在表格定义页中,因此,只需通过确定已删除数据在数据页中的删除记录,然后按照对应的列定义信息解析,即可实现已删除MDB文件数据的恢复。本发明通过解析存储有所有表格的表格定义页位置的系统表,获取待恢复MDB文件数据删除前所处的表格所对应的表格定义页,解析表格定义页得到列定义信息;然后获取表格的数据页,依据数据删除后签名标识位的变化,以及列定义信息,解析获取已删除数据。基于MDB数据本身的结构信息实现了高准确性、完整地恢复MDB文件数据,为误删数据的恢复提供有效的补救措施,更好的满足人们的需求。
附图说明
图1为MDB文件的分布结构图;
图2为MDB文件表格的结构组成示意图;
图3本发明一种MDB文件数据的恢复方法的流程示意图;
图4为本发明实施例一一种MDB文件数据的恢复方法的流程示意图;
图5为本发明实施例二一种MDB文件数据的恢复方法的流程示意图;
图6为本发明一种MDB文件数据的恢复系统的功能模块结构组成示意图;
图7为本发明实施例三一种MDB文件数据的恢复系统的功能模块结构组成示意图;
图8为本发明实施例四一种MDB文件数据的恢复系统的功能模块结构组成示意图;
图9为运用本发明的MDB文件数据的恢复方法恢复得到的MDB文件数据结果示意图。
标号说明:
1、第一获取模块;2、确定模块;3、解析模块;4、第二获取模块;
5、第三获取模块;6、第四获取模块;7、第五获取模块;
71、第一获取单元;72、解析单元;
721、判断单元;722、第二获取单元;723、第三获取单元。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:获取已删除数据删除前所处表格的列定义信息,以及表格的数据页;依据数据删除后的签名标识位确定删除记录,再依据列定义信息以及删除记录的偏移地址,获取已删除数据。
本发明涉及的技术术语解释:
请参照图1、图2以及图3,本发明提供一种MDB文件数据的恢复方法,包括:
获取Jet格式的MDB文件;
确定已删除数据删除前所处的表格;
解析所述MDB文件的系统表,获取所述表格的表格定义页;
解析所述表格定义页,得到所述表格列定义信息;
获取所述表格的数据页;
依据数据删除后的签名标识以及所示数据页中记录的偏移地址的签名标识为,获取所述已删除数据的删除记录;
依据所述删除记录的偏移地址以及所述列定义信息,获取对应所述删除记录的已删除数据。
本方案谈论的删除记录的恢复是指该记录依然存在于磁盘中的情况下。
从上述描述可知,本发明的有益效果在于:本发明基于MDB文件结构特征的基础上,提出了恢复已删除MDB文件数据的方法,最大程度上利用MDB本身的结构信息来恢复数据,具有准确度高、恢复数据快的特点;数据无价,本发明为误删除数据的恢复提供了一种行之有效的方法,为失误操作留有后路。
进一步的,所述“获取所述表格的数据页”具体为:
通过扫描MDB文件得到所述表格的数据页。
由上述描述可知,由于数据页具有特定的签名标识,而不同表格的数据页也有指向自己的表格定义页相对偏移地址的记录;为了防止数据记录的遗漏,通过扫描整个MDB文件获取特定表格的所有数据页,能够确保所获取数据页的全面性,提高数据恢复的准确性,避免发生数据遗漏;特别的,由于一次性获取所有的数据页,因此在解析过程中便无需考虑溢出数据问题,实现了数据恢复的高效性和便捷性。
进一步的,所述“获取所述表格的所有数据页”具体为:
依据所述表格的索引页中存储的所述表格的数据页的偏移地址,获取所述表格的数据页。
由上述描述可知,由于表格的索引页下的叶子索引页中存储有表格数据页的偏移地址,因此,也可以通过索引页获取数据页。
请参阅图4,进一步的,所述“依据所述数据页中记录的偏移地址的签名标识位,获取所述已删除数据的删除记录;依据所述删除记录的偏移地址以及所述列定义信息,获取对应所述删除记录的已删除数据”具体为:
依据数据删除后所述数据页中记录的偏移地址的签名标识位的改变,获取所述数据页中两条以上的删除记录;
依据一删除记录的偏移地址,获取对应所述一删除记录的数据信息;
依据所述列定义信息对所述数据信息进行解析,获取对应所述一删除记录的已删除数据。
由上述描述可知,由于数据删除后,对应的删除记录只是将数据偏移地址的签名标识位0变成C,即只是将签名标识位0X0变成0XC;因此,便可依据签名标识位获取已删除数据的记录信息;然后,依据记录信息的偏移地址,确定已删除数据在数据页中数据记录的起始位置,获取已删除数据信息,即通过偏移地址确定已删除数据的长度;最后,依据列定义信息对所述已删除数据信息进行解析,便可恢复已删除数据。
请参阅图5,进一步的,所述“依据所述列定义信息对所述数据信息进行解析,获取对应所述一删除记录的已删除数据”具体为:
依据所述一删除记录的签名标识位以及记录的当前行中列/字段的个数,判断所述一删除记录中记录的当前行数据信息是正常记录数据还是溢出记录数据;
若为正常记录数据,则依据所述列定义信息对所述当前行数据信息进行解析,获取对应所述一删除记录的已删除数据;
若为溢出数据,则依据所述当前行中列/字段的个数,获取溢出数据在所述数据页中的位置;依据所述列定义信息解析所述位置对应的数据信息,获取对应所述一删除记录的已删除数据。
由上述描述可知,本发明还提供数据页中溢出数据的恢复方法,针对溢出数据,先确定溢出数据的位置,然后再解析获取溢出部分的数据,确保数据恢复的完整性,提高数据恢复的准确性。
请参阅图6,本发明提供的另一个技术方案为:
一种MDB文件数据的恢复系统,包括:
第一获取模块1,用于获取Jet格式的MDB文件;
确定模块2,用于确定已删除数据删除前所处的表格;
解析模块3,用于解析所述MDB文件的系统表;
第二获取模块4,用于获取所述表格的表格定义页;
第三获取模块5,用于获取所述表格的数据页;
第四获取模块6,用于依据所述数据页中记录的偏移地址的签名标识位,获取所述已删除数据的删除记录;
第五获取模块7,用于依据所述删除记录的偏移地址以及所述列定义信息,获取对应所述删除记录的已删除数据。
进一步的,所述第三获取模块5,具体用于通过扫描MDB文件得到所述表格的所有数据页。
进一步的,所述第三获取模块5,具体用于依据所述表格的索引页中存储的所述表格的数据页的偏移地址,获取所述表格的数据页。
进一步的,所述第四获取模块6,具体用于依据数据删除后所述数据页中记录的偏移地址的签名标识位的改变,获取所述数据页中两条以上的删除记录;
第五获取模块7包括:
第一获取单元71,用于依据一删除记录的偏移地址,获取对应所述一删除记录的数据信息;
解析取单元72,用于依据所述列定义信息对所述数据信息进行解析,获取对应所述一删除记录的已删除数据。
进一步的,所述解析单元72包括:
判断单元721,用于依据所述一删除记录的签名标识位以及记录的当前行中列/字段的个数,判断所述一删除记录中记录的当前行数据信息是正常记录数据还是溢出记录数据;
第二获取单元722,用于所述判断单元判断为正常记录数据时,依据所述列定义信息对所述当前行数据信息进行解析,获取对应所述一删除记录的已删除数据;
第三获取单元723,用于依据所述当前行中列/字段的个数,获取溢出数据在所述数据页中的位置;依据所述列定义信息解析所述位置对应的数据信息,获取对应所述一删除记录的已删除数据。
实施例一
请参照图1-图3,以及图9,本实施例提供一种MDB文件数据的恢复方法,包括:
S1:通过判断MDB文件的头部签名,确定所述MDB文件是否为Jet格式;获取Jet格式的MDB文件,因此只有为Jet格式的MDB文件才会存储有包括表格相关页的初始化数据,属于真正的数据库文件,而非其他文件以修改文件名的方式冒充数据库文件;优选的,还可以结合MDB文件的版本信息进行判断,提高判断精确度;
S2:确定待恢复数据删除前所处的表格;
S3:解析所述MDB文件的系统表MSysObjects,从中获取所述表格的表格定义页的偏移地址;因为MSysObjects是系统表,它的位置和列/字段的定义是已知的,因此分析该页便可以得到特定表格的表格定义页的偏移地址;
S4:依据所述偏移地址获取所述表格定义页;
S5:解析所述表格定义页,得到列定义信息;
具体的,所述列定义信息即段定义信息,包括列的类别、长度等,如图9所示,表格的第一列数据类型为“ID”、第二列数据类型为“Eng”、第三列数据类型为“chinese”、第四列数据类型为“mix”....;
表格定义页中第一个列定义的偏移为:
Offset=header+TDblock+12*num_real_idx;
式中,num_real_idx为表格定义块中的数据,用4个字节表示;每条列定义的长度为25,包含列定义的类型等信息。由列的类型可以分析得出该列是固定长度列还是可变长列,这一属性将影响他们在数据页中分布的位置;固定长度列下每一行的数据长度都相等,可变长列下每一行的数据不一定相等;如第一列对应存储的是否“ID”下每一行的数据长度相等,即字节数相等,因此第一列是固定列,同理,第二列下每一行的数据长度有可能不等,因此第二列为可变列;在数据页中对应每一行数据信息的记录优选为固定列+可变列的方式记录数据。
列名的偏移为:
name_offset=header+TDblock+12*num_real_idx+25*num_cols;
式中,num_cols为表格定义块中的数据,用2字节表示;列名信息开始的两个字节表示名字的长度。
S6:获取所述表格的所有数据页;
优选的,可以通过扫描MDB文件得到所述表格的所有数据页;或者是依据所述表格的索引页中存储的所述表格的数据页的相对偏移地址,获取所述表格的数据页;
通过索引页可以找到表格对应的数据页位置,但是由于ACCESS数据库本身的不确定性,和本身结构的特性;因此采用索引页获取数据页的方式可能无法保证不发生遗漏。由于数据页具有特定的签名,而不同表格的数据页也有指向自己的表格定义页相对偏移的记录数据页,以及数据页是由固定长度页组成,文件大小不会超过2G(官方文件可说明),因此数据页的数据量本身不是很大,因此,为了防止所获取的数据页的数据遗漏,以及简化后续解析过程,无需考虑溢出数据问题,优选采用扫描整个文件得到特定表格的所有数据页的方式来确保数据获取的全面性,同时也更加稳妥。
S7:依据所述数据页中记录的偏移地址的签名标识位,获取已删除数据。
请参阅图4,该步骤具体包括:
S71:依据数据删除后所述数据页中记录的偏移地址的签名标识位的改变,获取所述数据页中两条以上的删除记录;
由于正常记录的数据所对应的正常记录的签名标识位都是0x0;而删除后的数据所对应的删除记录的签名标识位将被修改0xC;因此,可以依据签名标识位的变化来获取对应已删除数据的删除记录在数据页中的位置,进而以此获取删除记录所记录的已删除数据信息;需要说明的是,只要数据页的对应记录还存储在磁盘中,便可以实现所有已删除数据的恢复,因此,依据记录的签名标识位,便可定位获取所有已删除数据的删除记录。依据删除记录实现的已删除数据恢复过程具体包括:
S72:依据一删除记录的偏移地址,获取对应所述一删除记录的数据信息;
S73:依据所述列定义信息对所述数据信息进行解析,获取所述一删除记录的已删除数据;
对应所获取的多条删除记录中的其中一条进行解析,所述删除记录中记录的数据是以行形式存在的,如图9所示,对应上述举例的列定义信息,假设删除的行数据信息是“2”“mike”“万岁”“wansui万岁123”;数据删除后,表格对应的数据页中的删除记录的数据信息则是以“固定列+可变列”的方式记录的,因此,删除记录记录的数据信息则是“2”“万岁”“mike”“wansui万岁123”。
数据页中每条删除记录的偏移地址,标识着该条删除记录对应的数据信息在数据页中存储的起始位置和结尾位置,即表示着所述数据信息在数据页中存储的长度。因此,依据偏移地址获取数据信息只能确保所获取的已删除数据信息的完整,而该已删除数据信息中的具体数据无法与表格的列定义信息对应;
由于列定义信息包括了该列的列别、长度、类型等信息,因此,依据列定义信息对所述数据信息进行解析,即依据所述列定义信息进行一一对应,便可获取对应表格形式的已删除数据;
所恢复的数据的形式可以包括两行,第一行为表格的列定义信息,第二行为对应所述列定义信息的已删除数据信息;当然,可以在数据恢复过程中选择所需的已删除数据进行恢复,或者将所有已删除的数据进行恢复。如图9所示,恢复了所有已删除数据;优选的,还可以在所有已经恢复的已删除数据中选择所需的删除数据进行导出,最终实现已删除数据的恢复。
实施例二
请参照图5,本实施例为实施例一的进一步延伸,相同之处不再累述,区别点在于,一个表格可能对应一个多个的数据页;当采用依据索引页获取表格对应的数据页的方式时,便需要考虑在步骤S72中依据偏移地址对数据页进行解析,获取已删除MDB文件数据的过程中,可能会遇到需要解析溢出数据的问题;此种情况下,便需要到别的数据页中去查询获取删除记录的数据信息;具体说明如下:
需要说明的是,在此的偏移标识位即签名标识位;
由于数据页中在签名标识位0xC处两个字节的长度保存着该页记录的数目,之后就是每2个字节记录的偏移地址。因为页的长度是4k,所以偏移地址如果用16进制表示的话不会超过3位,而页中偏移地址的标识位为2字节,所以用高位的4个bit表示偏移标识位,对于正常记录的偏移标识位为记录的列/字段的个数,溢出记录的偏移标识位为0x8,删除记录的偏移标识位为0xC。因为记录的保存是从页的结束位置开始,所以偏移地址是从后向前,也就是说偏移地址是从后向前或者说是从大到小。对于删除记录的恢复,数据页中存在两个情况:正常记录和溢出的记录数据信息。
对于正常记录,删除的记录只是将偏移地址的标识位0变为C;页中包含的记录总数并没有变,此种情况下的删除记录的恢复很简单,按该偏移地址即可找到已删除的数据信息在数据页中的位置。对应每条删除记录的内容有:该行中列/字段的个数Num_cols、固定长度列信息Fixed_cols、可变长度列信息Var_cols、相对于记录开始位置的数据偏移量(数据长度)Eod、多个可变长度列的偏移地址组Var_table[]、可变长度列的个数Var_len、记录长度为单个bit的列的值Null_mask。
记录长度的计算,第一条删除记录的长度等于页的大小减去自己的偏移地址,其他记录的长度为上一条记录的偏移地址减去本记录的偏移地址。对于删除记录的数据信息的解析,需要结合该页的表格定义页中定义的列信息。对于Null_mask该内容长度的计算和列的个数有关,即:(Num_cols-1)/8+1;
对于溢出记录,删除记录对应的该行中列/字段的个数的Num_cols不再表示行的列个数,而是0x00,之后的两个字节标识溢出记录所在数据页的相对位置。但是同样可以根据数据页中记录的信息找到溢出记录的数据信息的位置再解析记录信息。
由上述可知,由于直接依据签名标识位将获取所有已删除记录,每一条删除记录的解析过程相同,在此,提供对应一条删除记录的解析过程。因此,步骤S73的解析恢复过程可以包括:
S731:依据所述一删除记录的签名标识位以及记录的当前行中列/字段的个数,判断所述一删除记录中记录的当前行数据信息是正常记录数据还是溢出记录数据;
S732:若为正常记录数据,则依据所述列定义信息对当前行数据信息进行解析,获取对应所述一删除记录的已删除数据;
S733:若为溢出数据,则依据所述当前行行中列/字段的个数之后的字节标识,获取溢出数据在所述数据页中的位置;依据所述列定义信息解析所述位置对应的数据信息,获取对应所述一删除记录的已删除数据。
依据上述方案获取的已删除数据效果如图9所示。
实施例三
请参阅图6,本实施例在实施例一的基础上,提供一种MDB文件数据的恢复系统,包括:
第一获取模块1,用于获取Jet格式的MDB文件;
确定模块2,用于确定已删除数据删除前所处的表格;
解析模块3,用于解析所述MDB文件的系统表;
第二获取模块4,用于获取所述表格的表格定义页;
第三获取模块5,用于获取所述表格的所有数据页;
第四获取模块6,用于依据所述数据页中记录的偏移地址的签名标识位,获取所述已删除数据的删除记录;
第五获取模块7,用于依据所述删除记录的偏移地址以及所述列定义信息,获取对应所述删除记录的已删除数据。
优选的,所述第三获取模块5,具体用于通过扫描MDB文件得到所述表格的所有数据页;
请参阅图7,优选的,所述第四获取模块6,具体用于依据数据删除后所述数据页中记录的偏移地址的签名标识位的改变,获取所述数据页中两条以上的删除记录;
第五获取模块7包括:
第一获取单元71,用于依据一删除记录的偏移地址,获取对应所述一删除记录的数据信息;
解析取单元72,用于依据所述列定义信息对所述数据信息进行解析,获取对应所述一删除记录的已删除数据。
实施例四
请参阅图8,本实施例为实施例二和实施例三基础上提供的一种需要考虑溢出数据的解析的MDB文件数据的恢复系统,与实施例三的结构相同部分不再累述,区别之处在:
所述第三获取模块5,具体用于依据所述表格的索引页中存储的所述表格的数据页的相对偏移地址,获取所述表格的数据页;
所述解析单元72包括:
判断单元721,用于依据所述一删除记录的签名标识位以及记录的当前行中列/字段的个数,判断所述一删除记录中记录的当前行数据信息是正常记录数据还是溢出记录数据;
第二获取单元722,用于所述判断单元判断为正常记录数据时,依据所述列定义信息对所述当前行数据信息进行解析,获取对应所述一删除记录的已删除数据;
第三获取单元723,用于所述判断单元判断为溢出记录数据时,依据所述该行中列/字段的个数,获取溢出数据在所述数据页中的位置;依据所述列定义信息解析所述位置对应的数据信息,获取对应所述一删除记录的已删除数据。
综上所述,本发明提供的一种MDB文件数据的恢复方法及其系统,能够很好解决现有MDB文件数据删除后无法恢复的问题,利用MDB本身的结构信息来恢复数据,具有准确度高、恢复数据快的特点;数据无价,为误删除数据的恢复提供了一种行之有效的方法,为失误操作留有后路;进一步的,还能确保所恢复的数据的完整性,无数据丢失,再次提高数据恢复的精确度。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种MDB文件数据的恢复方法,其特征在于,包括:
获取Jet格式的MDB文件;
确定已删除数据删除前所处的表格;
解析所述MDB文件的系统表,获取所述表格的表格定义页;
解析所述表格定义页,得到所述表格的列定义信息;
获取所述表格的数据页;
依据所述数据页中记录的偏移地址的签名标识位,获取所述已删除数据的删除记录;
依据所述删除记录的偏移地址以及所述列定义信息,获取对应所述删除记录的已删除数据。
2.如权利要求1所述的一种MDB文件数据的恢复方法,其特征在于,所述“获取所述表格的数据页”具体为:
通过扫描MDB文件得到所述表格的所有数据页。
3.如权利要求1所述的一种MDB文件数据的恢复方法,其特征在于,所述“获取所述表格的数据页”具体为:
依据所述表格的索引页中存储的所述表格的数据页的偏移地址,获取所述表格的数据页。
4.如权利要求1所述的一种MDB文件数据的恢复方法,其特征在于,所述“依据所述数据页中记录的偏移地址的签名标识位,获取所述已删除数据的删除记录;依据所述删除记录的偏移地址以及所述列定义信息,获取对应所述删除记录的已删除数据”具体为:
依据数据删除后所述数据页中记录的偏移地址的签名标识位的改变,获取所述数据页中两条以上的删除记录;
依据一删除记录的偏移地址,获取对应所述一删除记录的数据信息;
依据所述列定义信息对所述数据信息进行解析,获取对应所述一删除记录的已删除数据。
5.如权利要求4所述的一种MDB文件数据的恢复方法,其特征在于,所述“依据所述列定义信息对所述数据信息进行解析,获取对应所述一删除记录的已删除数据”具体为:
依据所述一删除记录的签名标识位以及记录的当前行中列/字段的个数,判断所述一删除记录中记录的当前行数据信息是正常记录数据还是溢出记录数据;
若为正常记录数据,则依据所述列定义信息对所述当前行数据信息进行解析,获取对应所述一删除记录的已删除数据;
若为溢出数据,则依据所述当前行中列/字段的个数,获取溢出数据在所述数据页中的位置;依据所述列定义信息解析所述位置对应的数据信息,获取对应所述一删除记录的已删除数据。
6.一种MDB文件数据的恢复系统,其特征在于,包括:
第一获取模块,用于获取Jet格式的MDB文件;
确定模块,用于确定已删除数据删除前所处的表格;
解析模块,用于解析所述MDB文件的系统表,获取所述表格的表格定义页;
第二获取模块,用于获取所述表格的表格定义页,得到所述表格的列定义信息;
第三获取模块,用于获取所述表格的数据页;
第四获取模块,用于依据所述数据页中记录的偏移地址的签名标识位,获取所述已删除数据的删除记录;
第五获取模块,用于依据所述删除记录的偏移地址以及所述列定义信息,获取对应所述删除记录的已删除数据。
7.如权利要求6所述的一种MDB文件数据的恢复系统,其特征在于,所述第三获取模块,具体用于通过扫描MDB文件得到所述表格的所有数据页。
8.如权利要求6所述的一种MDB文件数据的恢复系统,其特征在于,所述第三获取模块,具体用于依据所述表格的索引页中存储的所述表格的数据页的偏移地址,获取所述表格的数据页。
9.如权利要求6所述的一种MDB文件数据的恢复系统,其特征在于,所述第四获取模块,具体用于依据数据删除后所述数据页中记录的偏移地址的签名标识位的改变,获取所述数据页中两条以上的删除记录;
第五获取模块包括:
第一获取单元,用于依据一删除记录的偏移地址,获取对应所述一删除记录的数据信息;
解析单元,用于依据所述列定义信息对所述数据信息进行解析,获取对应所述一删除记录的已删除数据。
10.如权利要求9所述的一种MDB文件数据的恢复系统,其特征在于,所述解析单元包括:
判断单元,用于依据所述一删除记录的签名标识位以及记录的当前行中列/字段的个数,判断所述一删除记录中记录的当前行数据信息是正常记录数据还是溢出记录数据;
第二获取单元,用于所述判断单元判断为正常记录数据时,依据所述列定义信息对所述当前行数据信息进行解析,获取对应所述一删除记录的已删除数据;
第三获取单元,用于所述判断单元判断为溢出记录数据时,依据所述当前行中列/字段的个数,获取溢出数据在所述数据页中的位置;依据所述列定义信息解析所述位置对应的数据信息,获取对应所述一删除记录的已删除数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610113082.XA CN105653403B (zh) | 2016-02-29 | 2016-02-29 | 一种mdb文件数据的恢复方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610113082.XA CN105653403B (zh) | 2016-02-29 | 2016-02-29 | 一种mdb文件数据的恢复方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653403A CN105653403A (zh) | 2016-06-08 |
CN105653403B true CN105653403B (zh) | 2018-06-22 |
Family
ID=56492933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610113082.XA Active CN105653403B (zh) | 2016-02-29 | 2016-02-29 | 一种mdb文件数据的恢复方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653403B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107862023B (zh) * | 2017-10-31 | 2021-12-24 | 四川巧夺天工信息安全智能设备有限公司 | 一种解析edb数据库源文件中数据的方法 |
CN108415927A (zh) * | 2018-01-17 | 2018-08-17 | 中国科学院声学研究所 | 一种非顺序表格的还原方法及装置 |
CN111104259B (zh) * | 2019-12-23 | 2022-08-12 | 厦门市美亚柏科信息股份有限公司 | 一种数据库恢复方法、装置及存储介质 |
CN113282573B (zh) * | 2021-07-22 | 2021-09-17 | 成都云祺科技有限公司 | 基于iam页的数据库恢复的方法、系统及存储介质 |
CN114443355A (zh) * | 2021-12-22 | 2022-05-06 | 厦门市美亚柏科信息股份有限公司 | 一种达梦数据库删除记录恢复方法、终端设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092726A (zh) * | 2013-01-16 | 2013-05-08 | 厦门市美亚柏科信息股份有限公司 | 注册表删除数据的恢复方法和装置 |
CN105068888A (zh) * | 2015-08-03 | 2015-11-18 | 四川效率源信息安全技术有限责任公司 | 一种基于Oracle数据库的数据恢复方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8468244B2 (en) * | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
-
2016
- 2016-02-29 CN CN201610113082.XA patent/CN105653403B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092726A (zh) * | 2013-01-16 | 2013-05-08 | 厦门市美亚柏科信息股份有限公司 | 注册表删除数据的恢复方法和装置 |
CN105068888A (zh) * | 2015-08-03 | 2015-11-18 | 四川效率源信息安全技术有限责任公司 | 一种基于Oracle数据库的数据恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105653403A (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105653403B (zh) | 一种mdb文件数据的恢复方法及其系统 | |
CN109086046A (zh) | 一种基于接口规范文档的前端代码自动生成方法及系统 | |
CN108009049B (zh) | Myisam存储引擎删除记录离线恢复方法、存储介质 | |
CN106294222A (zh) | 一种确定pcie设备与插槽对应关系的方法及装置 | |
CN104951515B (zh) | 一种提取并分析Android手机行踪轨迹信息的方法 | |
CN104268192B (zh) | 一种网页信息提取方法、装置及终端 | |
CN110516221A (zh) | 提取pdf文档中图表数据的方法、设备和存储介质 | |
JP7116744B2 (ja) | テキスト情報を表示する方法および装置 | |
WO2019041442A1 (zh) | 图表数据结构化提取方法、系统、电子设备及计算机可读存储介质 | |
Dusart et al. | Capitalizing on a TREC track to build a tweet summarization dataset | |
CN103136453A (zh) | 文档操作题的自动组卷方法和自动阅卷方法 | |
CN105183383A (zh) | 一种文件系统无关的镜像重组方法 | |
CN103678607B (zh) | 一种情感标注系统的构建方法 | |
CN108255866B (zh) | 检查网站中链接的方法和装置 | |
CN115017256A (zh) | 电力数据处理方法、装置、电子设备及存储介质 | |
CN111798344B (zh) | 主体名称确定方法和装置、电子设备和存储介质 | |
CN109064191A (zh) | 车源数据解析方法、装置及电子设备 | |
CN106802922A (zh) | 一种基于对象的溯源存储系统及方法 | |
CN107590044A (zh) | 一种分布式存储集群的测试方法、装置及设备 | |
Zhang et al. | Data extraction from DXF file and visual display | |
Hurst | Temporal Text Mining. | |
KR20100034868A (ko) | 구조계산서 텍스트 정보의 계층 구조 추출 방법 | |
Marx | Advanced information access to parliamentary debates | |
CN103544223A (zh) | 一种基本亲缘关系信息存储表示方法、系统及设备 | |
CN109858866A (zh) | 人事档案文件形成方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |