标签:不能 size view 顺序 上进 数据库服务 数据库恢复 破坏 用户
虚拟化数据恢复故障描述:在解析完文件系统后发现没有找到原始的数据库文件,而宏桥备份和索菲备份这两个目录的目录结构正常。但是在尝试将备份导入数据库中时,数据库导入程序提示报错。
宏桥备份和索菲备份的部分目录结构如下图三:
导入.BAK文件报错信息如下图四:
4、实施过程二
由于方向一中并没有将原始的数据库文件恢复出来,并且其中好多备份文件都无法正常使用。因此需采用第二套方案来恢复尚未恢复的数据库文件。根据SQL Server数据库的结构去自由空间中找到数据库的开始位置。在数据库的结构中,数据库的第9个页会记录本数据库的数据库名。因此根据这个特征可以核对此数据库的头部页是否是正在查找的。并且数据库的每个页中都会记录数据库页编号以及文件号,所以根据这些特征编写数据库扫描程序,然后利用程序去底层扫描所有符合数据库页的数据碎片。接着将扫描出来的碎片按顺序重组成一个完整MDF文件,再通过MDF校验程序检测整个MDF文件是否完整。在整个校验过程中,只有cl_system3.dbf和erp42_jck.dbf因有部分碎片没有找到外,其余数据库均校验成功。
校验完的MDF文件如下图五:
cl_system3.dbf和erp42_jck.dbf因底层有很多碎片没有找不到(初步怀疑可能被覆盖),因此校验不通过。如下是cl_system3.dbf文件中某个碎片丢失的区域:
图六
·
5、实施过程三
由于上述两个方向实施完后,并没有将所有的数据库文件全部恢复出来,还有cl_system3.dbf和erp42_jck.dbf这里个文件因缺失部分页导致其无法正常使用。因此需要采用备份来恢复这两个数据库文件,但是在检查完这两个文件的备份后发现cl_system3.dbf的3月30号全部备份因备份机制故障导致没有备份出来,而erp42_jck.dbf的3月份备份全部没有,只有4月份的全部增量备份,如下图七:
·
由于erp42_jck.dbf文件中只缺失少量的页,因此可以根据缺失的页号在增量备份中查找,再将找到的页补到erp42_jck.dbf文件中,这样可以恢复一部分丢失的数据库页。最终补完后还是缺失部分页,无法正常使用。但是可以通过自主开发的数据库解析程序将erp42_jck.dbf文件中用户比较重要的几十张表成功导出,并成功导入到新建的数据库中。
·
6、验证数据
在本地服务器中搭建和原始环境一样的数据库环境(SQL Server 2008),由客户通过Teamviewer远程工具连接到验证服务器,并安装上层宏桥应用软件。再由客户安排工程验证数据库是否完整,经过仔细的验证后,数据库恢复基本没问题。上层应用可以正常运行,数据记录也都基本没有缺失,数据库成功挂载,如下图八:
标签:不能 size view 顺序 上进 数据库服务 数据库恢复 破坏 用户
原文地址:http://blog.51cto.com/sun510/2059454