一种基于SQLServer数据库的数据恢复方法

文档序号:9349822阅读:322来源:国知局
一种基于SQLServer数据库的数据恢复方法
【技术领域】
[0001]本发明涉及信息安全技术领域,特别涉及一种SQLServer数据库的数据恢复方法。
【背景技术】
[0002]SQL Server是Microsoft公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点。SQL Server是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
[0003]SQLServer数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。一个数据库含有各种成分,包括表、视图、存储过程、记录、字段、索引等。
[0004]但是数据库有时也会发生故障,导致无法访问数据,其中数据库损坏常见的原因有以下几种:事务日志问题。比如事务日志文件丢失;事务日志文件在操作过程中被误删;事务日志文件被损坏以及事务日志文件过大,导致硬盘的空间不足等;意外掉电或异常强制关机,造成数据文件损坏,主要数据库正在被读写过程中异常关机;数据库的表被破坏或索引等被破坏,或者数据库的其他对象被破坏或丢失等;删除了数据文件,或者更改了它的名字;硬盘损坏,造成数据和日志文件读写错误等;这些错误中部分数据库自己是可以采取容灾机制处理,保证数据可以正常访问,但是针对数据库表破坏,数据库被删除,或者数据文件被删除,此时数据库本身无法修复,就需要一个专门的方法来解决这些问题,解决办法大多是恢复丢失的数据库文件,进而恢复记录,但是如果文件是以碎片的形式存储,市面上有一些恢复数据库的方法就无从下手了;在此时就需要用到按照记录特征的方法来完成数据恢复,最大程度的保全关键数据的完整性。
[0005]本发明涉及到的部分专业术语:
[0006]数据表:简称表,由一组数据记录组成,数据库中的数据是以表为单位进行组织的。一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息。
[0007]记录:表中的每一行称为一个记录,它由若干个字段组成。
[0008]字段:也称域。表中的每一列称为一个字段。每个字段都有相应的描述信息,如数据类型、数据宽度等。

【发明内容】

[0009]本发明针对现有技术的缺陷,提供了一种SQLServer数据库的数据恢复方法,能有效的解决上述现有技术存在的问题。
[0010]为了实现以上发明目的,本发明采取的技术方案如下:
[0011]一种基于SQLServer数据库的数据恢复方法,包括以下步骤:
[0012]S1:找SQLServer数据库备份或者数据库设计文档,确定数据库中的数据表;
[0013]S2:根据SI中的数据库备份或者数据库设计文档选择并找到需要恢复数据的数据表,并得到表的所有信息;
[0014]S3:根据S2的数据表可以得到数据表中的每个记录的逻辑结构关系;
[0015]S4:根据数据库的类型说明与数据库的设计文档可以得到字段的具体信息;字段信息包括:数据类型、数据长度、数据排逻辑顺序;
[0016]S5:由SI,S2,S3,S4的参数分析得到数据库存储的逻辑关系,得到数据恢复逻辑结构特征;
[0017]S6:得到数据表的逻辑结构特征,我们可以按照关键记录的排列顺序、字段的数据类型、字段数据宽度信息,将这些信息按照数据提取逻辑特征算法在介质中提取关键的记录数据,将这些数据组成数据表形式,并提取。
[0018]作为优选,所述SI中如果都没有就只能在底层按照关键字段进行人工分析出数据表,具体操作就是按照已知的字段在SQLServer数据库中按照IS0-2022编码在存储介质中检索找到字段,再结合数据库管理员提供的参数确定出关键表。
[0019]作为优选,所述S5的详细流程如下:
[0020]S501:检索所有记录的头特征,找到所有记录的头;具体的在sqlserver数据库一般是使用四个字节作为数据特征头,使用数据对比来得到数据特征头,根据正常数据库中需要恢复的记录数据在底层搜索找到记录,对比几条数据记录的开始位置附近存在相同字符就可判定为数据头特征;
[0021]S502:根据数据表中的记录确定字段的组成结构,可以按照记录的排列顺序、字段的数据类型、数据宽度信息得到的字段结构,按照上述结构分隔所有记录头后面的字段。
[0022]与现有技术相比本发明的优点在于:SQLServer通过数据库结构,解析数据表中的记录和字段,找到每条记录的头部和字段的结构划分数据后提取,恢复数据效率高,对数据损坏,数据不连续的碎片级数据库也可以正常提取和恢复,数据恢复成功率高,有效降低因数据库损坏带来的损失。
【具体实施方式】
[0023]为使本发明的目的、技术方案及优点更加清楚明白,以下对本发明做进一步详细说明。
[0024]按照关系链提取数据,关系链是根据字段与实际数据存储得出的,可分为变长关系与定长关系。
[0025]变长关系就是在底层存储时字段长度记录在字段内容前信息中,字段长度描述加字段内容的结构。
[0026]定长关系就是在底层每个字段是按照固定的长度存储的,通过固定的长度来区分字段,提取数据。
[0027]实施例一:一种基于SQLServer数据库的数据恢复方法
[0028]S1:找SQLServer数据库备份或者数据库设计文档,确定数据库中的数据表。
[0029]S2:根据SI中的数据库备份或者数据库设计文档选择并找到需要恢复数据的数据表,并得到表的所有信息;
[0030]S3:根据S2的数据表可以得到数据表中的每个记录的逻辑结构关系;
[0031]例如表中存在vip_no、vip_name、vip_pass、sex、brithday 等字段组成一个记录的关系。
[0032]S4:根据数据库的类型说明与数据库的设计文档可以得到字段的具体信息;字段信息包括:数据类型、数据长度、数据排逻辑顺序。
[0033]例如:数据类型、数据长度、数据排逻辑顺序,在此实施例中我们得到vip_no类型是char,长度是20字节、vip_name类型是char,长度是20个字节、vip_pass类型时char,长度是10个字节、sex类型时int,长度是4个字节、brithday类型是T_data:datatime长度是8个字节等。
[0034]S5:由SI,S2,S3,S4的参数分析得到数据库存储的逻辑关系,得到数据恢复逻辑结构特征。
[0035]S6:得到数据表的逻辑结构特征,我们可以按照关键记录的排列顺序、字段的数据类型、字段数据宽度信息,将这些信息按照数据提取逻辑特征算法在介质中提取关键的记录数据,将这些数据组成数据表形式,并提取。
[0036]例如:记录头后是vip_no类型是char,长度是20字节、vip_name类型是char,长度是20个字节、vip_pass类型时char,长度是10个字节、sex类型时int,长度是4个字节、brithday类型是T_data:datatime长度是8个字节,按照这个顺序重组每一条记录并整合成数据表。
[0037]所述S5的详细流程如下:
[0038]S501:在数据存储是会使用一个特征头作为这个数据库的数据表记录的开始,我们找到特征头就可是找到数据的开始,在sqlserver数据库一般是使用四个字节作为数据特征头;例如:0xl000A001四个字节就是一个数据特征头,具体方法可以使用数据对比来得到数据特征头,根据正常数据库中需要恢复的记录数据在底层搜索找到记录,对比几条数据记录的开始位置附近存在相同字符就可判定为数据头特征。
[0039]S502:根据数据表中的记录确定字段的组成结构,可以按照记录的排列顺序、字段的数据类型、数据宽度信息得到的字段结构,按照上述结构分隔所有记录头后面的字段。按照关系链提取数据,关系链是根据字段与实际数据存储得出的,sqlserver数据库使用的是定长关系,定长关系就是在底层每个字段是按照固定的长度存储的。
[0040]例如:每条记录使用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个字节等,每个字段的类型与长度都是固定的。
[0041]本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
【主权项】
1.一种基于SQLServer数据库的数据恢复方法,其特征在于包括以下步骤: 51:找SQLServer数据库备份或者数据库设计文档,确定数据库中的数据表; 52:根据SI中的数据库备份或者数据库设计文档选择并找到需要恢复数据的数据表,并得到表的所有信息; 53:根据S2的数据表可以得到数据表中的每个记录的逻辑结构关系; 54:根据数据库的类型说明与数据库的设计文档可以得到字段的具体信息;字段信息包括:数据类型、数据长度、数据排逻辑顺序; 55:由SI,S2,S3,S4的参数分析得到数据库存储的逻辑关系,得到数据恢复逻辑结构特征; 56:得到数据表的逻辑结构特征,我们可以按照关键记录的排列顺序、字段的数据类型、字段数据宽度信息,将这些信息按照数据提取逻辑特征算法在介质中提取关键的记录数据,将这些数据组成数据表形式,并提取。2.根据权利要求1的一种基于SQLServer数据库的数据恢复方法,其特征在于:所述SI中如果都没有就只能在底层按照关键字段进行人工分析出数据表,具体操作就是按照已知的字段在SQLServer数据库中按照IS0-2022编码在存储介质中检索找到字段,再结合数据库管理员提供的参数确定出关键表。3.根据权利要求1的一种基于SQLServer数据库的数据恢复方法,其特征在于:所述S5的详细流程如下: 5501:检索所有记录的头特征,找到所有记录的头;具体的在sqlserver数据库一般是使用四个字节作为数据特征头,使用数据对比来得到数据特征头,根据正常数据库中需要恢复的记录数据在底层搜索找到记录,对比几条数据记录的开始位置附近存在相同字符就可判定为数据头特征; 5502:根据数据表中的记录确定字段的组成结构,可以按照记录的排列顺序、字段的数据类型、数据宽度信息得到的字段结构,按照上述结构分隔所有记录头后面的字段。
【专利摘要】本发明公开了一种基于SQLServer数据库的数据恢复方法,包括以下步骤:S1:确定数据库的数据表;S2:得到表的所有信息;S3:得到记录的逻辑结构关系;S4:得到字段的具体信息;S5:得到数据恢复逻辑结构特征;S6:将数据组成数据表形式,并提取。本发明的有益效果如下:SQLServer通过数据库结构,解析数据表中的记录和字段,找到每条记录的头部和字段的结构划分数据后提取,恢复数据效率高,对数据损坏,数据不连续的碎片级数据库也可以正常提取和恢复,数据恢复成功率高,有效降低因数据库损坏带来的损失。
【IPC分类】G06F11/14, G06F17/30
【公开号】CN105068887
【申请号】CN201510466225
【发明人】梁效宁, 许超明, 赵飞
【申请人】四川效率源信息安全技术有限责任公司
【公开日】2015年11月18日
【申请日】2015年8月3日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1