服务器数据恢复—Raid5多盘掉线,存储如何“起死回生”?

raid数据恢复环境&故障:

某单位同友存储,存储中有一组raid5磁盘阵列。存储内部共有虚拟机若干台,raid5阵列崩溃导致存储无法启动。

raid数据恢复过程:

1、与用户方沟通及查看底层存储情况,分析存储层次结构。

存储结构:

2、本案例中raid5阵列缺失2块盘(第一掉线盘掉线后热备盘自动上线顶替,之后又有一块盘掉线导致RAID5阵列处于降级状态。当第三块盘盘片划伤导致掉线时,RAID崩溃),无法通过校验直接获取丢失盘的数据,所以只能使用磁盘同等大小的全0镜像进行重组(此方法只可用于紧急情况,因为依赖空镜像组成的raid文件系统结构会被严重破坏,相当于每个条带都会缺失两个块的数据)。

3、提取LUN

分析存储结构,获取存储划分的MAP块。在找到MAP块之后通过解析获取到各个LUN的数据块指针。北亚企安数据恢复工程师编写数据提取程序提取LUN碎片。提取完成后拼接碎片,组成完整LUN。

提取LUN:

4、导出LUN内所有虚拟机,尝试启动。由于操作系统被破坏,虚拟机无法启动。

5、在虚拟机无法启动的情况下,提取虚拟机内文件。提取出文件后进行测试,发现大多数文件都被破坏,只有少部分小文件可以打开。

6、和用户方沟通后得知有一台虚拟机内有mysql数据库。由于数据库底层存储的特殊性,可以尝试通过扫描数据页提取数据。找到该虚拟机后发现虚拟机启用快照。父盘和快照文件都被损坏的情况下通过常规合并操作无法完成,数据恢复工程师使用北亚企安自主研发VMFS快照合并程序合并快照。

7、根据mysql数据页特征扫描数据页并导出(只有innodb引擎可以使用此方案),分析系统表获取各用户表信息。根据各个表的id进行数据页分割。

8、因为数据库使用时间已久,表结构也曾多次变更,加上系统表在存储损坏后也有部分数据丢失,记录提取过程遇到很大阻力。

首先获取最初版本数据库各个表的表结构。因为合并快照前的父盘写入较早,使用第一块掉线盘进行校验获取到这个文件的完整数据,然后提取出其中数据库各个表的表结构,之后用户方提供了最新版的数据库建表脚本。

9、分别使用两组不同表结构提取数据记录,并导入恢复环境中的mysql数据库内,然后剔除各个表中因为表结构变更造成的乱码数据,最后将两组数据分别导出为.sql文件。

10、因为两个版本的数据库表结构不同,所以联系应用工程师进行调试。调试完成后导入平台,平台调试成功,数据恢复完成。

相关推荐
北亚数据恢复1 天前
数据库数据恢复—无有效备份下Oracle Truncate数据表的数据恢复案例
oracle·数据恢复·服务器数据恢复·北亚数据恢复
CHS_Lab3 天前
DELL服务器阵列崩溃恢复方法
服务器·数据恢复·dell·raid·阵列恢复·戴尔恢复·服务器恢复
北亚数据恢复3 天前
服务器数据恢复—Oracle数据库异常报错下的服务器数据恢复案例
数据恢复·服务器数据恢复·北亚数据恢复·raid数据恢复
北亚数据恢复9 天前
VSAN数据恢复—VSAN架构原理与故障数据恢复实战
数据恢复·服务器数据恢复·北亚数据恢复·虚拟化数据恢复·vsan数据恢复
qq_2837200511 天前
MySQL技巧(九): Binlog 完整格式解析(ROW 模式,默认)
mysql·binlog·数据恢复
北亚数据恢复15 天前
服务器数据恢复—RAID阵列多盘离线与数据库损坏下的服务器数据恢复案例
数据恢复·服务器数据恢复·北亚数据恢复·存储数据恢复
Coolmuster_cn15 天前
如何通过 5 种方式备份和恢复 Android 联系人
数据恢复·android备份
风清扬【coder】18 天前
Anaconda 被误删后抢救手册:数据恢复 + 环境重建应急流程
python·数据恢复·anaconda·环境重建
sinat_3335188718 天前
Excel乱码噩梦终结者:告别数据丢失的救急方案深度解析
数据恢复·数据安全·excel乱码·办公痛点·表格修复
正大数据恢复21 天前
数据恢复的核心是“避免二次破坏“
经验分享·数据恢复