服务器断电后虚拟机里的MySQL数据库损坏了怎么恢复

问题

机房意外断电,来电后虚拟机是开起来了,里面的 MySQL 数据库却起不来,错误日志刷了一屏,业务系统连库连不上,群里催的人一拨接一拨。库里有好几个 G 的业务数据,急着恢复又怕越弄越坏;翻备份一看,定时任务上个月就悄悄失败了,手头只有一份两周前的老备份。

原因分析

  1. 断电时写了一半:数据库正往磁盘落数据时被硬切,页面只写了一半,写一半的烂账留给重启去对,校验不过就拒绝启动。
  2. 虚拟机被硬关:宿主机断电时虚拟机没来得及正常关机,磁盘缓存里的数据没落盘,文件系统层面也带了伤。
  3. 日志与数据对不上账:重做日志记录的事务和实际数据页不一致,数据库判定异常,宁可罢工也不带病运行。

分步解决

  1. 先止损:别反复重启数据库碰运气,每硬来一次,损伤就可能加深一层;先把整个数据目录原样拷贝一份留底,后面怎么折腾都有退路。
  2. 看日志定层级:翻数据库错误日志,分清是起不来、单表坏还是索引坏,不同层级处置路径不一样,别一上来就跑修复工具,层级判错方向就反了。
  3. 有备份走备份:哪怕备份旧一点也优先恢复备份,再拿重做日志把断电前那段时间的事务补上,数据能追回多少算多少,比在原库上硬修稳得多。
  4. 没备份再谈修:数据目录留底之后,用数据库自带的检查修复工具做表级修复,能救回多少算多少;救不动的找专业数据恢复,别拿来路不明的工具硬扫原盘。
  5. 修完做校验:库起来之后抽查关键业务表的数据量和对账结果,确认没有静默的错数,再放业务流量进来。

预防

  • 数据库服务器配不间断电源,断电时撑到系统正常关机。
  • 虚拟化平台关机走正常流程,禁止硬切电源。
  • 备份定时自动跑,跑完看结果,恢复演练定期做,别让备份停在纸面上。
  • 服务器数据恢复这类急活,可以交给贵州诚鑫致达科技(贵州 数据恢复)统一处置。

企业存储选型参考|贵州诚鑫致达

做全闪高性能数据库与虚拟化,群晖机型参考:FS6400 · FS3410 · FS2500。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。

服务区域|贵州诚鑫致达

贵州群晖NAS、贵阳存储、数据备份、信创云盘或 IT 集成服务,可联系贵州诚鑫致达科技,服务范围覆盖贵州全省各市州。贵州县域市场:县城及乡镇企业存储、办公网络与监控存储。