服务器数据恢复环境:
同友存储;
5台以上的虚拟机,其中3台linux虚拟机存储重要数据。
故障:
raid解体导致存储无奈启动。
服务器数据恢复流程:
1、制订复原计划。
与服务器管理员沟通之后,北亚数据恢复工程师查看存储底层数据,剖析存储层次结构,剖析后果如下:
存储构造
2、重组raid。
重组raid过程中北亚数据恢复工程师发现此存储中的raid5缺失2块盘(第一掉线盘掉线后热备盘顶替,第二块盘掉线导致RAID5处于降级状态,最初第三块盘盘片划伤掉线,最终RAID解体),无奈通过校验间接获取失落盘的数据,所以只能应用和磁盘等同大小的全0镜像进行重组(此办法只可用于紧急情况,因为通过空镜像组成的raid文件系统构造会严重破坏,每个条带都会缺失两个块的数据)。
重建raid
3、提取LUN。
剖析存储构造,获取存储划分的MAP块。在找到MAP块之后解析获取各个LUN的数据块指针,北亚数据恢复工程师编写数据提取程序提取LUN碎片。提取实现后进行碎片拼接,组成残缺LUN。
提取LUN
4、导出LUN内所有虚拟机,尝试启动不胜利,提取虚拟机内文件。
导出虚拟机后尝试启动,然而因为操作系统被毁坏虚拟机无奈启动。在虚拟机无奈启动的状况下只能先提取虚拟机内文件,取出文件后进行测试,发现大多数文件都被毁坏,只有局部小文件能够关上。
5、与服务器管理员沟通,剖析前期复原可能性,制订前期复原计划。
在与服务器管理员沟通后得悉虚拟机内有mysql数据库,因为数据库底层存储的特殊性,能够通过扫描数据页进行数据提取。在找到此虚拟机后发现虚拟机启用快照,父盘和快照文件都被损坏的状况下惯例合并操作无奈实现,应用北亚自主研发VMFS快照合并程序进行快照合并。
6、获取mysql数据页并剖析。
依据mysql数据页特色进行数据页扫描并导出(innodb引擎能够应用此计划,myisam因为没有“数据页”这个概念,所以此办法不可用),剖析零碎表获取各用户表信息,依据各个表的id进行数据页宰割。
7、提取表构造。
因为数据库应用工夫已久,表构造也曾多次变更,加上零碎表在存储损坏后有局部数据失落,记录提取过程不顺利。首先获取最后版本数据库各个表的表构造:合并快照前的父盘因为写入较早,应用第一块掉线盘进行校验获取到这个文件的残缺数据,而后提取出其中数据库各个表的表构造,服务器管理员提供了最新版的数据库建表脚本。
8、提取记录。
别离应用两组不同表构造对数据记录进行提取,导入到复原环境中的mysql数据库内,而后剔除各个表中因为表构造变更造成的乱码数据,最初将两组数据别离导出为.sql文件。
9、验证数据。
因为两个版本的数据库表构造不同,所以分割了客户方的利用工程师进行调试,调试实现后导入平台,平台调试胜利,数据恢复实现。
发表回复