服务器上的 RAID 1 - 需要来自镜像驱动器的文件

服务器上的 RAID 1 - 需要来自镜像驱动器的文件

大约 3 年前,我为一家医疗诊所设置了一台 Ubuntu 服务器。我设置了 2 个 HDD,用于 RAID 1(软件 RAID)RAID设置

今天他们突然无法访问其中一个 mySQL 数据库上的表。

现在如何从镜像(备份)HDD 恢复 mySQL 数据库?

答案1

镜像只是针对单个驱动器故障的保护。 它不能替代备份。 如果数据库无法从 RAID-1 访问,则也无法从单个磁盘访问......

唯一的办法是:使用 复制完整数据库到 2 个单独的磁盘(有 2 个副本),使用和ddrescue分析单个磁盘的 SMART 数据,如果需要安装新磁盘,格式化(新的?)磁盘并恢复最新的备份然后提取其中一份副本上的原始数据,并导入尽可能多的可以从提取中导入的数据。smartctlbadblocks

将要有数据丢失,尽管ddrescue它应该是最小的并且希望仅在索引中!

答案2

RAID 立即将更改复制到两个都磁盘。因此,例如,如果您有rm一个文件,它将同时rm存储在两个磁盘上。或者如果有什么东西破坏了它,或者其他什么。

RAID-1 只能防止磁盘发生故障。如果一个磁盘发生故障,阵列将继续工作,几乎不会出现任何中断,只是少使用一个磁盘。从概念上讲,并不存在真正的“主”和“备份”磁盘,两个(或更多)磁盘充当一个非常可靠的磁盘。

您可以通过例如,检查阵列状态cat /proc/mdstat。如果阵列没问题,并且您遇到了 MySQL 损坏,MySQL 有恢复工具...除此之外,还可以从备份恢复。

答案3

没有备份驱动器,如果有 RAID-1,则只有一个镜像。如果一个驱动器出现故障(从双驱动器阵列),您仍然应该能够访问第二个驱动器,如果该驱动器出现故障(似乎是您的情况),则必须从备份中恢复。

如果系统已启动,您可以通过执行以下操作来检查 raid 的状态:

cat /prod/mdstat

如果您有一个驱动器正在工作,您的输出中将会有一个 U(在方括号之间,如[U_]),在这种情况下,您的 RAID“仅”降级,但在这种情况下它应该仍然可以工作。我假设您已经为 RAID 设置了电子邮件通知。

您应该使用 检查驱动器状态smartctl

答案4

我按照说明进行操作http://www.thegeekstuff.com/2011/12/mysqlcheck/ 并把桌子修好了。应用程序现在运行良好。

感谢大家。

相关内容