【技术实现步骤摘要】
对MSSQL数据库进行恢复的方法、系统及存储介质
本专利技术属于数据恢复领域,涉及一种对MSSQL数据库进行恢复的方法、系统及存储介质。
技术介绍
SQLSever是Microsoft公司推出的关系型数据库管理系统,全称为MicrosoftSQLSever,简称MSSQL。SQLSever是一种闭源数据库产品,SQLSever为广大的用户提供程序,不提供源代码,使得SQLSever具有安全性高、可用性强和运行性能佳的特点。SQLSever的数据文件分为MDF文件(PrimaryDataFile)、NDF文件(SecondaryDataFiles)以及LDF文件(LogDataFiles),其中MDF文件和LDF文件为每个数据库都有,NDF文件只有在数据库发生拆分时才会出现。MDF和NDF文件主要用于储存数据,两者具有相似的结构,而LDF文件为数据库日志,储存了数据库的所有事务操作,主要用于记录以及回滚事务。目前,由于SQLSever的闭源特性,传统的SQLSever数据恢复技术仅能够达到文件级恢复程度,而能够达到表级恢复程度的技术几乎没有。同时,由于SQLSever2008中引入了行压缩操作,数据在执行了行压缩之后,对应表的数据结构会重新进行组织,导致传统的SQLSever数据恢复技术无法解析压缩数据。因此,如何帮助用户从SQLSever中恢复表级程度的数据,以及帮助用户恢复经过行压缩后的数据,成为当前急需解决的技术问题。
技术实现思路
为了解决上述
技术介绍
中的技术 ...
【技术保护点】
1.一种对MSSQL数据库进行恢复的方法,其特征在于,所述方法包括步骤:/n获取存储系统中的数据文件;/n根据系统表页标识符和系统表页组织结构解析数据文件中的系统表页,从系统表页中获取用户所需要恢复的表的第一对象信息,其中,第一对象信息包括表名称、表字段和表的主键;/n根据第一对象信息查询到用户表页,从所述用户表页中获得第二对象信息;/n判断第二对象信息是否为压缩数据;/n如果所述第二对象信息为压缩数据,则根据压缩数据的行压缩结构对所述第二对象信息进行解压处理,再进行解码处理,恢复出第一数据,其中,所述行压缩结构包括标题区、列说明符区、短数据区和长数据区;/n如果所述第二对象信息不为压缩数据,对所述第二对象信息进行解码处理,恢复出第二数据。/n
【技术特征摘要】
1.一种对MSSQL数据库进行恢复的方法,其特征在于,所述方法包括步骤:
获取存储系统中的数据文件;
根据系统表页标识符和系统表页组织结构解析数据文件中的系统表页,从系统表页中获取用户所需要恢复的表的第一对象信息,其中,第一对象信息包括表名称、表字段和表的主键;
根据第一对象信息查询到用户表页,从所述用户表页中获得第二对象信息;
判断第二对象信息是否为压缩数据;
如果所述第二对象信息为压缩数据,则根据压缩数据的行压缩结构对所述第二对象信息进行解压处理,再进行解码处理,恢复出第一数据,其中,所述行压缩结构包括标题区、列说明符区、短数据区和长数据区;
如果所述第二对象信息不为压缩数据,对所述第二对象信息进行解码处理,恢复出第二数据。
2.根据权利要求1所述的对MSSQL数据库进行恢复的方法,其特征在于,所述根据压缩数据的行压缩结构对所述第二对象信息进行解压处理,再进行解码处理的步骤,包括;
解析所述列说明符区,获取总列数和每列的长度;
根据所述第一对象信息和所述每列的长度解析所述短数据区,获得第一实际数据;
解析所述长数据区中每一列对应的偏移项,获取每一列的结束偏移;
根据结束偏移与所述第一对象信息解析所述长数据区,获得第二实际数据;
解码所述第一实际数据和所述第二实际数据,恢复出第一数据。
3.根据权利要求2所述的对MSSQL数据库进行恢复的方法,其特征在于,在所述根据第一对象信息查询到用户表页,从所述用户表页中获得第二对象信息步骤之前,还包括:
判断数据文件是否为损坏文件;
如果所述数据文件为未损坏文件,则所述根据第一对象信息查询到用户表页,从所述用户表页中获得第二对象信息步骤,具体执行如下:
根据第一对象信息索引IAM页,并获得第三对象信息,其中,所述第三对象信息包括页码和文件号,所述IAM页包括含有至少八个数据槽的混合区;
根据所述第三对象信息查询到用户表页,并从所述用户表页中获得第二对象信息。
4.根据权利要求3所述的对MSSQL数据库进行恢复的方法,其特征在于,所述索引IAM页的步骤,包括:
判断所述IAM页混合区内的八个数据槽是否填满;
如果所述八个数据槽未全部填满,则解析所述IAM页混合区,获取所述第三对象信息。
5.根据权利要求1至4任一项所述对MSSQL数据库进行恢复的方法,其特征在于,所述判断第二对象信息是否为压缩数据的步骤之后,还包括:
对所述第一数据进行...
【专利技术属性】
技术研发人员:黄传波,姚一永,龙星澧,涂磊,谢卓伟,钱禹航,
申请(专利权)人:成都云祺科技有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。