闵行做网站费用,湖南正规网络营销哪家便宜,高端响应式网站设计,制作海报的app免费很多数据恢复工程师包括一些数据恢复技术爱好者经常会问同样一个问题#xff1a;“数据一旦被覆盖了#xff0c;还能不能恢复呀#xff1f;我听说国外能恢复被覆盖以后的数据#xff0c;据说只要是覆盖操作在7次以内#xff0c;都能恢复出来#xff0c;国内有没有这种技术… 很多数据恢复工程师包括一些数据恢复技术爱好者经常会问同样一个问题“数据一旦被覆盖了还能不能恢复呀我听说国外能恢复被覆盖以后的数据据说只要是覆盖操作在7次以内都能恢复出来国内有没有这种技术呀”这种问题困惑很多人也困惑很多年到现在也只是停留在传说阶段没有人能够证实市面上有一些数据擦除工具在进行数据毁灭擦除的时候往往有一个选项擦除1遍擦除3遍擦除7遍我在怀疑是不是一种心理作用。在我目前认知的数据恢复技术领域我坚决的认为只要覆盖一遍数据就不可恢复如果说能恢复那已经超出目前世界商业数据恢复技术领域可能是个传说吧。 本文的重点是要揭开数据覆盖假象问题并不讨论数据被覆盖以后的恢复技术。所谓的“数据覆盖假象”就是数据丢失或者被破坏以后数据恢复工程师没能恢复出用户需要的文件就主观的认为数据“被”覆盖了其实丢失的数据“尸体”可能完整的躺在硬盘中或者以支离破碎的“尸体”碎片散落在硬盘的多个位置上。真正的数据恢复高级技术就是把数据“尸体”从硬盘中捞出来运气好的话一个丢失的文件数据“尸体”连续存放在硬盘中恢复就较为简单。如果数据分成多段存放在硬盘中数据恢复工程师就得把所有的数据段数据碎片捞出来然后进行拼接最终化腐朽为神奇还原出丢失的数据完整的“尸体”再进行文件内容确认数据恢复就基本结束。 我们以一个实际的数据恢复案例来讲解 实际环境 在Windows 2003 Server操作系统下采用NTFS分区类型装了一个MS SQL Server 2005数据库一共有10个数据库在用其中有一个数据名称是xiangmu01对应两个物理文件xiangmu01.mdf和xiangmu01.ldf这个数据库使用有两年多时间xiangmu01.mdf大小有18GBxiangmu01.ldf大小有30GB存放路径为d:\database\。 数据丢失过程 某个粗心的工程师在使用服务器时从MS SQL Server企业管理器中创建了一个新的数据库名称为xiangmu001创建时使用默认存储路径默认路径把数据库xiangmu001的物理文件创建在了C盘的MS SQL Server安装路径上他及时发现想把数据xiangmu001删除了重新创建把物理文件存放到d:\database\下灾难就在这一步降临错误的把xiangmu01数据库删除了然后再创建xiangmu001数据库把物理文件路径更改成d:\database\企业管理器出现提示“该数据库名称已经存在”停下来检查脑袋嗡的一声“删错了数据库”。 这个时候工程师想的第一件事就是找备份来还原于是在E盘中找到xiangmu01.bak文件还记得核准时间又一阵心慌意乱这个备份是半年前的检查一下这个库的备份脚本早在半年前不起用了不知道什么原因。于是又做了一个大胆的操作--“还原这个备份文件”。 他还原的步骤是先创建xiangmu01数据库物理文件名称和路径跟原来数据库一样于是在d:\database\下由于删除xiangmu01数据库丢失掉的两个物理文件xiangmu01.mdf和xiangmu01.ldf又出现在d:\database\目录下按照数据恢复行业词汇就是“同名覆盖”。创建好了新的xiangmu01数据库就用xiangmu01.bak来还原祸不单行这个xiangmu01.bak文件是坏的还原不了。到了这里瞒也瞒不住上报领导挽救数据 数据恢复是否有可能 我们先不评价数据丢失过程怎样的XXX就这个案例而言数据恢复成功的可能性到底有没有根据不同的数据恢复公司接到这样的数据恢复案例会有如下3种处理情况 1、直接认为要恢复的数据发生了“同名覆盖”起码数据库文件头部被破坏不可恢复 2、会按照数据库mdf文件类型对整个分区进行扫描提取出若干个mdf文件挨个去验证看看有没有好的这种恢复方式几乎不能成功最后宣告恢复失败 3、尝试按照MS SQL Server数据库页面碎片对整个分区进行扫描因为数据库比较多数据库页面碎片个数非常多如果再加上对NTFS文件系统结构的熟悉了解在扫描数据库页面碎片的时候排除掉当前分区中正常存在的mdf文件的页面信息单独提取硬盘分区NTFS文件系统中正常情况下不存放数据区域的数据库页面碎片就是丢失掉的或者以前曾经存放过的mdf文件内容。通俗的讲就是该分区被认为空闲的、可用的那部分空间中就是我们丢失的数据所在的地方。提取出被遗失的所有数据库碎片页面然后按照一定规律来拼接最终还原出删除的mdf文件。 数据库碎片页面的概念 数据库文件在设计的时候都是按照一定的有规律的形式来存放的数据库文件内部结构相当于一个小型的文件系统我们了解NTFS文件系统它有“簇”的概念就是文件存放分配的最小单元。在数据库文件里头有Page即“数据页”的概念就是数据库文件结构按照一页一页存放每一个页面占用16sec或者32sec或者别的更大点的数对于MS SQL Server来说每一页的大小有16sec每个数据页有自己的页面编号等信息每个页面有自己的校验方式等等我们在提取数据库页面的时候就根据这些规律来的。当把所有数据库页面碎片提取出来以后怎样把这些页面拼接成一个文件又是一门数据恢复艺术 数据恢复结果 本案例在达思数据恢复公司最终成功恢复达思D-Recovery For MS SQL Server数据库恢复软件是在软件研发人员耗费大量时间和精力出品的的国内少有的MS SQL Server数据库恢复软件。在数据库恢复技术领域往往能化腐朽为神奇 首先它有数据库碎片提取功能有一定的碎片智能组合功能如果某条组合线路出现分叉可以人工查看确定正确的组合线路最终能把mdf文件相对完整的拼接出来。 其次它可以直接读取mdf文件内容如果有某些数据页面被覆盖或者被破坏它可以绕过这些坏页面把mdf文件中正常的数据记录提取出来然后进行数据还原。在mdf文件局部损坏的情况下MS SQL Server环境没有办法修复mdf文件没办法读取mdf文件中的数据这时候D-Recovery For MS SQL Server就发挥它强大的数据库内容提取功能 揭开数据覆盖假象 对本案例而言出现了同名文件覆盖的现象大多数人都认为是数据被覆盖了在NTFS文件系统中同名覆盖往往意味着原先文件MFT表项和后面覆盖过来的文件的MFT表项是同一个MFT表项ID号如果有ID号不会更改更改的只是MFT表项内部的数据指针这样通过任何数据恢复工具扫描不会找出原始文件MFT内部数据指针找到的都是新覆盖的文件的MFT表项信息。 数据区会不会也被新文件覆盖呢答案是不一定Windows操作系统在分配新覆盖过来的文件空间的时候有可能会按照旧文件的指针分配有可能分配新的数据空间这就看Windows NTFS 文件系统文件空间分配机制了如果说新文件分配新空间跟原始文件空间不发生重叠那原始文件内容将不会受影响 为什么按照mdf文件类型来恢复没能找出正确的文件数据库文件xiangmu01.mdf已经使用了两年多数据库在创建的时候数据库文件根据需要分配空间而不是一开始就分配很大的空间所以在以后使用过程中空间分配分散很严重在硬盘上不可能连续存放按照类型扫描恢复文件大都基于数据文件连续存放否则恢复出来的文件只正确包含文件地一段数据信息 小结 数据覆盖不是想当然要经过最底层的分析才能得出正确的恢复方法 本文首发于达思硬盘数据恢复公司作者达思总工覃廷良转载请注明出处http://www.bnuol.com 转载于:https://blog.51cto.com/199818/665951