首页 MSSQLSERVER数据库恢复方法实例

MSSQLSERVER数据库恢复方法实例

举报
开通vip

MSSQLSERVER数据库恢复方法实例     MSSQLSERVER数据库恢复方法实例                  李宁摘要:MSSQLSERVER的数据库恢复的案件实例和恢复还原的方法和原理。笔者在2011年曾经协助我院自侦部门办理过一件贪污案件,在案件中涉及恢复一个MSSQLSERVER的数据库。在经过常规的数据恢复方法无法正常恢复的情况下,经专家指点使用数据库逆向还原的方法恢复了数据。关键词:MSSQLSERVER数据库;恢复;还原一、恢复数据的过程笔者拿到证据硬盘后首先对硬盘做了镜像拷贝,保证证据硬盘没有收到污染和破坏。其次,使用常用数...

MSSQLSERVER数据库恢复方法实例
     MSSQLSERVER数据库恢复方法实例                  李宁摘要:MSSQLSERVER的数据库恢复的案件实例和恢复还原的方法和原理。笔者在2011年曾经协助我院自侦部门办理过一件贪污案件,在案件中涉及恢复一个MSSQLSERVER的数据库。在经过常规的数据恢复方法无法正常恢复的情况下,经专家指点使用数据库逆向还原的方法恢复了数据。关键词:MSSQLSERVER数据库;恢复;还原一、恢复数据的过程笔者拿到证据硬盘后首先对硬盘做了镜像拷贝,保证证据硬盘没有收到污染和破坏。其次,使用常用数据恢复软件对镜像硬盘进行扫描,试图恢复数据库的MDF文件或者备份文件。但是扫描结果是多个备份文件已经被删除,并在硬盘上找不到任何删除的数据库的文件名和存储位置信息。显然常规方法行不通,笔者经过多方查找资料和联系专家,经专家指点找到一种恢复数据库的方法即利用数据库MDF文件的数据硬盘页式存储结构信息,逆向还原MDF文件。实际做法如下:1、首先定义数据页特征:MDF文件的数据页大小为8K,应该符合以下几个条件:第0字节为1,0x40字节至0x60字节全为0。当数据库只有一个mdf文件時,属于该mdf文件的页0x24字节为1,0x25字节为0,页号记录在0x20处,从0开始。2、建立一个日志文件1.log,对镜像硬盘进行遍历.然后读取每一个扇区,检查是否符合数据页要求。如符合,输出0x20处,长度为4的页id,同时输出当前扇区号到1.log文件。到这样就能够得到一个记录了格式符合SQL数据页的位置和页号的日志。3、对1.log中,上下两行页号的差等于扇区的差除以16(数据页大小为16个扇区)的话,可以认为这两个数据页连续。这样,当遇到数据页不连续时,可以将上一页作为一个文件碎片的结束,而不连续的那个页作为下一个文件碎片的开始。记录下每一个碎片的开始扇区,结束扇区,开始数据页号,结束数据页号,以及包含页数量。将这些信息记录在2.log文件中。4、第0号页中包含了数据库文件的总页数,其位置在0xAF到0xB2中。根据这个长度创建一个空文件1.mdf。5、如果镜像硬盘中只包含一个数据库,2.log中的数据可以直接使用,将记录的对应扇区中的数据页拷贝到1.mdf中。如果包含多个数据库,可以手工调整,例如只保留其中物理位置比较接近,较完整,且能够逆向还原整个数据库。二、逆向还原数据库的原理(一)数据库文件数据页结构 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 SQLServer的MDF文件是页式存储格式。文件被划分成若干数据页。数据页是包含所有非文本或图像的数据的结构。就像使用SQLServer中的其他类型的页面一样,数据页面具有8KB(或8192字节)的固定大小。它们由三个主要部分组成:页面标题、数据行和行偏移量数组,在每个数据页中,页面标题占用了前96个字节(剩下的8096字节用于数据和行偏移量)数据页的页号pageID是从0开始,顺序排列。(二)文件RAW恢复方法通过对整个磁盘按扇区逐一扫描,找出文件头和文件脚信息的这种恢复技术叫做RAW文件恢复。RAW文件恢复方式可恢复一些特定类型的文件,也经常用于恢复SQLServer数据库.MDF文件。RAW文件恢复程序按以下工作步骤;在硬盘上按扇区同步搜索一种或多种文件类型的文件头。如果找到任何一个文件头,则保存这些数据到一个文件,同时检查下面4个条件,关闭和保存该文件。1、找到该文件的文件头;2、找到相同文件类型的另一个文件头;3、找到另一个文件类型的一个文件头;4、当找不到文件脚或其他此类文件头时,计算文件长度(某些类型的文件,其长度保存在文件前部或按预先设定的文件长度的最大值)。(三)基于数据库文件页式存储格式的恢复方法利用数据库文件的页式存储格式重建.mdf文件,首先确定要恢复的数据库文件在硬盘上的第0页的位置,即查找pageType=0F的页。在第0页可获取文件的总页数,根据总页数创建一个与要重建的文件等长度的空文件(文件的内容全为0)。遍历整个硬盘,根据页号pageID提取数据页,将数据页写入已经创建好的空文件的对应位置。写入所有的页数据或硬盘遍历完毕后,文件的重建即可完成。设新创建的空文件为F,则F=(n=总页数)Fi为新建空文件的第i页,用Si 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示在硬盘上查找到的pageID=i的数据页,令Fi=Si,文件F将被重建成数据库文件。但在实际恢复过程中将会遇到以下两种情况:1、Si={},即Si不存在;2、Si不唯一;(四)数据库文件的低层恢复重建的数据库文件可能不能直接使用,主要原因是由于数据库文件有缺页。如果有缺页Si在文件的用户表的位置上,可以通过修改Si-1和Si+1的nextPage和prePage修复,即Si-1的nextPage=i+1,Si+1的prePage=i-1,当然这是有损修复。如果重建的数据库文件缺页太多或缺页在文件的系统表的位置上,数据库文件就不可能被数据库直接使用,因此必须通过直接提取用户表的数据。SQLServer主要有4张系统表记录了数据文件的头信息、系统表信息和用户表信息,它们是sysobjects、sysindexes、syscolumns和systypes,通过这4张表记录的信息再结合数据页的objID就能将指定的用户表的数据完整的或部分的提取出来,转换成文本文件格式或其他数据格式。endprint -全文完-
本文档为【MSSQLSERVER数据库恢复方法实例】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥16.9 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
IT人
暂无简介~
格式:doc
大小:64KB
软件:Word
页数:0
分类:
上传时间:2021-10-19
浏览量:8