很多数据恢复工程师包括一些数据恢复技术爱好者经常会问同样一个问题:“数据一旦被覆盖了,还能不能恢复呀?这种问题困惑很多人,也困惑很多年,到现在也没有人能够证实!下面,就由我们郑州北大青鸟学校的IT专家来给大家分析下:如何恢复MSSQL数据库!
1.我们以一个实际的数据恢复案例来讲解
实际环境:在Windows 2003 Server操作系统下,采用NTFS分区类型,装了一个MS SQL Server 2005数据库,一共有10个数据库在用,其中有一个数据名称是xiangmu01,对应两个物理文件xiangmu01.mdf和xiangmu01.ldf,这个数据库使用有两年多时间,xiangmu01.mdf大小有18GB,xiangmu01.ldf大小有30GB,存放路径为d:\database\.
数据丢失过程:某个粗心的工程师在使用服务器时,从MS SQL Server企业管理器中创建了一个新的数据库,名称为xiangmu001,创建时使用默认存储路径,默认路径把数据库xiangmu001的物理文件创建在了C盘的MS SQL Server安装路径上,他及时发现,想把数据xiangmu001删除了,重新创建,把物理文件存放到d:\database\下,灾难就在这一步降临,错误的把xiangmu01数据库删除了,然后再创建xiangmu001数据库,把物理文件路径更改成d:\database\,企业管理器出现提示“该数据库名称已经存在”,停下来检查,脑袋嗡的一声“删错了数据库!”。
这个时候工程师想的第一件事就是找备份来还原!还原的步骤是,先创建xiangmu01数据库,物理文件名称和路径跟原来数据库一样,于是在d:\database\下由于删除xiangmu01数据库丢失掉的两个物理文件xiangmu01.mdf和xiangmu01.ldf,又出现在d:\database\目录下,按照数据恢复行业词汇就是“同名覆盖”。创建好了新的xiangmu01数据库,就用xiangmu01.bak来还原,祸不单行,这个xiangmu01.bak文件是坏的,还原不了。
2.数据恢复是否有可能?
就这个案例而言,数据恢复成功的可能性到底有没有?根据不同的数据恢复公司,接到这样的数据恢复案例,会有如下3种处理情况:(1)直接认为要恢复的数据发生了“同名覆盖”,起码数据库文件头部被破坏,不可恢复!(2)会按照数据库mdf文件类型对整个分区进行扫描,提取出若干个mdf文件,挨个去验证,看看有没有好的.(3)尝试按照MS SQL Server数据库页面碎片对整个分区进行扫描,因为数据库比较多,数据库页面碎片个数非常多,如果再加上对NTFS文件系统结构的熟悉了解,在扫描数据库页面碎片的时候,排除掉当前分区中正常存在的mdf文件的页面信息,单独提取硬盘分区NTFS文件系统中正常情况下不存放数据区域的数据库页面碎片,就是丢失掉的或者以前曾经存放过的mdf文件内容。
经过了以上北大青鸟郑州翔天信鸽IT培训学校IT专家的介绍,我们得知,被覆盖或者勿删的数据库是可以恢复的,即使这样,我们以后还要养成经常备份MSSQL数据库的习惯,以免出现意想不到的后果。
本文源自: http://www.zzbenet.com/xsjl/ 若有转载请注明出处!