如何恢复已损坏的SQL Server数据库中的数据_第1页
如何恢复已损坏的SQL Server数据库中的数据_第2页
如何恢复已损坏的SQL Server数据库中的数据_第3页
如何恢复已损坏的SQL Server数据库中的数据_第4页
如何恢复已损坏的SQL Server数据库中的数据_第5页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如何恢复已损坏的SQL Server数据库中的数据论文导读:随着信息化建设的发展,人们越来越依赖于计算机应用程序,依赖程度越高,数据库的安全性就越来越重要,一旦数据损坏,我们所做的大量工作就可能毁于一旦。尤其是那些重要的信息和数据受到损坏的时候,系统就无法识别数据文件,用一般的恢复工具也无能为力。在数据文件被损坏后,由于数据文件中的数据还是存在的,只是文件头或系统表部分信息遭到损坏。关键词:数据库,恢复,数据文件1.引言随着信息化建设的发展,人们越来越依赖于计算机应用程序,依赖程度越高,数据库的安全性就越来越重要,一旦数据损坏,我们所做的大量工作就可能毁于一旦。尤其是那些重要的信息和数据受到损

2、坏的时候,系统就无法识别数据文件,用一般的恢复工具也无能为力。在数据文件被损坏后,由于数据文件中的数据还是存在的,只是文件头或系统表部分信息遭到损坏。所以可以通过解析数据库文件,取出其中存储的数据,使数据得到恢复。2.数据文件结构的分析数据文件在数据库系统中的作用是存放数据库系统和用户的数据。数据库系统以数据页为基本单位存储数据,MS SQL Server每个数据页的大小为固定的8kB。每个数据页都由页头、行偏移表和数据记录行3部分组成。页头的总长度为96B。行偏移表位于数据页页末,从后向前扩展,每2B表示一条数据记录行在页内起始位置的偏移量。所有的数据记录行存储在页头和行偏移表之间。数据文件

3、在逻辑上由数据文件头信息、系统表信息和用户表信息三部分组成。数据文件头信息存放该数据文件的物理信息;系统表信息存放系统表拥有的数据,其中包括用户表的结构信息;用户表信息存放用户表中保存的数据,即最需要恢复的数据部分。下面是对相关系统表结构的分析(参考联机丛书)。论文大全。2.1系统表SYSOBJECTSSQL Server的每个数据库内都有SYSOBJECTS系统表,它存放数据库内创建的所有对象(如表、约束、默认值、日志、规则、存储过程等),每个对象在表中占一行。该系统表中重要列名称和相关描述:Name(存储对象的名称);Id(存储对象的id值);Xtyp(存储对象的类型,其值为S、U、V、P

4、、L,表示对象分别为系统表、用户表、视图、存储过程和日志);Uid(存储所有者对象的用户ID);Status(存储对象状态)。通过查询SYSOBJECTS系统表,就可知道在数据库中用户定义了什么表,以及这些表所对应的表名和表的ID值,通过表的ID就可以从别的系统表中得到用户表的结构信息。当xtype的值为U并且status的值大于0时,表示是用户建立的表,对象名就是表名,对象ID就是表的ID值。论文大全。如用下面的语句就可以列出库xscj中所有的用户建立的表名。select * fromxscj.dbo.sysobjects where xtype=U and status02.2系统表SYS

5、INDEXES该系统表存放了数据库中对象的物理存储信息。该系统表中重要列名称和相关描述:Name(存储对象的名称);Id(存储对象的Id值);Indid(索引Id值。值为1表示聚集索引,值大于1表示非聚集等,值为255表示具有text或image数据的表条目);Dpages(如果Indid=255,其设置为0,否则是已用索引页的计数);Used(如果Indid=0或Indid=1, Used是用于所有索引和表数据的总页数。如果Indid =255,Used是用于Text或Image数据的页计数。否则是用于索引的页计数);Rows(表示Indid=0或Indid=1的数据级行数,如果Indid=

6、255则Rows设置为0);Minlen(最小行大小)。2.3系统表SYSCOLUMNS该系统表存放了数据库中对象列的结构信息。在该系统表中每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表位于每个数据库中。该系统表中重要列名称和相关描述:Name(列名或存储过程参数的名称);Id(所属的表对象的Id,或与该参数关联的存储过程Id);Colid(列或参数Id);Length(列最大物理存储长度);Xscale(该列的小数位数);Xoffset(列在记录行中的偏移位置)。2.4系统表SYSTYPES该系统表存放了数据库中字段类型的结构信息。该系统表中重要列名称和相关描述:

7、Name(数据类型名称);Xusertype(扩展的用户定义数据类型);Variable(是否是可变长数据类型,可变长度数据类型为1,否则为0);Length(数据类型的物理长度)。3.受损文件数据恢复的方法在对数据库文件的结构进行了分析后,可以看到数据文件主要由文件头、系统表信息和用户表信息三部分组成。对于数据的恢复,要分析的关键是系统表信息和用户表信息。系统表信息中保存了用户表的结构定义信息,这对用户表数据的恢复是至关重要的,只有知道用户表的结构定义,才能分析出用户表信息记录的物理存储结构,然后依据记录的物理存储结构恢复用户表的数据。恢复数据信息的步骤如下:3.1打开相关联的日志文件和数据

8、文件,遍历日志文件,逐个分析事务记录,将最后一个开始检查点操作后的所有事务记录保存在未操作事务链表中。3.2遍历数据文件,以数据页为单位,读取每一个数据页进行分析,分析依据是数据页的结构。在对数据页进行分析时,从未操作事务链表中检索,判断该数据页是否有未完成的数据操作,如果有,则从未操作事务链表中提取出数据操作命令,对该数据页进行数据更改操作,并根据该数据页所属的表结构,生成相应的SQL语句,将这些语句保存在一个文件即语句集中。论文大全。3.3在对数据文件结构的所有数据页分析结束后,执行生成的语句结果集,将数据重新存储到数据库中。4.结束语在对数据库实际恢复过程中,当数据库相关文件遭到严重破坏,而无法用数据库系统本身的安全策略恢复数据时,要修复数据库相关文件使其回复原样,几乎是不可能的。而对于数据库用户而言,最重要的是重新取回数据库中存储的数据,因此在对数据库进行非常

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论