故障形貌
1、硬件架构概述
服务器:Dell720服务器配戴一张H710P的RAID卡。
存储阵列:由4块希捷2TSTAT硬盘构成的RAID10。
操纵体系:XenServer6.2版本。
2、故障假造机概述
操纵体系:WindowsServer2003。
应用:Web服务器(ASP+SQL2005的网站架构)。
假造磁盘:10G体系盘+5G数据盘。
故障形貌:因特别缘故起因导致XenServer服务器中一台VPS(即XenServer假造机)不可用,假造磁盘中数据丢失。
故障分析
1、备份数据;先将客户的数据盘毗连到规复环境服务器上,然后预备比客户数据总容量还要大的空间。将客户数据盘以磁盘底层扇区的方式镜像到预备的空间上,以确保客户的数据安全。
2、分析故障缘故起因;细致分析底层数据发现XenServer服务器中假造机的磁盘都是以LVM的布局存放的,即每个假造机的假造磁盘都是一个LV,而且假造磁盘的模式是精简模式的。LVM的相干信息在XenServer中都有记录,查察“/etc/lvm/backup/“下LVM的相干信息发现并没有存在破坏的假造磁盘信息,因此可以断定LVM的信息已经被更新了。接着分析底层看可否找到未被更新的LVM信息,果不其然在底层发现了还未更新的LVM信息。如下图:
图一:
根据未被更新的LVM信息找到了假造磁盘的数据地区,发现该地区的数据已被粉碎。分析后发现造成假造机不可用的终极缘故起因是由于假造机的假造磁盘被粉碎,从而导致假造机中的操纵体系和数据丢失。而导致这种环境的发生很有大概是假造机遭遇网络攻击或hack入侵后留下恶意程序造成的。细致查对这片地区后发现,固然该地区有很多数据被粉碎了,但还是发现了很多数据库的页碎片。因此可以实行将很多数据库的页碎片拼成一个可用的数据库。
办理方案
1、方案一:规复数据库备份;根据客户形貌,数据库在4月份做过一次备份,并将这个数据库备份文件和网站代码一起压缩到一个RAR的压缩包中。因此只必要规复这个压缩包即可规复这个备份的数据库和网站的源代码。
2、方案二:拼数据库碎片;由于数据区被粉碎,因此只能在底层根据数据库的布局将将数据库的碎片按照原有的次序都拼接起来,然后做数据库的修复以及数据库的校验即可规复此数据库。
规复数据
1、实行方案一;按照方案一的思绪举行底层分析,根据RAR压缩包的布局可以找到很多压缩包的数据开始位置,而RAR压缩包文件的第一个扇区中会记录此RAR的文件名。因此根据从客户那边得知备份数据库的压缩包文件名和如今找到的压缩包位置的文件名相匹配,即可找到备份数据库压缩包的开始位置。找到压缩包的位置后细致分析这片地区的数据,然后将此地区的数据规复出来重定名为一个RAR格式的压缩文件。然后实行解压此压缩包,发现解压报错。
图二:
细致分析规复出来的压缩包发现中有部分数据被粉碎了,因此解压的时间报错。实行利用RAR的修复工具看可否忽略错误,解压部分数据。结果修复完成之后解压的数据库只有网站的部分代码,并没有数据库的备份文件。因此可以判定数据的备份文件在RAR压缩包中是破坏的。
图三:
2、实行方案二:由于方案一并没有将数据库规复出来,因此采取方案二来规复数据。根据SQLServer数据库的布局去底层分析数据库的开始位置,在数据库的布局中,第9个页会记录本数据库的数据库名。因此在客户那边获取数据库的名称之后,再分析底层找到此数据库的开始位置。由于在数据库的每个页中都会记录数据库页编号以及文件号,以是可以根据这些特性编写程序去底层扫描符合数据库页的数据。
然后将扫描出来的碎片按次序重构成一个完备MDF文件,再通过MDF校验程序检测整个MDF文件是否完备。重修的MDF文件如下:
图四:
3、搭建环境验证数据
检测没题目之后再由我们的数据库工程师搭建数据库环境,将重组后的数据库附加到搭建好的数据库环境中。然后查询相干表数据是否正常,查询最新数据是否存在。截图如下:
图五:
验证数据
由于数据库必要连合网站代码才华更好的验证数据库的完备性,而网站源代码大部分都被粉碎了,备份中的源代码也只有部分才可以用。客户从开辟商里拿到了网站代码搭建好了环境,然后将规复好的数据库发给用户。经用户验证后,数据库没题目。
规复总结
由于客户数据被非法粉碎,因此规复难度很大。底层大量的数据都被粉碎了,但是客户紧张的是SQLServer数据库,因此只必要规复数据库文件即可。因此通过拼数据库碎片的方式乐成将数据库规复完成,整个数据规复乐成。
我要评论