如果 datadir 文件系统被挂载为 /,可以使用“Percona MySQL Data Recovery”来恢复被删除的表吗?

如果 datadir 文件系统被挂载为 /,可以使用“Percona MySQL Data Recovery”来恢复被删除的表吗?

根据 Percona 的说法:

如果出现以下情况,请卸载文件系统或将其设为只读......
文件系统损坏或
您删除了 innodb_file_per_table 格式的表

如果我启用了 innodb_file_per_table,并且意外删除了一个表,而 datadir 已挂载为 / 分区内,是否仍可以恢复数据?显然,您无法使用未挂载的根文件系统。

我们的 VPS 主机有一个默认的文件系统表,我们无法自定义。我想知道未来是否会出现这种情况。

编辑:通过 NFS 将 / 文件系统以只读形式挂载到另一个系统上是一种解决方法吗?

短暂性脑缺血。

答案1

您可以将根分区保留在 RW 模式,但必须了解任何写入的字节都可能覆盖您的 MySQL 数据。对于操作系统来说,它是可用空间,因此可以重复使用。

对于您的情况,我会停止所有可能写入磁盘的进程(包括 cron 作业),并将磁盘映像传输到其他服务器。然后,所有恢复工作都可以在该服务器上完成。

dd if=/dev/sda of=/dev/stdout | nc a.b.c.d 9999

在目标服务器(abcd)上启动以下命令:

nc -l 9999 > disk.img 

相关内容