CN108009049A - Myisam存储引擎删除记录离线恢复方法、存储介质 - Google Patents

Myisam存储引擎删除记录离线恢复方法、存储介质 Download PDF

Info

Publication number
CN108009049A
CN108009049A CN201711212838.7A CN201711212838A CN108009049A CN 108009049 A CN108009049 A CN 108009049A CN 201711212838 A CN201711212838 A CN 201711212838A CN 108009049 A CN108009049 A CN 108009049A
Authority
CN
China
Prior art keywords
deletion
data
record
block
field
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.)
Granted
Application number
CN201711212838.7A
Other languages
English (en)
Other versions
CN108009049B (zh
Inventor
唐淮灿
翟晓飞
吴少华
沈长达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Meiya Pico Information Co Ltd
Original Assignee
Xiamen Meiya Pico Information Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Meiya Pico Information Co Ltd filed Critical Xiamen Meiya Pico Information Co Ltd
Priority to CN201711212838.7A priority Critical patent/CN108009049B/zh
Publication of CN108009049A publication Critical patent/CN108009049A/zh
Application granted granted Critical
Publication of CN108009049B publication Critical patent/CN108009049B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

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)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种MYISAM存储引擎删除记录离线恢复方法、存储介质,其特征在于,包括:解析结构文件,获取表的表数据结构;解析数据文件,依据每个数据块的头部信息的最低位标记获取所有删除块;依据所述表数据结构解析所述所有删除块。本发明基于MYISAM存储引擎的磁盘存储结构,分析数据存储原理。不仅能够实现更全面、更高效、更可靠精确地从存储数据中被删除记录;而且不用依赖数据库服务运行环境;进一步的,还能有效避免误恢复和漏恢复的情况;能保证正确地恢复成用户所见的初始数据库表形式。

Description

MYISAM存储引擎删除记录离线恢复方法、存储介质
技术领域
本发明涉及数据库中MYISAM存储引擎的信息处理技术领域,具体说的是一种MYISAM存储引擎删除记录离线恢复方法、存储介质。
背景技术
随着互联网技术和大数据云技术的爆发性增长,数据的存储量也呈指数级增长,数据正在为这个世界正源源不断的带来新价值,为世界经济发展注入新动力,数据的价值不言而喻。作为数据的载体之一的数据库却也正面临数据安全问题。大量的数据库没有开启自动完整备份,一旦数据被误删除或者被黑客恶意删除就会造成重大损失。
目前针对mysql数据库的恢复,大部分都是基于签名恢复搜索的恢复和基于文件系统层面的删除文件恢复。其中,基于签名搜索的恢复精度低,myisam有多种签名头,而且签名头所占字节数少,现存方案易造成误搜索、误恢复。
基于这个背景,有必要提出一种不需依赖数据库服务的MYISAM存储引擎删除记录的离线恢复方法、对应的存储介质。
发明内容
本发明所要解决的技术问题是:提供一种MYISAM存储引擎删除记录离线恢复方法、存储介质,基于MYISAM存储引擎的存储结构实现高精度、全面地恢复删除记录,同时能有效避免造成误恢复、漏恢复的情况。
为了解决上述技术问题,本发明采用的技术方案为:
MYISAM存储引擎删除记录离线恢复方法,包括:
解析结构文件,获取表的表数据结构;
解析数据文件,依据每个数据块的头部信息的最低位标记获取所有删除块;
依据所述表数据结构解析所述所有删除块。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时能实现上述的MYISAM存储引擎删除记录离线恢复方法的步骤。
本发明的有益效果在于:本发明提供一种MYISAM存储引擎删除记录离线恢复方法、计算机可读存储介质,基于MYISAM存储引擎的磁盘存储结构,分析数据存储原理,实现更全面、更高效、更可靠精确地从存储数据中被删除记录;且不用依赖数据库服务运行环境,同时支持数据库在线或者离线状态下的数据恢复,可应对多种复杂的使用环境。
附图说明
图1为本发明一种MYISAM存储引擎删除记录离线恢复方法的流程示意图;
图2为本发明实施例一的MYISAM存储引擎删除记录离线恢复方法的流程示意图流;
图3为本发明实施例的具体运用场景中创建的未删除前的数据库表;
图4为本发明实施例的具体运用场景中删除后的数据库表;
图5为本发明实施例的具体运用场景中恢复后得到的数据库表。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:基于MYISAM存储引擎的磁盘存储结构,分析数据存储原理,实现更全面、更高效、更可靠精确地从存储数据中被删除记录;且不用依赖数据库服务运行环境。
为了更好的理解本申请,下面就MYISAM存储引擎的相关内容进行解释说明:
MYSQL是开源的数据库软件,MYSQL采用插件式存储引擎结构,可支持多种存储引擎。MYISAM就是MYSQL支持的存储引擎之一。
每个MYISAM在磁盘上存储成三个文件,每个文件的名字以表名命名,拓展名指出文件类型。
1).frm文件(结构文件):用于存储数据库表的数据结构以及该表使用的存储引擎等信息;
2).MYD文件(数据文件):用于存储数据库表的记录数据;
3).MYI文件(索引文件):用于存储数据库表的字段信息和表索引。
MYISAM表没有页结构,所有记录首尾相接,根据一条记录的头部信息获得本条记录占用的长度后,下一条记录的数据存储位置即为本记录的偏移地址加上本条记录的长度。
MYISAM支持三种表类型:静态表、动态表、压缩表。
1)静态表:字段有固定长度,如果实际内容不满字段设计长度,仍占用字段设计长度的磁盘空间,磁盘空间利用率较低。
静态表的记录头用于标志对应的字段是否是NULL值(即该字段用户可见的是空还是必须有对应的特定显示,如显示MULL);
记录头中的最低位用于标记是否是删除记录。
静态表的记录被删除后,记录的前9个字节会被覆盖,第一个字节被置为0,后面八个字节则被写入上一条删除记录的Num号(该记录在表中是第几条记录)。所以如果一条记录的长度<=9个字节,会被完全覆盖。因此,本发明只能用于回复未被覆盖的内容。
2)动态表:字段可变长,磁盘空间利用率高,但是有碎片问题,性能较静态表低。
动态表的记录头和记录数据长度都是可变长的。动态表记录最低长度是20个字节。在动态表中引入了block(数据块)的概念,一条记录可由一个block组成,也可以由多个block组成。
若一条记录只有一个数据块组成,则可以直接依据其记录头确定是否为删除记录。
针对动态表,MYISAM对应维护一张双向链表,这张链表上链接了所有的删除block。链表的每个元素(每个删除数据块)记录了上一个删除block和下一个删除block在文件中的偏移地址。
其中,第一个删除block记录的[上一条删除block偏移地址]为FF FF FF FF FFFF FF FF;最后一个删除block记录的[下一条删除block偏移地址]为FF FF FF FF FF FFFF FF。偏移地址为FF FF FF FF FF FF FF FF即无效。
由于MYISAM所有记录首尾相接,因此其磁盘数据源中,删除记录和正常记录交错存放,恢复时解析每一条记录,包括正常记录和删除记录,删除数据的前四个字节是本条记录的长度,获取到长度后再根据表结构将数据解析成一个个相应的字段。
3)压缩表:使用MYSQL工具创建,只读属性,对静态表或者动态表进行压缩,使用很少的空间。在此需要说明的是,压缩表的数据没有数据恢复的必要,因为其为只读类型,无法删除。
基于上述,请参阅图1,本发明提供一种MYISAM存储引擎删除记录离线恢复方法,包括:
解析结构文件,获取表的表数据结构;
解析数据文件,依据每个数据块的头部信息的最低位标记获取所有删除块;
依据所述表数据结构解析所述所有删除块。
从上述描述可知,本发明的有益效果在于:基于MYISAM存储引擎的存储结构,针对现有的MYISAM存储引擎的存储数据大多采用静态表或由单个数据块组成一条记录的动态表的存储方式。直接利用数据块的头部信息中的最低位的标记,获取所有的删除块;然后依据表数据结构解析成一个个相应的字段,得到所要恢复的删除记录。本发明的删除数据恢复方法具有精度高且效率高的特点,且不会造成误恢复以及漏恢复的情况。
请参阅图2,进一步的,所述表数据结构包括第一字段信息和第一字段类型;
所述依据所述表数据结构解析所述所有删除块,具体为:
解析索引文件,获取所述表的第二字段信息、第二字段类型以及各字段是否为NULL的标志;
依据所述表数据结构、第一字段信息、第二字段类型以及各字段是否为NULL的标志,解析所述所有删除块,得到用户可见的删除数据。
需要说明的是,解析结构文件获得的表数据结构包含字段名,字段长度,字段类型,所使用的存储引擎。
解析结构文件得到的字段信息(本申请中称为第一字段信息)与解析索引文件得到的字段信息(称为第二字段信息)有所不同。
结构文件是MYSQL所有存储引擎通用的。索引文件是MYISAM存储引擎特有的。
解析结构文件得到的“字段名称”与索引文件解析出的字段名称一致;
解析结构文件得到的“字段类型”是MYSQL用户定义的数据类型,而索引文件解析出的“字段类型”为存储在磁盘上的字段类型。
举例:用户自定义的类型可选种类较多,磁盘存储的类型是对用户定义类型的归类集合,如用户定义“整型”、“浮点型”、“字符型”,在磁盘存储统一归类为“普通型”。
解析结构文件得到的“字段长度”为用户可见显示的数据长度(例:十进制5,长度为1,0005长度为4),而索引文件解析出的字段长度为占用磁盘的真实长度(例:整型数据占用4字节);
由上述描述可知,本发明能够实现基于表数据结构相关信息,准确地恢复出用户可见显示状态下的被删除数据;保证所恢复数据与原显示数据的对应。如在解析所获取的删除块的过程中,将依据解析结构文件得到的第一字段信息从磁盘中(数据源)中获取对应长度的字段;然后再依据解析索引文件得到的第二字段信息,显示对应长度的字段,实现准确的恢复出原先用户所见的删除记录。
进一步的,所述依据所述表数据结构、第一字段信息、第二字段类型以及各字段是否为NULL的标志,解析所述所有删除块,得到用户可见的删除数据,包括:
依据各记录的头部信息从所述删除块中获取每条删除记录对应的全部数据;
根据所述第二字段信息对每条删除记录对应的全部数据进行分割,得到每条删除记录的各字段数据,所述第二字段信息为各字段占用磁盘的真实长度;
依据所述第一字段信息、所述各字段是否为NULL的标志,以及第二字段类型,解析得到用户可见的所有删除记录,所述第一字段信息为用户可见的字段长度。
由上述描述可知,同时考虑各字段对应用户显示界面上的字段类型,是否为NULL问题,保证最终恢复出来的数据以原先用户所见的显示状态、形式进行显示。
进一步的,所述解析数据文件,依据每个数据块的头部信息的最低位标记获取所有删除块,具体为:
解析索引文件,获取所述表的类型;
解析数据文件,若所述表为静态表或者每条记录是由单个数据块组成的动态表,则依据每条记录的头部信息的最低位标记获取所有删除块;
若所述表的每条记录是由多个数据块组成的动态表,则依据数据块的头部信息确定第一个删除块,然后依据所述第一个删除块以及双向链表获取所有的删除块。
由上述描述可知,针对由多个数据块组成的动态表,利用双向链表中顺序记录的前后删除数据块之间的偏移地址链接关系,实现快速、全面地遍历获取所有的删除数据块。
进一步的,所述依据所述第一个删除块以及双向链表获取所有的删除块,具体为:
依据第一个删除块的头部信息中记载的下一个删除块的偏移地址,获取所述下一个删除块;
依据所述下一个删除块的头部信息中记载的其下一个删除块的偏移地址,获取再下一个删除块,直至获取到最后一个删除块。
由上述描述可知,能够基于双向链表,从第一个删除块开始,快速且全面地跳转获取到所有的删除块。
进一步的,还包括:
依据所述表结构数据创建存储一数据库表;
将解析所述所有删除块得到的删除数据对应存储至所述一数据库表。
由上述描述可知,重新创建一包含恢复的删除记录以及正常记录的数据库表,实现表格数据的完整性,优化用户操作以及感官体验。
进一步的,还包括:
解析索引文件,获取表包括每条记录的最大长度、最小长度、二进制数据类型的个数的基本信息;
依据所述基本信息验证解析所述所有删除块后得到的删除记录是否正确。
由上述可知,还同时获取表基本信息,用于验证所恢复数据的正确性,杜绝漏恢复和误恢复的现象发生,再次提升恢复精度。
进一步的,所述依据每个数据块的头部信息的最低位标记获取所有删除块,具体为:
S01:获取第一个数据块的头部信息;
S02:判断当前数据块的头部信息的最低位是否将其标记为删除;若是,则获取当前数据块,执行S03;若否,则执行S03;
S03:依据头部信息中记载的当前数据块的占用长度,获取下一数据块;返回执行S02,直至遍历完所有数据块;
S04:获取所有删除块。
由上述可知,针对静态表以及单一数据块的动态表,直接利用数据块的头部信息,能快速且准确的获取所有的删除块,从而保证数据恢复的高效性。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时能实现上述的MYISAM存储引擎删除记录离线恢复方法的步骤。
实施例一
请参照图2,本实施例提供一种MYISAM存储引擎删除记录离线恢复方法。
首先,假设RS={R1,R2R3,....,Rn}表示一张表中所有的记录,R1为表中第一条记录,Rn为表中最后一条记录;
假设BS={B1,B2B3,....,Bn}表示一张表中所有Block,B1为表中第一个Block,Bn为表中最后一个Block;
假设Pn代表某条删除记录的上一条删除记录偏移地址,Nn代表某条删除记录的下一条删除记录偏移地址。
基于上述,本实施例的方法,可以包括以下步骤:
(1)解析.frm文件(结构文件),获得表数据结构。
所述表数据结构包括字段名,第一字段长度,第一字段类型,所使用的存储引擎。
.frm文件的“字段长度”为用户可见显示的数据长度(例:十进制5,长度为1,0005长度为4),而MYI解析出的字段长度为占用磁盘的真实长度(例:整型数据占用4字节);
.frm文件的第一字段类型为用户定义的数据类型;而MYI解析出的“字段类型”为存储在磁盘上的字段类型。
(2)根据步骤(1)解析出来的表数据结构创建恢复数据保存的数据库表。从而实现恢复出包含删除数据的原数据库表。
(3)解析.MYI文件(索引文件),获取如下信息:
A.获取表类型,用于区分该表是静态表、动态表或者是压缩表;
B.获取表的字段信息,得到表的字段名称、字段个数、字段类型(这三部分内容与步骤(1)解析得到的结果一致),以及第二字段长度(占用磁盘真实长度);用于确定记录中各字段的长度、名称以及对应的类型。
C.获取表的字段是否可以为空NULL的标志位;如果为NULL,则对应的字段为空,其ASCII码值是0,是一个不可见字符,即显示效果为空白;若不为NULL,则必须显示对应的字符;用于确定所恢复出来的记录中各字段的显示方式。
D.获取表的基本信息,如每条记录的最大长度、最小长度、二进制数据类型的个数。用于后期验证所恢复出来的记录的正确性。
(4)解析.MYD文件(数据文件),获取记录的头部信息。
(5)根据记录的头部信息获得源数据文件中第一条记录占用的长度,由于MYISAM的记录首尾相接,因此,下一条记录的位置为本条记录的偏移地址加上本条记录的长度。由此便可依次遍历获取每一条记录。
(6)若步骤A确定当前表为静态表,则将静态表内的每条记录的数据视为一个数据块;直接依据每个数据块(每条记录)的头部信息的最低位标记是否为删除记录(第一个字节被置为零),获取所有删除块。
若确定当前表为动态表,则根据头部信息获取其记录是否由多个block(数据块)组成,如果每条记录都是单个数据块组成,则依据每个数据块(每条记录)的头部信息的最低位标记是否为删除记录(第一个字节被置为零),获取所有删除块(删除记录);
若记录是由多个block(数据块)组成,则依据数据块的头部信息最低位标记是否为0确定其是否为删除块,若Bn头部的第一位如果为0,则代表这是一个删除块,每个删除块都记录了Pn和Nn,通过这两个参数可以获取整张表的所有删除block,将获取到的block进行重组分析,得到删除记录。
具体的,根据头部记载的Nn(Nn代表某条删除记录的下一条删除记录偏移地址),跳到下一个block获取数据,若下一个block仍记载有Nn,说明不是最后一个block,继续跳转到下一个block获取数据,直到最后一个block,获取所有的删除块。
(7)依据步骤(1)、步骤(3)中的B和C解析所有的数据块,得到用户所见的具体数据。
具体为,获取到一条记录的全部数据Rn后,根据第一字段长度进行数据分割,将数据分割成一个个字段,根据第一字段类型进行对应字段的配置,如可变长的数据类型如varchar的长度记录在数据区的头一位或者头两位。
举例:假如第一个字段的字段类型为“整型”,字段名为“班级”,获取到的字段长度为4个字节,那么Rn的前四个字节即为第一个字段的数据,Rn的第五个字节开始为第二个字段的数据。如果第一个字段被标记为NULL,那么Rn中不存储第一个字段的数据。
(8)依据步骤D的基本信息验证解析所述所有删除块后得到的删除记录是否正确。
举例:解析出某个字段的字段类型为“可变长字符型(varchar)”,Rn的总长度为100个字节,在Rn中解析到该“可变长字符型(varchar)”字段的长度为1000,字段长度不可能大于记录长度,则判定此次解析不正确。解析不正确说明数据异常,丢弃此条记录。
(9)将正确解析所述所有删除块得到的删除数据对应存储至所述一数据库表,获取同时包含被删除记录以及正常记录的原始数据库表。
在互联网技术和大数据技术蓬勃发展的今天,人们虽然有做了种种措施保障数据安全,但是仍有意外状况发生。本实施例通过深入研究MYISAM存储引擎的磁盘存储结构,和深入分析数据存储原理,提出MYISAM存储引擎的删除记录恢复方案。由于深入理解存储原理,方案可更全面更有效的恢复删除的记录。本方案可不依赖数据库服务运行环境,可在数据库在线或者离线状态下进行删除记录恢复,可应对多种复杂的使用环境,提供了高效可靠的恢复技术解决方案。
实施例二
本实施例对应实施例一提供一具体运用场景。
(1)创建如图3的测试表,表名Test,此为表字段结构和未删除前内容。
(2)查看数据库目录,确认数据库已经生成Test.MYD、Test.MYI、Test.frm文件。
(3)使用命令行工具登录数据库,并使用delete命令删除“姓名=张三”“姓名=李四”两条数据,删除后数据库表如图4。
(4)使用实施例一的步骤流程对删除记录进行恢复。
期望结果:能恢复出张三和李四两条删除记录,由上文分析可知前8字节会被覆盖,即学号和班级字段被覆盖,其余字段应正常恢复。
实验结果:实验结果如图5,在最后一个字段“删除状态”标记了删除状态。实验结果与期望结果一致。
实验结论:本方案可正确恢复MYISAM存储引擎静态表和动态表的删除记录,静态表的前8字节和动态表的前20字节在删除的时候会被写入相关数据覆盖,无法恢复,其余字段信息可正确恢复。
实施例三
本实施例对应实施例一提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时能实现实施例一所述的MYISAM存储引擎删除记录离线恢复方法。
综上所述,本发明提供的MYISAM存储引擎删除记录离线恢复方法、存储介质,基于MYISAM存储引擎的磁盘存储结构,分析数据存储原理。不仅能够实现更全面、更高效、更可靠精确地从存储数据中被删除记录;而且不用依赖数据库服务运行环境;进一步的,还能有效避免误恢复和漏恢复的情况;能保证正确地恢复成用户所见的初始数据库表形式。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.MYISAM存储引擎删除记录离线恢复方法,其特征在于,包括:
解析结构文件,获取表的表数据结构;
解析数据文件,依据每个数据块的头部信息的最低位标记获取所有删除块;
依据所述表数据结构解析所述所有删除块。
2.如权利要求1所述的MYISAM存储引擎删除记录离线恢复方法,其特征在于,所述表数据结构包括第一字段信息和第一字段类型;
所述依据所述表数据结构解析所述所有删除块,具体为:
解析索引文件,获取所述表的第二字段信息、第二字段类型以及各字段是否为NULL的标志;
依据所述表数据结构、第一字段信息、第二字段类型以及各字段是否为NULL的标志,解析所述所有删除块,得到用户可见的删除数据。
3.如权利要求2所述的MYISAM存储引擎删除记录离线恢复方法,其特征在于,所述依据所述表数据结构、第一字段信息、第二字段类型以及各字段是否为NULL的标志,解析所述所有删除块,得到用户可见的删除数据,包括:
依据各记录的头部信息从所述删除块中获取每条删除记录对应的全部数据;
根据所述第二字段信息对每条删除记录对应的全部数据进行分割,得到每条删除记录的各字段数据,所述第二字段信息为各字段占用磁盘的真实长度;
依据所述第一字段信息、所述各字段是否为NULL的标志,以及第二字段类型,解析得到用户可见的所有删除记录,所述第一字段信息为用户可见的字段长度。
4.如权利要求1所述的MYISAM存储引擎删除记录离线恢复方法,其特征在于,所述解析数据文件,依据每个数据块的头部信息的最低位标记获取所有删除块,具体为:
解析索引文件,获取所述表的类型;
解析数据文件,若所述表为静态表或者每条记录是由单个数据块组成的动态表,则依据每条记录的头部信息的最低位标记获取所有删除块;
若所述表的每条记录是由多个数据块组成的动态表,则依据数据块的头部信息确定第一个删除块,然后依据所述第一个删除块以及双向链表获取所有的删除块。
5.如权利要求4所述的MYISAM存储引擎删除记录离线恢复方法,其特征在于,所述依据所述第一个删除块以及双向链表获取所有的删除块,具体为:
依据第一个删除块的头部信息中记载的下一个删除块的偏移地址,获取所述下一个删除块;
依据所述下一个删除块的头部信息中记载的其下一个删除块的偏移地址,获取再下一个删除块,直至获取到最后一个删除块。
6.如权利要求1所述的MYISAM存储引擎删除记录离线恢复方法,其特征在于,还包括:
依据所述表结构数据创建存储一数据库表;
将解析所述所有删除块得到的删除数据对应存储至所述一数据库表。
7.如权利要求1所述的MYISAM存储引擎删除记录离线恢复方法,其特征在于,还包括:
解析索引文件,获取表包括每条记录的最大长度、最小长度、二进制数据类型的个数的基本信息;
依据所述基本信息验证解析所述所有删除块后得到的删除记录是否正确。
8.如权利要求1所述的MYISAM存储引擎删除记录离线恢复方法,其特征在于,所述依据每个数据块的头部信息的最低位标记获取所有删除块,具体为:
S01:获取第一个数据块的头部信息;
S02:判断当前数据块的头部信息的最低位是否将其标记为删除;若是,则获取当前数据块,执行S03;若否,则执行S03;
S03:依据头部信息中记载的当前数据块的占用长度,获取下一数据块;返回执行S02,直至遍历完所有数据块;
S04:获取所有删除块。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时能实现权利要求1-8任意一项所述的MYISAM存储引擎删除记录离线恢复方法的步骤。
CN201711212838.7A 2017-11-28 2017-11-28 Myisam存储引擎删除记录离线恢复方法、存储介质 Active CN108009049B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711212838.7A CN108009049B (zh) 2017-11-28 2017-11-28 Myisam存储引擎删除记录离线恢复方法、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711212838.7A CN108009049B (zh) 2017-11-28 2017-11-28 Myisam存储引擎删除记录离线恢复方法、存储介质

Publications (2)

Publication Number Publication Date
CN108009049A true CN108009049A (zh) 2018-05-08
CN108009049B CN108009049B (zh) 2020-12-01

Family

ID=62054095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711212838.7A Active CN108009049B (zh) 2017-11-28 2017-11-28 Myisam存储引擎删除记录离线恢复方法、存储介质

Country Status (1)

Country Link
CN (1) CN108009049B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271463A (zh) * 2018-11-30 2019-01-25 四川巧夺天工信息安全智能设备有限公司 一种恢复MySQL数据库的innodb压缩数据的方法
CN109753382A (zh) * 2018-12-10 2019-05-14 厦门市美亚柏科信息股份有限公司 一种数据库删除记录的恢复方法及系统
CN112052120A (zh) * 2020-08-27 2020-12-08 厦门市美亚柏科信息股份有限公司 数据库删除数据恢复方法和装置
CN112433878A (zh) * 2020-12-18 2021-03-02 深圳昂楷科技有限公司 一种恢复损坏的关系型数据库中数据的方法和装置
CN112860686A (zh) * 2019-11-28 2021-05-28 中兴通讯股份有限公司 数据处理方法、装置、计算机设备和计算机可读介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222182A1 (en) * 2006-04-27 2008-09-11 International Business Machines Corporation Method for Fast Deletion of Physically Clustered Data
CN102624537A (zh) * 2011-01-27 2012-08-01 北京东方广视科技股份有限公司 一种数据恢复系统及方法
CN103150149A (zh) * 2013-03-26 2013-06-12 华为技术有限公司 处理数据库重做数据的方法和装置
CN103198119A (zh) * 2013-04-02 2013-07-10 浪潮电子信息产业股份有限公司 一种快速查找具有相同重复数据删除标识的所有链接文件的方法
US20130268509A1 (en) * 2012-04-04 2013-10-10 Cindy O'neill System and method for storing and retrieving data
CN104376073A (zh) * 2014-11-14 2015-02-25 北京锐安科技有限公司 一种数据库恢复方法及装置
CN104598519A (zh) * 2014-12-11 2015-05-06 浙江浙大中控信息技术有限公司 一种基于连续内存的数据库索引系统及处理方法
CN105573862A (zh) * 2015-12-11 2016-05-11 浙江大华技术股份有限公司 一种恢复文件系统的方法和设备
KR101657592B1 (ko) * 2015-08-28 2016-09-19 고려대학교 산학협력단 삭제된 MySQL MyISAM database의 데이터에 대한 범용 복원기법
CN106021017A (zh) * 2015-03-30 2016-10-12 国际商业机器公司 用于备份和恢复克隆文件的方法和系统
CN106599048A (zh) * 2016-11-10 2017-04-26 厦门安胜网络科技有限公司 一种SQLite数据库文件恢复删除记录的方法和装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222182A1 (en) * 2006-04-27 2008-09-11 International Business Machines Corporation Method for Fast Deletion of Physically Clustered Data
CN102624537A (zh) * 2011-01-27 2012-08-01 北京东方广视科技股份有限公司 一种数据恢复系统及方法
US20130268509A1 (en) * 2012-04-04 2013-10-10 Cindy O'neill System and method for storing and retrieving data
CN103150149A (zh) * 2013-03-26 2013-06-12 华为技术有限公司 处理数据库重做数据的方法和装置
CN103198119A (zh) * 2013-04-02 2013-07-10 浪潮电子信息产业股份有限公司 一种快速查找具有相同重复数据删除标识的所有链接文件的方法
CN104376073A (zh) * 2014-11-14 2015-02-25 北京锐安科技有限公司 一种数据库恢复方法及装置
CN104598519A (zh) * 2014-12-11 2015-05-06 浙江浙大中控信息技术有限公司 一种基于连续内存的数据库索引系统及处理方法
CN106021017A (zh) * 2015-03-30 2016-10-12 国际商业机器公司 用于备份和恢复克隆文件的方法和系统
KR101657592B1 (ko) * 2015-08-28 2016-09-19 고려대학교 산학협력단 삭제된 MySQL MyISAM database의 데이터에 대한 범용 복원기법
CN105573862A (zh) * 2015-12-11 2016-05-11 浙江大华技术股份有限公司 一种恢复文件系统的方法和设备
CN106599048A (zh) * 2016-11-10 2017-04-26 厦门安胜网络科技有限公司 一种SQLite数据库文件恢复删除记录的方法和装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271463A (zh) * 2018-11-30 2019-01-25 四川巧夺天工信息安全智能设备有限公司 一种恢复MySQL数据库的innodb压缩数据的方法
CN109271463B (zh) * 2018-11-30 2022-06-07 四川巧夺天工信息安全智能设备有限公司 一种恢复MySQL数据库的innodb压缩数据的方法
CN109753382A (zh) * 2018-12-10 2019-05-14 厦门市美亚柏科信息股份有限公司 一种数据库删除记录的恢复方法及系统
CN109753382B (zh) * 2018-12-10 2022-01-07 厦门市美亚柏科信息股份有限公司 一种数据库删除记录的恢复方法及系统
EP3798842A4 (en) * 2018-12-10 2022-04-13 Xiamen Meiya Pico Information Co., Ltd METHOD AND SYSTEM FOR RECOVERING DELETED DATABASE RECORDS
CN112860686A (zh) * 2019-11-28 2021-05-28 中兴通讯股份有限公司 数据处理方法、装置、计算机设备和计算机可读介质
CN112860686B (zh) * 2019-11-28 2023-03-10 金篆信科有限责任公司 数据处理方法、装置、计算机设备和计算机可读介质
CN112052120A (zh) * 2020-08-27 2020-12-08 厦门市美亚柏科信息股份有限公司 数据库删除数据恢复方法和装置
CN112052120B (zh) * 2020-08-27 2022-08-05 厦门市美亚柏科信息股份有限公司 数据库删除数据恢复方法和装置
CN112433878A (zh) * 2020-12-18 2021-03-02 深圳昂楷科技有限公司 一种恢复损坏的关系型数据库中数据的方法和装置

Also Published As

Publication number Publication date
CN108009049B (zh) 2020-12-01

Similar Documents

Publication Publication Date Title
CN108009049A (zh) Myisam存储引擎删除记录离线恢复方法、存储介质
US10180992B2 (en) Atomic updating of graph database index structures
CN104331446B (zh) 一种基于内存映射的海量数据预处理方法
CN103699585B (zh) 文件的元数据存储以及文件恢复的方法、装置和系统
CN103136243B (zh) 基于云存储的文件系统去重方法及装置
US20180144061A1 (en) Edge store designs for graph databases
US20180357329A1 (en) Supporting tuples in log-based representations of graph databases
US20170255708A1 (en) Index structures for graph databases
US10445370B2 (en) Compound indexes for graph databases
CN109710455A (zh) 基于fat32文件系统的删除文件恢复方法及系统
CN106599048A (zh) 一种SQLite数据库文件恢复删除记录的方法和装置
CN107817946A (zh) 用于混合存储设备读写数据的方法以及装置
WO2018226255A1 (en) Functional equivalence of tuples and edges in graph databases
CN104699664B (zh) 一种模板独立的排版系统及方法
CN107368545A (zh) 一种基于MerkleTree变形算法的去重方法及装置
CN110297781A (zh) 一种基于写时复制来恢复apfs中被删除数据的方法
CN105354149B (zh) 一种内存数据查找方法和装置
CN108021472A (zh) ReFS文件系统的格式化恢复方法及存储介质
CN107133163A (zh) 一种验证描述类api的方法与设备
CN112380174B (zh) 含删除文件的xfs文件系统解析方法、终端设备及存储介质
CN103942186A (zh) 一种管理文档的方法及系统
CN111444194A (zh) 一种块链式账本中索引的清除方法、装置及设备
CN113672419B (zh) 一种适用于国产操作系统的日志记录的保护方法
CN104965908B (zh) 一种位置范围确定方法及装置
US8630984B1 (en) System and method for data extraction from email files

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant