CN105068887B - 一种基于被损坏SQLServer数据库的数据恢复方法 - Google Patents

一种基于被损坏SQLServer数据库的数据恢复方法 Download PDF

Info

Publication number
CN105068887B
CN105068887B CN201510466225.0A CN201510466225A CN105068887B CN 105068887 B CN105068887 B CN 105068887B CN 201510466225 A CN201510466225 A CN 201510466225A CN 105068887 B CN105068887 B CN 105068887B
Authority
CN
China
Prior art keywords
data
database
field
tables
record
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
CN201510466225.0A
Other languages
English (en)
Other versions
CN105068887A (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.)
SICHUAN XLY INFORMATION SAFETY TECHNOLOGY Co Ltd
Original Assignee
SICHUAN XLY INFORMATION SAFETY TECHNOLOGY 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 SICHUAN XLY INFORMATION SAFETY TECHNOLOGY Co Ltd filed Critical SICHUAN XLY INFORMATION SAFETY TECHNOLOGY Co Ltd
Priority to CN201510466225.0A priority Critical patent/CN105068887B/zh
Publication of CN105068887A publication Critical patent/CN105068887A/zh
Application granted granted Critical
Publication of CN105068887B publication Critical patent/CN105068887B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于SQLServer数据库的数据恢复方法,包括以下步骤:S1:确定数据库的数据表;S2:得到表的所有信息;S3:得到记录的逻辑结构关系;S4:得到字段的具体信息;S5:得到数据恢复逻辑结构特征;S6:将数据组成数据表形式,并提取。本发明的有益效果如下:SQLServer通过数据库结构,解析数据表中的记录和字段,找到每条记录的头部和字段的结构划分数据后提取,恢复数据效率高,对数据损坏,数据不连续的碎片级数据库也可以正常提取和恢复,数据恢复成功率高,有效降低因数据库损坏带来的损失。

Description

一种基于被损坏SQLServer数据库的数据恢复方法
技术领域
本发明涉及信息安全技术领域,特别涉及一种基于被损坏SQLServer数据库的数据恢复方法。
背景技术
SQLServer是Microsoft公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点。SQLServer是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
SQLServer数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。一个数据库含有各种成分,包括表、视图、存储过程、记录、字段、索引等。
但是数据库有时也会发生故障,导致无法访问数据,其中数据库损坏常见的原因有以下几种:事务日志问题。比如事务日志文件丢失;事务日志文件在操作过程中被误删;事务日志文件被损坏以及事务日志文件过大,导致硬盘的空间不足等;意外掉电或异常强制关机,造成数据文件损坏,主要数据库正在被读写过程中异常关机;数据库的表被破坏或索引等被破坏,或者数据库的其他对象被破坏或丢失等;删除了数据文件,或者更改了它的名字;硬盘损坏,造成数据和日志文件读写错误等;这些错误中部分数据库自己是可以采取容灾机制处理,保证数据可以正常访问,但是针对数据库表破坏,数据库被删除,或者数据文件被删除,此时数据库本身无法修复,就需要一个专门的方法来解决这些问题,解决办法大多是恢复丢失的数据库文件,进而恢复记录,但是如果文件是以碎片的形式存储,市面上有一些恢复数据库的方法就无从下手了;在此时就需要用到按照记录特征的方法来完成数据恢复,最大程度的保全关键数据的完整性。
本发明涉及到的部分专业术语:
数据表:简称表,由一组数据记录组成,数据库中的数据是以表为单位进行组织的。一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息。
记录:表中的每一行称为一个记录,它由若干个字段组成。
字段:也称域。表中的每一列称为一个字段。每个字段都有相应的描述信息,如数据类型、数据宽度等。
发明内容
本发明针对现有技术的缺陷,提供了一种SQLServer数据库的数据恢复方法,能有效的解决上述现有技术存在的问题。
为了实现以上发明目的,本发明采取的技术方案如下:
一种基于被损坏SQLServer数据库的数据恢复方法,包括以下步骤:
S1:查找所述SQLServer数据库备份或者数据库设计文档,确定数据库中的数据表;
S2:根据S1中的数据库备份或者数据库设计文档选择并找到需要恢复数据的数据表,并得到数据表的所有信息;
S3:根据S2的数据表得到数据表中的每个记录的逻辑结构关系;
S4:根据数据库的类型说明与数据库的设计文档得到字段的具体信息;字段信息包括:数据类型、数据长度、数据排列逻辑顺序;
S5:由S1,S2,S3,S4的参数分析得到数据库存储的逻辑关系,得到数据恢复逻辑结构特征,所述S5的详细流程如下:
S501:检索所有记录的数据头特征,找到所有记录的数据头特征;在所述SQLServer数据库中使用四个字节作为数据头特征,使用数据对比来得到数据头特征,根据数据库中需要恢复的记录数据在底层搜索找到记录,对比N条数据记录的开始位置附近存在相同字符就可判定为数据头特征,其中,N为大于1的自然数;S502:根据数据表中的记录确定字段的组成结构,按照记录的排列顺序、字段的数据类型、数据宽度信息得到字段结构,按照所述字段结构分隔所有记录的数据头特征后面的字段;
S6:得到数据表的逻辑结构特征,按照关键记录的排列顺序、字段的数据类型、字段数据宽度信息,将所述排列顺序、字段的数据类型、字段数据宽度信息按照数据提取逻辑特征算法在介质中提取关键的记录数据,将所述记录数据组成数据表形式,并提取。
作为优选,所述S1中未查找到所述数据库备份或者数据库设计文档,则在底层按照关键字段进行人工分析出数据表,按照已知的字段,在所述SQLServer数据库中按照ISO-2022编码在存储介质中检索找到所述已知的字段,再结合数据库管理员提供的参数确定出数据表。
与现有技术相比本发明的优点在于:SQLServer通过数据库结构,解析数据表中的记录和字段,找到每条记录的头部和字段的结构划分数据后提取,恢复数据效率高,对数据损坏,数据不连续的碎片级数据库也可以正常提取和恢复,数据恢复成功率高,有效降低因数据库损坏带来的损失。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下对本发明做进一步详细说明。
按照关系链提取数据,关系链是根据字段与实际数据存储得出的,可分为变长关系与定长关系。
变长关系就是在底层存储时字段长度记录在字段内容前信息中,字段长度描述加字段内容的结构。
定长关系就是在底层每个字段是按照固定的长度存储的,通过固定的长度来区分字段,提取数据。
实施例一:一种基于被损坏SQLServer数据库的数据恢复方法
S1:查找SQLServer数据库备份或者数据库设计文档,确定数据库中的数据表。
S2:根据S1中的数据库备份或者数据库设计文档选择并找到需要恢复数据的数据表,并得到数据表的所有信息;
S3:根据S2的数据表可以得到数据表中的每个记录的逻辑结构关系;
例如表中存在vip_no、vip_name、vip_pass、sex、brithday等字段组成一个记录的关系。
S4:根据数据库的类型说明与数据库的设计文档可以得到字段的具体信息;字段信息包括:数据类型、数据长度、数据排逻辑顺序。
例如:数据类型、数据长度、数据排逻辑顺序,在此实施例中我们得到vip_no类型是char,长度是20字节、vip_name类型是char,长度是20个字节、vip_pass类型时char,长度是10个字节、sex类型时int,长度是4个字节、brithday类型是T_data:datatime长度是8个字节等。
S5:由S1,S2,S3,S4的参数分析得到数据库存储的逻辑关系,得到数据恢复逻辑结构特征。
S6:得到数据表的逻辑结构特征,按照关键记录的排列顺序、字段的数据类型、字段数据宽度信息,将排列顺序、字段的数据类型、字段数据宽度信息按照数据提取逻辑特征算法在介质中提取关键的记录数据,将记录数据组成数据表形式,并提取。
例如:记录头后是vip_no类型是char,长度是20字节、vip_name类型是char,长度是20个字节、vip_pass类型时char,长度是10个字节、sex类型时int,长度是4个字节、brithday类型是T_data:datatime长度是8个字节,按照这个顺序重组每一条记录并整合成数据表。
所述S5的详细流程如下:
S501:在数据存储是会使用一个数据头特征作为这个数据库的数据表记录的开始,我们找到数据头特征就可以找到数据的开始,在SQLServer数据库使用四个字节作为数据头特征;例如:0x1000A001四个字节就是一个数据头特征,具体方法可以使用数据对比来得到数据头特征,根据数据库中需要恢复的记录数据在底层搜索找到记录,对比几条数据记录的开始位置附近存在相同字符就可判定为数据头特征。
S502:根据数据表中的记录确定字段的组成结构,按照记录的排列顺序、字段的数据类型、数据宽度信息得到字段结构,按照所述字段结构分隔所有记录的数据头特征后面的字段。按照关系链提取数据,关系链是根据字段与实际数据存储得出的,SQLServer数据库使用的是定长关系,定长关系就是在底层每个字段是按照固定的长度存储的。
例如:每条记录使用vip_no、vip_name、vip_pass、sex、brithday等字段,vip_no类型是char,长度是20字节、vip_name类型是char,长度是20个字节、vip_pass类型时char,长度是10个字节、sex类型时int,长度是4个字节、brithday类型是T_data:datatime长度是8个字节等,每个字段的类型与长度都是固定的。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

Claims (2)

1.一种基于被损坏SQLServer数据库的数据恢复方法,其特征在于包括以下步骤:
S1:查找所述SQLServer数据库备份或者数据库设计文档,确定数据库中的数据表;
S2:根据S1中的数据库备份或者数据库设计文档选择并找到需要恢复数据的数据表,并得到数据表的所有信息;
S3:根据S2的数据表得到数据表中的每个记录的逻辑结构关系;
S4:根据数据库的类型说明与数据库的设计文档得到字段的具体信息;字段信息包括:数据类型、数据长度、数据排列逻辑顺序;
S5:由S1,S2,S3,S4的参数分析得到数据库存储的逻辑关系,得到数据恢复逻辑结构特征,所述S5的详细流程如下:
S501:检索所有记录的数据头特征,找到所有记录的数据头特征;在所述SQLServer数据库中使用四个字节作为数据头特征,使用数据对比来得到数据头特征,根据数据库中需要恢复的记录数据在底层搜索找到记录,对比N条数据记录的开始位置附近存在相同字符就可判定为数据头特征,其中,N为大于1的自然数;S502:根据数据表中的记录确定字段的组成结构,按照记录的排列顺序、字段的数据类型、数据宽度信息得到字段结构,按照所述字段结构分隔所有记录的数据头特征后面的字段;
S6:得到数据表的逻辑结构特征,按照关键记录的排列顺序、字段的数据类型、字段数据宽度信息,将所述排列顺序、字段的数据类型、字段数据宽度信息按照数据提取逻辑特征算法在介质中提取关键的记录数据,将所述记录数据组成数据表形式,并提取。
2.根据权利要求1的一种基于被损坏SQLServer数据库的数据恢复方法,其特征在于:所述S1中未查找到所述数据库备份或者数据库设计文档,则在底层按照关键字段进行人工分析出数据表,按照已知的字段,在所述SQLServer数据库中按照ISO-2022编码在存储介质中检索找到所述已知的字段,再结合数据库管理员提供的参数确定出数据表。
CN201510466225.0A 2015-08-03 2015-08-03 一种基于被损坏SQLServer数据库的数据恢复方法 Active CN105068887B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510466225.0A CN105068887B (zh) 2015-08-03 2015-08-03 一种基于被损坏SQLServer数据库的数据恢复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510466225.0A CN105068887B (zh) 2015-08-03 2015-08-03 一种基于被损坏SQLServer数据库的数据恢复方法

Publications (2)

Publication Number Publication Date
CN105068887A CN105068887A (zh) 2015-11-18
CN105068887B true CN105068887B (zh) 2019-02-12

Family

ID=54498264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510466225.0A Active CN105068887B (zh) 2015-08-03 2015-08-03 一种基于被损坏SQLServer数据库的数据恢复方法

Country Status (1)

Country Link
CN (1) CN105068887B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095808B (zh) * 2016-05-30 2019-07-09 厦门市美亚柏科信息股份有限公司 一种mdb文件碎片恢复的方法和装置
CN106897174B (zh) * 2017-03-01 2021-01-01 四川艾特赢泰智能科技有限责任公司 一种针对mysql数据库的碎片恢复方法
CN109710462B (zh) * 2018-12-25 2023-05-30 四川巧夺天工信息安全智能设备有限公司 一种基于access样本数据库的碎片数据恢复方法
CN112052120B (zh) * 2020-08-27 2022-08-05 厦门市美亚柏科信息股份有限公司 数据库删除数据恢复方法和装置
CN112800051A (zh) * 2020-12-28 2021-05-14 厦门市美亚柏科信息股份有限公司 一种PostGresSQL数据库删除记录的恢复方法和装置
CN112732487B (zh) * 2021-01-07 2024-01-23 中国银联股份有限公司 一种数据恢复方法及装置
CN113282592B (zh) * 2021-07-22 2021-09-24 成都云祺科技有限公司 对mssql数据库进行恢复的方法、系统及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789021A (zh) * 2010-02-24 2010-07-28 浪潮通信信息系统有限公司 一种通用可配置的数据库数据迁移方法
CN101908064A (zh) * 2010-07-20 2010-12-08 中兴通讯股份有限公司 数据库备份恢复方法和装置
CN102063491A (zh) * 2010-12-30 2011-05-18 浪潮集团山东通用软件有限公司 可实现跨不同类型数据库数据备份恢复的数据结构和实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789021A (zh) * 2010-02-24 2010-07-28 浪潮通信信息系统有限公司 一种通用可配置的数据库数据迁移方法
CN101908064A (zh) * 2010-07-20 2010-12-08 中兴通讯股份有限公司 数据库备份恢复方法和装置
CN102063491A (zh) * 2010-12-30 2011-05-18 浪潮集团山东通用软件有限公司 可实现跨不同类型数据库数据备份恢复的数据结构和实现方法

Also Published As

Publication number Publication date
CN105068887A (zh) 2015-11-18

Similar Documents

Publication Publication Date Title
CN105068887B (zh) 一种基于被损坏SQLServer数据库的数据恢复方法
CN105068888B (zh) 一种基于Oracle数据库的数据恢复方法
CN107391306B (zh) 一种异构数据库备份文件恢复方法
US8364648B1 (en) Recovering a database to any point-in-time in the past with guaranteed data consistency
EP1594070A2 (en) Consistency checking for a database management system
CN105677876B (zh) 一种基于物理级的数据库日志挖掘方法
CN107111460A (zh) 使用块文件的重复数据删除
CN106445738A (zh) 一种数据库备份方法及装置
CN103617277A (zh) 一种还原误删除的数据表内容的方法
CN109101365A (zh) 一种基于源端数据重删的数据备份和恢复方法
WO2007077097A1 (en) System and method for managing a hierarchy of databases
EP3089051A1 (en) Database rollback using wal
CN106155838B (zh) 一种数据库备份数据恢复方法及装置
CN110555055A (zh) 针对Oracle数据库重做日志文件的数据挖掘方法
US11663160B2 (en) Recovering the metadata of data backed up in cloud object storage
CN112052121A (zh) 一种硬盘数据的恢复方法及系统
CN102567472B (zh) 基于嵌入式数据库的高效数据删除和恢复方法
Kieseberg et al. Trees cannot lie: Using data structures for forensics purposes
CN106897174B (zh) 一种针对mysql数据库的碎片恢复方法
CN103207916B (zh) 元数据处理的方法和装置
CN108009049A (zh) Myisam存储引擎删除记录离线恢复方法、存储介质
CN107402843A (zh) 数据库损坏的恢复方法、装置和设备
Wust et al. Efficient logging for enterprise workloads on column-oriented in-memory databases
Kieseberg et al. Using the structure of b+-trees for enhancing logging mechanisms of databases
CN104391894A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 641000 Sichuan province Neijiang City Songshan Road No. 183

Applicant after: SICHUAN XLY INFORMATION SAFETY TECHNOLOGY CO., LTD.

Address before: 641000 Sichuan province Neijiang City Songshan Road No. 183

Applicant before: Sichuan SalvationData Information Safety Technology Co., Ltd.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Liang Xiaoning

Inventor after: Xu Chaoming

Inventor after: Zhao Fei

Inventor after: Zhu Xinghai

Inventor after: Huang Xu

Inventor before: Liang Xiaoning

Inventor before: Xu Chaoming

Inventor before: Zhao Fei

GR01 Patent grant
GR01 Patent grant