|
最近很多同行,在询问我关于MSSQL的MDF碎片文件的手工修复方法,其实这项工作操作起来,非常简单。
原理是:MDF文件的基本组成单位是页,页的上层结构为盘区,页与页之间也为链式结构,即一个页由前一个页指向位置,然后本身又指向下一个页,对于页中的大部分数据类型都是按照此方法,如果页中有BLOB数据,则由指针指向,MDF中页有缺损或丢失,则数据库将无法正常附加或运行,因为库本身对页将进行非常严格的校验。
数据库文件在被删除或者格式后化,软件恢复出来的基本上都是不完整数据。这是因为数据库在使用中,每天都要进行大量的INSERT INTO或DROP操作,存储上为连续结构比较少。能在手工上将数据库碎片组合起来,是每个数据修复技术同行的追求目标。
下面为MDF文件的前96字节的文件头定义,此文件头中详细地描述了MDF文件的页链结构,我想有很多数据库修复人员已经掌握此类技术,所以不在此过多地展示细节,不懂的同仁,在掌握此文件结构后,对数据库的手工组合,也不会有技术上的障碍。
本人在此结构基础上,写个页链结构VIEW工具,由于工具公开对市场的冲击性,所以不便提供,有能力者可与本人交流。
由于时间有限,先写到此处。字节含义在下一段中再写,敬请谅解。页数据存储结构SLOT定位工具在编写中,希望有DEPHI软件开发能力者与本人交流。
|
|