CN111143130B - 数据恢复方法、装置、计算机可读存储介质和计算机设备 - Google Patents

数据恢复方法、装置、计算机可读存储介质和计算机设备 Download PDF

Info

Publication number
CN111143130B
CN111143130B CN201911354931.0A CN201911354931A CN111143130B CN 111143130 B CN111143130 B CN 111143130B CN 201911354931 A CN201911354931 A CN 201911354931A CN 111143130 B CN111143130 B CN 111143130B
Authority
CN
China
Prior art keywords
data
target node
file
tree structure
recovery
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
Application number
CN201911354931.0A
Other languages
English (en)
Other versions
CN111143130A (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911354931.0A priority Critical patent/CN111143130B/zh
Publication of CN111143130A publication Critical patent/CN111143130A/zh
Application granted granted Critical
Publication of CN111143130B publication Critical patent/CN111143130B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种数据恢复方法、装置、计算机可读存储介质和计算机设备,所述方法包括:获取以树结构存储内容数据的损坏文件;根据所述树结构中的根节点数据,确定目标节点集合指针;其中,所述目标节点集合指针用于表征所述树结构中预划分的目标节点集合对应的内容数据在所述损坏文件中的位置信息;所述目标节点集合包括至少一个目标节点;所述目标节点对应的内容数据为所述损坏文件中的用户数据;根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据;遍历所述目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到所述损坏文件中的内容恢复数据。本申请提供的方案可以对数据库的数据进行恢复的效率。

Description

数据恢复方法、装置、计算机可读存储介质和计算机设备
技术领域
本申请涉及数据库技术领域,特别是涉及一种数据恢复方法、装置、计算机可读存储介质和计算机设备。
背景技术
在数据库技术领域中,数据库的数据文件,例如,ibd文件,一种用于存储数据库默认存储引擎的表数据的文件,常常会因人为损坏,病毒破坏,磁盘坏道等导致文件损坏,当服务器主数据库的文件损坏后,常规的处理方案是切换到备用数据库,使用备用数据库继续工作,然而,当主数据库和备用数据库文件都出现坏块时,往往会使得数据服务终止,用户将因此蒙受巨大损失。
为了减少用户损失,现有技术往往是对ibd文件中的所有数据进行扫描恢复ibd文件中仍然有效的数据,缺乏对ibd文件中的数据进行针对性地扫描,使得数据恢复耗时较长,往往不适用于争分夺秒的数据恢复现场。
因此,在现有技术中存在数据恢复方法效率不高的问题。
发明内容
基于此,有必要针对现有技术中数据恢复方法存在效率不高的技术问题,提供一种数据恢复方法、装置、计算机可读存储介质和计算机设备。
一种数据恢复方法,所述方法包括:
获取以树结构存储内容数据的损坏文件;
根据所述树结构中的根节点数据,确定目标节点集合指针;其中,所述目标节点集合指针用于表征所述树结构中预划分的目标节点集合对应的内容数据在所述损坏文件中的位置信息;所述目标节点集合包括至少一个目标节点;所述目标节点对应的内容数据为所述损坏文件中的用户数据;
根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据;
遍历所述目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到所述损坏文件中的内容恢复数据。
一种数据恢复装置,所述装置包括:
获取模块,用于获取以树结构存储内容数据的损坏文件;
第一确定模块,用于根据所述树结构中的根节点数据,确定目标节点集合指针;其中,所述目标节点集合指针用于表征所述树结构中预划分的目标节点集合对应的内容数据在所述损坏文件中的位置信息;所述目标节点集合包括至少一个目标节点;所述目标节点对应的内容数据为所述损坏文件中的用户数据;
第二确定模块,用于根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据;
遍历模块,用于遍历所述目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到所述损坏文件中的内容恢复数据。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取以树结构存储内容数据的损坏文件;
根据所述树结构中的根节点数据,确定目标节点集合指针;其中,所述目标节点集合指针用于表征所述树结构中预划分的目标节点集合对应的内容数据在所述损坏文件中的位置信息;所述目标节点集合包括至少一个目标节点;所述目标节点对应的内容数据为所述损坏文件中的用户数据;
根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据;
遍历所述目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到所述损坏文件中的内容恢复数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取以树结构存储内容数据的损坏文件;
根据所述树结构中的根节点数据,确定目标节点集合指针;其中,所述目标节点集合指针用于表征所述树结构中预划分的目标节点集合对应的内容数据在所述损坏文件中的位置信息;所述目标节点集合包括至少一个目标节点;所述目标节点对应的内容数据为所述损坏文件中的用户数据;
根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据;
遍历所述目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到所述损坏文件中的内容恢复数据。
上述一种数据恢复方法、装置、计算机可读存储介质和计算机设备,通过获取以树结构存储内容数据的损坏文件;并根据树结构中的根节点数据,确定目标节点集合指针;然后,根据目标节点集合指针,按照树结构中预先划分的目标节点集合对应的内容数据在损坏文件中的位置信息,进而确定在损坏文件中的目标节点数据;其中,目标节点集合包括至少一个目标节点;目标节点对应的内容数据为损坏文件中的用户数据;最后,遍历损坏文件中目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到损坏文件中的内容恢复数据;如此,可以减少在对损坏文件进行数据恢复过程中对损坏文件中的树结构的过度依赖,并实现了针对性地对损坏文件中仍然有效的用户数据进行定向恢复,提高了数据恢复过程中的恢复速度和准确度,进而提高了数据恢复效率。
附图说明
图1为一个实施例中一种数据恢复方法的应用环境图;
图2为一个实施例中一种数据恢复方法的流程示意图;
图3为另一个实施例中一种数据恢复方法的流程示意图;
图4为一个实施例中一种数据库数据恢复方法的流程示意图;
图5为另一个实施例中一种数据恢复装置的结构框图;
图6为一个实施例中一种页面数据恢复方法的流程示意图;
图7为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中数据恢复方法的应用环境图。其中,包括数据恢复服务器110、主数据库120和备用数据库130。当主数据库120和备用数据库130都出现损坏文件时,数据恢复服务器110获取以树结构存储内容数据的损坏文件;然后,数据恢复服务器110根据所述树结构中的根节点数据,确定目标节点集合指针;其中,所述目标节点集合指针用于表征所述树结构中的目标节点集合对应的内容数据在所述损坏文件中的位置信息;所述目标节点集合包括至少一个目标节点;所述目标节点对应的内容数据为所述损坏文件中的用户数据;再然后,数据恢复服务器110根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据;最后,数据恢复服务器110遍历所述目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到所述损坏文件中的内容恢复数据。其中,数据恢复服务器110可以用独立的服务器或者是多个服务器组成的服务器集群来实现。主数据库120和备用数据库130可以包括但不限于关系型数据库MySQL(一种开放源代码的SQL(StructuredQuery Language,结构化查询语言)数据库)。
实际应用中,主数据库120和备用数据库130均可以用于提供云储存服务。其中,云存储(cloudstorage)是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
其中,云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,IDentity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,RedundantArrayofIndependentDisk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
另外,主数据库120和备用数据库130还可以用于提供区块链储存服务。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
如图2所示,在一个实施例中,提供了一种数据恢复方法。本实施例主要以该方法应用于上述图1中的数据恢复服务器110来举例说明。参照图2,该数据恢复方法具体包括如下步骤:
S210,获取以树结构存储内容数据的损坏文件。
其中,损坏文件可以是指包含有部分被损坏的用户数据的文件。实际应用中,损坏文件可以是ibd文件(一种数据文件)。具体地,当损坏文件为ibd文件时,损坏文件用于存储innoDB(一种数据库引擎)表数据的文件。
其中,树结构包括损坏文件存储一页一页的数据的结构,一般的,以树结构存储内容数据的损坏文件可以包括多层数据,上下两层数据之间存在父子关系。具体的,以树结构存储内容数据的损坏文件可以包括三层数据,依次为第一层的根节点数据,第二层的内节点数据和第三层的叶节点数据。相应的,第二层的内节点数据与第三层的叶节点数据之间存在父子关系;第二层的内节点数据为第三层的叶节点数据的父节点数据,第三层的叶节点数据与第二层的内节点数据的子节点数据。父节点数据中可以存储有子节点数据的位置信息。
例如,以聚簇索引B+树(一种树结构)存储内容数据的ibd文件可以由段(segment)、区(extent)、页(page)组成。其中,页有时也可称为块(block),
其中,页在未被压缩情况下默认大小可以为16K(千字节),数据出现损坏的页称之为坏页。所有页按照区为单位进行划分和管理。区内所有页面物理相邻。通常一个区包含64个物理相邻的页面。ibd文件的逻辑管理单位是段,一个树结构可以由数据段和索引段两个段组成。
具体实现中,当数据恢复服务器110需要恢复仍然有效的数据时,数据恢复服务器110从主数据库120或备用数据库130中获取以树结构存储内容数据的损坏文件。
例如,当主数据库120和备用数据库130中的ibd文件中同时存在物理坏页时,主数据库120将终止服务,为了尽快恢复主数据库120和备用数据库130中仍然有效的表数据,例如,有效的用户数据,数据恢复服务器110获取包含有部分被损坏的用户数据的ibd文件;其中,ibd文件采用B+树结构储存内容数据。
S220,根据树结构中的根节点数据,确定目标节点集合指针;其中,目标节点集合指针用于表征树结构中预划分的目标节点集合对应的内容数据在损坏文件中的位置信息;目标节点集合包括至少一个目标节点;目标节点对应的内容数据为损坏文件中的用户数据。
其中,目标节点集合指针用于表征树结构中预划分的目标节点集合对应的内容数据在损坏文件中的位置信息。
其中,目标节点集合可以是指在树结构中预先划分的多个目标节点组成的集合。实际应用中,目标节点集合包括至少一个目标节点。
其中,目标节点可以是指在损坏文件中记录有用户数据的数据所对应的节点。也就是说,目标节点对应的内容数据为损坏文件中的用户数据。实际应用中,目标节点可以包括树结构中的根节点或树结构中的叶子节点中的至少一种。
具体实现中,当数据恢复服务器110获取以树结构存储内容数据的损坏文件后,数据恢复服务器110可以根据在树结构中的根节点数据,确定目标节点集合指针,其中,目标节点集合指针用于表征树结构中预划分的目标节点集合对应的内容数据在损坏文件中的位置信息。例如,损坏文件中的叶子节点集合指针。需要说明的是,当损坏文件中的树结构为只有根节点没有叶节点的树结构时,此时目标节点集合指针为损坏文件中的用于指向根节点的内容数据对应的根节点指针。
接上例,数据恢复服务器110获取到包含有部分被损坏的用户数据的ibd文件后,数据恢复服务器110可以根据数字字典,确定ibd文件的聚簇索引B+树的根节点所在页面数据,然后在该页面数据中确定记录在聚簇索引B+树的叶子节点集合对应的叶子节点集合数据段指针即目标节点集合指针。
其中,数据字典用于记录数据库元数据,实际应用中,本领域技术人员可以将数据字典存储于数据库中的ibdata文件的第P页。其中,P可以等于8。
S230,根据目标节点集合指针,确定在损坏文件中的至少一个的目标节点数据。
具体实现中,当数据恢复服务器110确定目标节点集合指针后,数据恢复服务器110根据目标节点集合指针,确定根节点中的目标节点所对应的内容数据在损坏文件中的位置信息,并根据上述的目标节点所对应的内容数据在损坏文件中的位置信息,确定在损坏文件中的至少一个的目标节点数据,进而准确获取到损坏文件中的用户数据。
需要说明的是,当损坏文件中的树结构为只有根节点没有叶节点的树结构时,此时目标节点数据为损坏文件中的根节点对应的内容数据。
再接上例,当数据恢复服务器110确定记录在聚簇索引B+树的叶子节点集合对应的叶子节点集合数据段指针即目标节点集合指针后,数据恢复服务器110通过该叶子节点集合数据段指针获取到所有叶子节点在ibd文件中所对应的页面即目标节点数据,即数据恢复服务器110获取到该ibd文件中专门用于存储所有的用户数据的页面。其中,每个目标节点数据对应一个目标节点在ibd文件中所对应的页面。更具体地,当目标节点为聚簇索引B+树的叶子节点时,目标节点数据可以为叶子节点在ibd文件中所对应的页面。当目标节点为聚簇索引B+树的根节点时,目标节点数据可以为根节点在ibd文件中所对应的页面。
S240,遍历目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到损坏文件中的内容恢复数据。
其中,有效目标节点数据可以是指未被损坏的用户数据。实际应用中,有效目标节点数据可以是指ibd文件中的有效页面。
具体实现中,当数据恢复服务器110确定在损坏文件中的目标节点数据后,数据恢复服务器110遍历上述的目标节点数据,并当在数据恢复服务器110遍历到的有效目标节点数据时,数据恢复服务器110对有效目标节点数据进行解析处理,得到损坏文件中的内容恢复数据。在S240的步骤中,具体还包括:当遍历到无效目标节点数据时,跳过无效目标节点数据。
具体来说,数据恢复服务器110获取目标节点数据即目标节点在损坏文件中所对应的页面后,其中,各个目标节点在损坏文件中所对应的页面为有序页面集合即每个目标节点在损坏文件中所对应的页面具有对应的页面编号。然后,数据恢复服务器110按页面编号依次读取并扫描各个目标节点数据,判断各个目标节点数据是否有效;当数据恢复服务器110判定目标节点数据有效时,数据恢复服务器110则结合预设的表定义解析目标节点数据,得到损坏文件中的内容恢复数据,并进行转存至本地文件中用于供用户进行数据恢复。当数据恢复服务器110判定目标节点数据无效时,数据恢复服务器110则判定目标节点数据为无效目标节点数据,数据恢复服务器110跳过无效目标节点数据,并重新遍历仍然未遍历过的目标节点数据。实际应用中,用户可以使用数据恢复工具输入待转储的用户表名称,数据恢复服务器110可采用待转储的用户表名称作为输入,将自动解析转储表的表定义进而得到上述的表定义,分析该ibd文件,并将该ibd文件中仍然有效的数据转储至本地文件。
上述一种数据恢复方法中,通过获取以树结构存储内容数据的损坏文件;并根据树结构中的根节点数据,确定目标节点集合指针;然后,根据目标节点集合指针,按照树结构中的目标节点集合对应的内容数据在损坏文件中的位置信息,进而确定在损坏文件中的目标节点数据;其中,目标节点集合包括至少一个目标节点;目标节点对应的内容数据为损坏文件中的用户数据;最后,遍历损坏文件中目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到损坏文件中的内容恢复数据;如此,可以减少在对损坏文件进行数据恢复过程中对损坏文件中的树结构的过度依赖,并实现了针对性地对损坏文件中仍然有效的用户数据进行定向恢复,提高了数据恢复过程中的恢复速度和准确度,进而提高了数据恢复效率。
在另一个实施例中,所述树结构包括叶子节点集合数据段,所述根据所述树结构中的根节点数据,确定目标节点集合指针,包括:根据所述树结构中的根节点数据,确定所述叶子节点集合数据段对应的叶子节点集合指针;所述叶子节点集合指针用于表征所述树结构中预划分的叶子节点集合对应的内容数据在所述损坏文件中的位置信息;所述叶子节点集合包括至少一个的叶子节点;确定所述叶子节点集合指针为所述目标节点集合指针。
其中,树结构还包括叶子节点集合数据段。
实际应用中,在损坏文件中可以采用单位段(segment)来作为对损坏文件的逻辑管理单位。例如,在ibd文件中一个聚簇索引B+树可以预划分为由数据段和索引段两个段组成。其中,数据段对应B+树的叶子节点以对应用户数据,索引段对应B+树的非叶子节点以对应索引数据。其中,可以将数据段命名为叶子节点集合数据段,可以将索引段命名为非叶子节点集合索引段。其中,叶子节点集合数据段对应B+树的叶子节点的对应的指针即叶子节点段指针可以存放在聚簇索引的根页面即树结构中的根节点数据。
具体实现中,数据恢复服务器110在根据所述树结构中的根节点数据,确定目标节点集合指针的过程中,数据恢复服务器110根据所述树结构中的根节点数据,确定所述叶子节点集合数据段对应的叶子节点集合指针;所述叶子节点集合指针用于表征所述树结构中的叶子节点集合对应的内容数据在所述损坏文件中的位置信息;所述叶子节点集合包括至少一个的叶子节点;最后,数据恢复服务器110确定所述叶子节点集合指针为所述目标节点集合指针,从而可以使数据恢复服务器110通过根节点数据的叶子节点集合指针,获取叶子节点集合对应的目标节点数据,例如,ibd文件中聚簇索引中的所有叶子节点所对应的页面。
本实施例的技术方案,树结构包括叶子节点集合数据段,通过根据树结构中的根节点数据,确定叶子节点集合数据段对应的叶子节点集合指针;叶子节点集合指针用于表征树结构中的叶子节点集合对应的内容数据在损坏文件中的位置信息;叶子节点集合包括至少一个的叶子节点;确定叶子节点集合指针为目标节点集合指针,从而可以大幅度减少在对损坏文件进行数据恢复过程中对损坏文件中的树结构的依赖,提高了数据恢复过程中的恢复速度和准确度,进而提高了数据恢复效率。
在另一个实施例中,目标节点数据具有至少两个的数据记录,还包括:当在目标节点数据中遍历到有效目标节点数据时,获取有效目标节点数据的数据记录目录;数据记录目录用于表征数据记录在对应的所述目标节点数据中的位置信息;根据数据记录目录,确定有效目标节点数据中的可恢复数据记录;解析可恢复数据记录,得到损坏文件中的内容恢复数据。
其中,目标节点数据具有至少两个的数据记录。实际应用中,用户数据是以一条一条的数据记录的形式记录在目标节点数据中。例如,在ibd文件中,用户数据以一条一条的数据记录的形式记录在对应的目标节点所在的页面中。
其中,数据记录目录用于表征数据记录在对应的所述目标节点数据中的位置信息。
具体实现中,当数据恢复服务器110在目标节点数据中遍历到有效目标节点数据时,数据恢复服务器110获取有效目标节点数据中的各个数据记录对应的数据记录目录;其中,数据记录目录用于表征数据记录在对应的所述目标节点数据中的位置信息。然后,数据恢复服务器110按照数据记录目录确定各个数据记录在有效目标节点数据中的位置信息,确定有效目标节点数据中的可恢复数据记录。
具体来说,数据恢复服务器110可以根据各个数据记录在对应的所述目标节点数据中的位置信息,准确定位目标节点数据中的各个数据记录;然后,数据恢复服务器110对各个数据记录进行校验,判断各数据记录是否有效;当数据恢复服务器110判断数据记录有效时,数据恢复服务器110确定该数据记录为可恢复数据记录;然后,数据恢复服务器110可以结合预设的表定义对该可恢复数据记录进行解析,得到损坏文件中的内容恢复数据。
例如,在ibd文件中,数据记录目录可以是目标节点所对应页面的页尾的页目录。当数据恢复服务器110判定某一目标节点数据为无效目标节点数据时即某一目标节点对应的页面为坏页时,数据恢复服务器110通过读取坏页的页尾中的页目录(page directory);其中,页目录可以由ibd文件中的槽(slots)组成;每个槽可以管理n条记录。实际应用中,n可以大于等于4且小于等于8。其中,页目录记录了无效目标节点数据中的各个数据记录在无效目标节点数据中的位置信息。
本实施例的技术方案,当在目标节点数据中遍历到有效目标节点数据时,通过获取有效目标节点数据的数据记录目录;并根据数据记录目录,确定有效目标节点数据中的可恢复数据记录;解析可恢复数据记录,得到损坏文件中的内容恢复数据,从而实现了更大程度地将损坏文件中仍然有效的用户数据恢复出来,实现提高了数据恢复过程中的准确度,进而提高了数据恢复效率。
在另一个实施例中,根据数据记录目录,确定有效目标节点数据中的可恢复数据记录,包括:根据数据记录目录,确定有效目标节点数据中的数据记录在有效目标节点数据中的位置偏移量;位置偏移量为数据记录在对应的目标节点数据中的当前位置与在对应的目标节点数据中的初始位置之间的偏移量;根据位置偏移量,在有效目标节点数据中,定位可恢复数据记录。
其中,位置偏移量为数据记录在对应的目标节点数据中的当前位置与在对应的目标节点数据中的初始位置之间的偏移量。实际应用中,当损坏文件为ibd文件时,位置偏移量可以是指数据记录在对应的页面中的当前位置与在对应的页面中的初始位置之间的偏移量。
具体实现中,当数据恢复服务器110根据数据记录目录,确定有效目标节点数据中的可恢复数据记录的过程中,数据恢复服务器110可以根据数据记录目录,确定数据记录在有效目标节点数据中的位置偏移量;具体来说,数据恢复服务器110根据该位置偏移量,确定数据记录在有效目标节点数据中的当前位置与在有效目标节点数据之间的偏移量,准确地查询到有效目标节点数据中的各个数据记录;然后,数据恢复服务器110对各个数据记录进行校验,判断各数据记录是否有效;当数据恢复服务器110判断数据记录有效时,数据恢复服务器110确定该数据记录为可恢复数据记录;然后,数据恢复服务器110可以结合预设的表定义对该可恢复数据记录进行解析,得到损坏文件中的内容恢复数据。
实际应用中,当损坏文件为ibd文件时,本领域技术人员可以在未压缩的页面中使用M个字节用于表示对应的数据记录在该页面内的偏移量。实际应用中,M可以等于2。
本实施例的技术方案,在根据数据记录目录,确定有效目标节点数据中的可恢复数据记录的过程中,通过根据数据记录目录,确定数据记录在有效目标节点数据中的位置偏移量;并根据位置偏移量,在有效目标节点数据中,准确地定位可恢复数据记录,使得在将损坏文件中仍然有效的用户数据恢复出来的过程中,不受数据记录损坏而偏移的限制,准确地将有效数据转储出来,更大程度地恢复用户数据,提高了数据恢复效率。
在另一个实施例中,遍历目标节点数据,包括:根据遍历到的目标节点数据,确定目标节点数据对应的校验码;获取目标节点数据对应的初始校验码;判断初始校验码与校验码是否一致;若是,则判定遍历到的目标节点数据为有效目标节点数据;若否,则判定遍历到的目标节点数据为无效目标节点数据。
具体实现中,数据恢复服务器110在遍历目标节点数据的过程中,具体包括:数据恢复服务器110根据遍历到的目标节点数据,确定目标节点数据对应的校验码;同时,数据恢复服务器110获取目标节点数据对应的初始校验码;然后,数据恢复服务器110判断初始校验码与校验码是否一致;若初始校验码与校验码一致,说明该目标节点数据被写入磁盘后未发生变化该目标节点数据是有效的,数据恢复服务器110则判定遍历到的目标节点数据为有效目标节点数据;若初始校验码与校验码不一致,说明该目标节点数据被写入磁盘后数据发生了变化该目标节点数据是无效的,数据恢复服务器110则判定遍历到的目标节点数据为无效目标节点数据。
例如,当损坏文件为ibd文件且当目标节点为树结构中的叶子节点时,ibd文件中的每个叶子节点对应的页面的最后K个字节用于记录页面的初始校验码(checksum);其中,K可以等于4。当数据恢复服务器110对每个叶子节点对应的页面进行校验时,数据恢复服务器110根据每个叶子节点对应的页面的数据,计算各个页面对应的crc32(一种验证码计算方法),得到叶子节点对应的页面对应的校验码;然后,数据恢复服务器110判断初始校验码与校验码是否一致;若初始校验码与校验码一致,说明该页面的数据被写入磁盘后未发生变化该页面是有效的,数据恢复服务器110则判定遍历到的页面为有效页面;若初始校验码与校验码不一致,说明该页面被写入磁盘后数据发生了变化该页面是无效的,数据恢复服务器110则判定遍历到的页面为无效页面。
本实施例的技术方案,在遍历目标节点数据的过程中,通过根据遍历到的目标节点数据,确定目标节点数据对应的校验码;并获取目标节点数据对应的初始校验码;通过判断初始校验码与校验码是否一致,进而准确地判断出目标节点数据在被写入磁盘后是否有发生变化,从而准确且快速地在各个目标节点数据中确定有效目标节点数据并进行数据恢复,提高了数据恢复效率。
在另一个实施例中,遍历目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到损坏文件中的内容恢复数据,包括:解析有效目标节点数据,得到对应的结构化查询数据;确定结构化查询数据为损坏文件中的内容恢复数据。
其中,结构化查询数据可以是指以SQL语句形式的数据。
具体实现中,当数据恢复服务器110在遍历目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到损坏文件中的内容恢复数据的过程中,具体包括:数据恢复服务器110在遍历到有效目标节点数据后,数据恢复服务器110按照预设的表定义对有效目标节点数据进行解析,具体来说,数据恢复服务器110可以基于预设数据结构信息将有效目标节点数据进行解析,得到对应的结构化查询数据;确定结构化查询数据为损坏文件中的内容恢复数据,即以SQL语句的形式转储至本地文件。
需要说明的是,预设数据结构信息可以为损坏文件所对应的未损坏文件的数据结构信息。
本实施例的技术方案,在遍历目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到损坏文件中的内容恢复数据的过程中,通过解析有效叶子节点数据,得到对应的结构化查询数据;确定结构化查询数据为损坏文件中的内容恢复数据;使得用户可以根据得到内容恢复数据,快速地对数据库数据进行修复,进而提高了数据恢复效率。
如图3所示,在另一个实施例中,提供了一种数据恢复方法。本实施例主要以该方法应用于上述图1中的数据恢复服务器110来举例说明。参照图3,该数据恢复方法具体包括如下步骤:
S310,获取以树结构存储内容数据的损坏文件。
S320,所述树结构包括叶子节点集合数据段;根据所述树结构中的根节点数据,确定所述叶子节点集合数据段对应的叶子节点集合指针;所述叶子节点集合指针用于表征所述树结构中预划分的叶子节点集合对应的内容数据在所述损坏文件中的位置信息;所述叶子节点集合包括至少一个的叶子节点。
S330,确定所述叶子节点集合指针为目标节点集合指针。
S340,根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据。
S350,遍历所述目标节点数据,当在所述目标节点数据中遍历到有效目标节点数据时,获取所述有效目标节点数据的数据记录目录;所述数据记录目录用于表征数据记录在对应的所述目标节点数据中的位置信息。
S360,根据所述数据记录目录,确定所述有效目标节点数据中的数据记录在所述有效目标节点数据中的位置偏移量;所述位置偏移量为所述数据记录在对应的所述目标节点数据中的当前位置与在对应的所述目标节点数据中的初始位置之间的偏移量。
S370,根据所述位置偏移量,在所述有效目标节点数据中,定位所述可恢复数据记录。
S380,解析所述可恢复数据记录,得到所述损坏文件中的内容恢复数据。
需要说明的是,上述步骤的具体限定可以参见上文中对一种数据恢复方法的具体限定,在此不再赘述。本实施例的技术方案,可以减少在对损坏文件进行数据恢复过程中对损坏文件中的树结构的过度依赖,并实现了针对性地对损坏文件中仍然有效的用户数据进行定向恢复,提高了数据恢复过程中的恢复速度和准确度,进而提高了数据恢复效率。
如图4所示,在一个实施例中,提供了一种数据库数据恢复方法。本实施例主要以该方法应用于上述图1中的数据恢复服务器110来举例说明。参照图4,该数据恢复方法具体包括如下步骤:
S410,获取以树结构存储内容数据的损坏文件。
S420,根据所述树结构中的根节点数据,确定目标节点集合指针;其中,所述目标节点集合指针用于表征所述树结构中预划分的目标节点集合对应的内容数据在所述损坏文件中的位置信息;所述目标节点集合包括至少一个目标节点;所述目标节点对应的内容数据为所述损坏文件中的用户数据。
S430,根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据。
S440,遍历所述目标节点数据,根据遍历到的所述目标节点数据,确定所述目标节点数据对应的校验码。
S450,获取所述目标节点数据对应的初始校验码。
S460,判断所述初始校验码与所述校验码是否一致。
S470,当所述初始校验码与所述校验码一致,判定遍历到的所述目标节点数据为有效目标节点数据;S471,获取所述有效目标节点数据的数据记录目录;所述数据记录目录用于表征所述数据记录在对应的所述目标节点数据中的位置信息;S472,根据所述数据记录目录,确定所述有效目标节点数据中的可恢复数据记录;S473,解析所述可恢复数据记录,得到所述损坏文件中的内容恢复数据。
S480,当所述初始校验码与所述校验码不一致,判定遍历到的所述目标节点数据为无效目标节点数据,跳过所述无效目标节点数据。
S490,当所述初始校验码与所述校验码一致,解析所述有效目标节点数据,得到对应的结构化查询数据;S491,确定所述结构化查询数据为所述损坏文件中的内容恢复数据;S492,转存至本地文件。
需要说明的是,上述步骤的具体限定可以参见上文中对一种数据恢复方法的具体限定,在此不再赘述。本实施例的技术方案,可以减少在对损坏文件进行数据恢复过程中对损坏文件中的树结构的过度依赖,并实现了针对性地对损坏文件中仍然有效的用户数据进行定向恢复,提高了数据恢复过程中的恢复速度和准确度,进而提高了数据恢复效率。
应该理解的是,虽然图2、图3和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3和图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种数据恢复装置,包括:
获取模块510,用于获取以树结构存储内容数据的损坏文件;
第一确定模块520,用于根据所述树结构中的根节点数据,确定目标节点集合指针;其中,所述目标节点集合指针用于表征所述树结构中预划分的目标节点集合对应的内容数据在所述损坏文件中的位置信息;所述目标节点集合包括至少一个目标节点;所述目标节点对应的内容数据为所述损坏文件中的用户数据;
第二确定模块530,用于根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据;
遍历模块540,用于遍历所述目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到所述损坏文件中的内容恢复数据。
上述一种数据恢复装置,通过获取以树结构存储内容数据的损坏文件;并根据树结构中的根节点数据,确定目标节点集合指针;然后,根据目标节点集合指针,按照树结构中的目标节点集合对应的内容数据在损坏文件中的位置信息,进而确定在损坏文件中的目标节点数据;其中,目标节点集合包括至少一个目标节点;目标节点对应的内容数据为损坏文件中的用户数据;最后,遍历损坏文件中目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到损坏文件中的内容恢复数据;如此,可以减少在对损坏文件进行数据恢复过程中对损坏文件中的树结构的过度依赖,并实现了针对性地对损坏文件中仍然有效的用户数据进行定向恢复,提高了数据恢复过程中的恢复速度和准确度,进而提高了数据恢复效率。
在其中一个实施例中,所述树结构包括叶子节点集合数据段,上述的第一确定模块520,包括:指针获取子模块,用于根据所述树结构中的根节点数据,确定所述叶子节点集合数据段对应的叶子节点集合指针;所述叶子节点集合指针用于表征所述树结构中预划分的叶子节点集合对应的内容数据在所述损坏文件中的位置信息;所述叶子节点集合包括至少一个的叶子节点;指针确定子模块,用于确定所述叶子节点集合指针为所述目标节点集合指针。
在其中一个实施例中,所述目标节点数据具有至少两个的数据记录,上述的数据恢复装置,还包括:目录获取模块,用于当在所述目标节点数据中遍历到有效目标节点数据时,获取所述有效目标节点数据的数据记录目录;所述数据记录目录用于表征所述数据记录在对应的所述目标节点数据中的位置信息;记录确定模块,用于根据所述数据记录目录,确定所述有效目标节点数据中的可恢复数据记录;解析模块,用于解析所述可恢复数据记录,得到所述损坏文件中的内容恢复数据。
在其中一个实施例中,上述的记录确定模块,包括:位置偏移量确定子模块,用于根据所述数据记录目录,确定所述有效目标节点数据中的数据记录在所述有效目标节点数据中的位置偏移量;所述位置偏移量为所述数据记录在对应的所述目标节点数据中的当前位置与在对应的所述目标节点数据中的初始位置之间的偏移量;定位子模块,用于根据所述位置偏移量,在所述有效目标节点数据中,定位所述可恢复数据记录。
在其中一个实施例中,上述的一种数据恢复装置,还包括:跳过模块,用于当遍历到无效目标节点数据时,跳过所述无效目标节点数据。
在其中一个实施例中,上述的遍历模块540,包括:计算子模块,用于根据遍历到的所述目标节点数据,确定所述目标节点数据对应的校验码;校验码获取子模块,用于获取所述目标节点数据对应的初始校验码;判断子模块,用于判断所述初始校验码与所述校验码是否一致;执行子模块,用于若是,则判定遍历到的所述目标节点数据为有效目标节点数据;若否,则判定遍历到的所述目标节点数据为无效目标节点数据。
在其中一个实施例中,上述的遍历模块540,包括:解析子模块,用于解析所述有效目标节点数据,得到对应的结构化查询数据;存储子模块,用于确定所述结构化查询数据为所述损坏文件中的内容恢复数据。
关于一种数据恢复装置的具体限定可以参见上文中对于一种数据恢复装置方法的限定,在此不再赘述。上述一种数据恢复装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
为了便于本领域技术人员的理解,图6提供了一种页面数据恢复方法的流程示意图;其中,首先,通过数据字典获取ibd文件的B+树根节点所在页面;然后,根据B+树根节点所在页面,确定根节点的数据段指针;然后,按照根节点的数据段指针,获取B+树中所有叶节点所在页面;然后,依次扫描所有叶节点所在页面,判断页面状态;当页面状态为页面损坏时,跳过坏页,并返回依次扫描所有叶节点所在页面的步骤,处理下一页;当页面状态为页面有效时,则结合表定义转储表数据至本地文件,并返回依次扫描所有叶节点所在页面的步骤;当扫描完所有叶节点所在页面后,结束数据恢复过程。实际应用中,数据字典(datadictionary)用于记录数据库元数据。
本实施例的具体限定可以参见上文中对一种数据恢复方法的具体限定,在此不再赘述。本实施例的技术方案,可以减少在对损坏文件进行数据恢复过程中对损坏文件中的树结构的过度依赖,并实现了针对性地损坏文件中仍然有效的用户数据进行定向恢复,提高了数据恢复过程中的恢复速度和准确度,进而提高了数据恢复效率。
图7示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的数据恢复服务器110。如图7所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现一种数据恢复方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行一种数据恢复方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的一种数据恢复装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。计算机设备的存储器中可存储组成该一种数据恢复装置的各个程序模块,比如,图5所示的获取模块510、第一确定模块520、第二确定模块530和遍历模块540。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的一种数据恢复方法中的步骤。
例如,图7所示的计算机设备可以通过如图5所示的一种数据恢复装置中的获取模块510执行获取以树结构存储内容数据的损坏文件。计算机设备可通过第一确定模块520执行根据所述树结构中的根节点数据,确定目标节点集合指针;其中,所述目标节点集合指针用于表征所述树结构中预划分的目标节点集合对应的内容数据在所述损坏文件中的位置信息;所述目标节点集合包括至少一个目标节点;所述目标节点对应的内容数据为所述损坏文件中的用户数据。计算机设备可通过第二确定模块530执行根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据。计算机设备可通过遍历模块540执行遍历所述目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到所述损坏文件中的内容恢复数据。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种数据恢复方法的步骤。此处一种数据恢复方法的步骤可以是上述各个实施例的一种数据恢复方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种数据恢复方法的步骤。此处一种数据恢复方法的步骤可以是上述各个实施例的一种数据恢复方法中的步骤。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据恢复方法,所述方法包括:
获取以树结构存储内容数据的损坏文件;
根据所述树结构中的根节点数据,确定目标节点集合指针;其中,所述目标节点集合指针用于表征所述树结构中预划分的目标节点集合对应的内容数据在所述损坏文件中的位置信息;所述目标节点集合包括至少一个目标节点;所述目标节点对应的内容数据为所述损坏文件中的用户数据;
根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据;
遍历所述目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到所述损坏文件中的内容恢复数据。
2.根据权利要求1所述的方法,其特征在于,所述树结构包括叶子节点集合数据段,所述根据所述树结构中的根节点数据,确定目标节点集合指针,包括:
根据所述树结构中的根节点数据,确定所述叶子节点集合数据段对应的叶子节点集合指针;所述叶子节点集合指针用于表征所述树结构中预划分的叶子节点集合对应的内容数据在所述损坏文件中的位置信息;所述叶子节点集合包括至少一个叶子节点;
确定所述叶子节点集合指针为所述目标节点集合指针。
3.根据权利要求1所述的方法,其特征在于,所述目标节点数据具有至少两个的数据记录,还包括:
当在所述目标节点数据中遍历到有效目标节点数据时,获取所述有效目标节点数据的数据记录目录;所述数据记录目录用于表征所述数据记录在对应的所述目标节点数据中的位置信息;
根据所述数据记录目录,确定所述有效目标节点数据中的可恢复数据记录;
解析所述可恢复数据记录,得到所述损坏文件中的内容恢复数据。
4.根据权利要求3所述的方法,其特征在于,所述根据所述数据记录目录,确定所述有效目标节点数据中的可恢复数据记录,包括:
根据所述数据记录目录,确定所述有效目标节点数据中的数据记录在所述有效目标节点数据中的位置偏移量;所述位置偏移量为所述数据记录在对应的所述目标节点数据中的当前位置与在对应的所述目标节点数据中的初始位置之间的偏移量;
根据所述位置偏移量,在所述有效目标节点数据中,定位所述可恢复数据记录。
5.根据权利要求1所述的方法,其特征在于,还包括:
当遍历到无效目标节点数据时,跳过所述无效目标节点数据。
6.根据权利要求1所述的方法,其特征在于,所述遍历所述目标节点数据,包括:
根据遍历到的所述目标节点数据,确定所述目标节点数据对应的校验码;
获取所述目标节点数据对应的初始校验码;
判断所述初始校验码与所述校验码是否一致;
若是,则判定遍历到的所述目标节点数据为有效目标节点数据;若否,则判定遍历到的所述目标节点数据为无效目标节点数据。
7.根据权利要求1所述的方法,其特征在于,所述遍历所述目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到所述损坏文件中的内容恢复数据,包括:
解析所述有效目标节点数据,得到对应的结构化查询数据;
确定所述结构化查询数据为所述损坏文件中的内容恢复数据。
8.一种数据恢复装置,其特征在于,所述装置包括:
获取模块,用于获取以树结构存储内容数据的损坏文件;
第一确定模块,用于根据所述树结构中的根节点数据,确定目标节点集合指针;其中,所述目标节点集合指针用于表征所述树结构中预划分的目标节点集合对应的内容数据在所述损坏文件中的位置信息;所述目标节点集合包括至少一个目标节点;所述目标节点对应的内容数据为所述损坏文件中的用户数据;
第二确定模块,用于根据所述目标节点集合指针,确定在所述损坏文件中的至少一个的目标节点数据;
遍历模块,用于遍历所述目标节点数据,并对遍历到的有效目标节点数据进行解析处理,得到所述损坏文件中的内容恢复数据。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
CN201911354931.0A 2019-12-25 2019-12-25 数据恢复方法、装置、计算机可读存储介质和计算机设备 Active CN111143130B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911354931.0A CN111143130B (zh) 2019-12-25 2019-12-25 数据恢复方法、装置、计算机可读存储介质和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911354931.0A CN111143130B (zh) 2019-12-25 2019-12-25 数据恢复方法、装置、计算机可读存储介质和计算机设备

Publications (2)

Publication Number Publication Date
CN111143130A CN111143130A (zh) 2020-05-12
CN111143130B true CN111143130B (zh) 2021-05-25

Family

ID=70519902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911354931.0A Active CN111143130B (zh) 2019-12-25 2019-12-25 数据恢复方法、装置、计算机可读存储介质和计算机设备

Country Status (1)

Country Link
CN (1) CN111143130B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463736B (zh) * 2020-12-11 2022-05-20 厦门市美亚柏科信息股份有限公司 一种用于apfs文件的恢复方法和系统
CN114003172B (zh) * 2021-09-27 2023-08-29 苏州浪潮智能科技有限公司 存储容量校正方法、装置、计算机设备以及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289526A (zh) * 2011-09-29 2011-12-21 深圳市万兴软件有限公司 一种hfs+文件系统数据恢复方法及装置
KR101670473B1 (ko) * 2015-11-30 2016-10-31 고려대학교 산학협력단 MySQL InnoDB 데이터베이스에서 삭제된 데이터를 복원하는 방법
CN106708665A (zh) * 2016-12-20 2017-05-24 华为技术有限公司 一种元数据修复方法和装置
CN106844089A (zh) * 2015-12-03 2017-06-13 阿里巴巴集团控股有限公司 一种用于恢复树形数据存储的方法与设备
CN108062358A (zh) * 2017-11-28 2018-05-22 厦门市美亚柏科信息股份有限公司 innodb引擎删除记录的离线恢复方法、存储介质
CN110058969A (zh) * 2019-04-18 2019-07-26 腾讯科技(深圳)有限公司 一种数据恢复方法及装置
KR102031484B1 (ko) * 2017-12-26 2019-10-11 숭실대학교산학협력단 블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4682887B2 (ja) * 2006-03-22 2011-05-11 日本電気株式会社 故障復旧方法およびノードならびにネットワーク
CN105487939A (zh) * 2014-10-10 2016-04-13 中兴通讯股份有限公司 一种闪存文件的数据恢复方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289526A (zh) * 2011-09-29 2011-12-21 深圳市万兴软件有限公司 一种hfs+文件系统数据恢复方法及装置
KR101670473B1 (ko) * 2015-11-30 2016-10-31 고려대학교 산학협력단 MySQL InnoDB 데이터베이스에서 삭제된 데이터를 복원하는 방법
CN106844089A (zh) * 2015-12-03 2017-06-13 阿里巴巴集团控股有限公司 一种用于恢复树形数据存储的方法与设备
CN106708665A (zh) * 2016-12-20 2017-05-24 华为技术有限公司 一种元数据修复方法和装置
CN108062358A (zh) * 2017-11-28 2018-05-22 厦门市美亚柏科信息股份有限公司 innodb引擎删除记录的离线恢复方法、存储介质
KR102031484B1 (ko) * 2017-12-26 2019-10-11 숭실대학교산학협력단 블록 체인을 이용하여 서비스 서버의 재해 복구를 수행하는 서버 및 복구 서버와, 상기 서버의 제어 방법
CN110058969A (zh) * 2019-04-18 2019-07-26 腾讯科技(深圳)有限公司 一种数据恢复方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"An efficient data integrity & data recovery with two TPAs in cloud data storage";Smita Patil 等;《2017 International Conference on Energy, Communication, Data Analytics and Soft Computing (ICECDS)》;20180621;第1301-1304页 *
"HFS+文件系统的解析与数据恢复";王玉敏等;《计算机安全》;20140102(第09期);第57-60页 *
"一种树型结构的数据恢复功能的实现方案";李宗杰;《自动化博览》;20081223;第25卷(第6期);第95-97页 *

Also Published As

Publication number Publication date
CN111143130A (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
US11797197B1 (en) Dynamic scaling of a virtual storage system
CN106557703B (zh) 安全性检测
CN105190533B (zh) 原位快照
US11972134B2 (en) Resource utilization using normalized input/output (‘I/O’) operations
US12001688B2 (en) Utilizing data views to optimize secure data access in a storage system
CN105122241B (zh) 具有数据库引擎和独立分布式存储服务的数据库系统
US8060713B1 (en) Consolidating snapshots in a continuous data protection system using journaling
CN105190623B (zh) 日志记录管理
US7774565B2 (en) Methods and apparatus for point in time data access and recovery
CN102934114B (zh) 用于文件系统的检查点
US7155464B2 (en) Recovering and checking large file systems in an object-based data storage system
CN103593256A (zh) 一种基于多层排重的虚机快照备份方法和系统
CN104813276A (zh) 从备份系统流式恢复数据库
US20210303537A1 (en) Log record identification using aggregated log indexes
CN111143130B (zh) 数据恢复方法、装置、计算机可读存储介质和计算机设备
US11327676B1 (en) Predictive data streaming in a virtual storage system
US20150347496A1 (en) Snapshot management in hierarchical storage infrastructure
CN111522821A (zh) 维度表数据存储方法、装置、计算机设备及存储介质
JP2015049633A (ja) 情報処理装置、データ修復プログラム、及びデータ修復方法
CN114860745A (zh) 基于人工智能的数据库扩展方法及相关设备
Oh et al. Forensic recovery of file system metadata for digital forensic investigation
US11562069B2 (en) Block-based anomaly detection
CN113312205B (zh) 数据校验方法、装置、存储介质和计算机设备
US10877881B2 (en) In-place garbage collection of a sharded, replicated distributed state machine based on mergeable operations
US20230089153A1 (en) Application discovery using access pattern history

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230913

Address after: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.