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

根据Percona:

卸载文件系统或使其只读,如果…
你有文件系统损坏或
您已经以innodb_file_per_table格式删除了表

如果我启用了innodb_file_per_table,并意外删除了一个表,而将datadir挂载在/分区内,数据仍可以恢复吗? 显然你不能使用卸载的根文件系统。

我们的VPS主机有一个我们无法自定义的默认文件系统表。 我想知道在未来的情况下。

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

TIA。

在恢复期间是否使根文件系统只读为您接受? 如果是这样,请尝试:

mount / -o remount,ro 

你将不得不安排让第二个FS给Percona恢复,我想你的VPS主机可能不允许这样做。

您可以将根分区保留为RW模式,但必须明白任何写入的字节都可能会覆盖您的MySQL数据。 对于操作系统它是可用空间,所以它可以重用。

在你的情况下,我会停止所有可能写入磁盘(包括cron作业)和磁盘映像到其他服务器的进程。 然后,所有恢复工作都可以在另一台服务器上完成。

 dd if=/dev/sda of=/dev/stdout | nc abcd 9999 

在目标服务器(abcd)上启动:

 nc -l 9999 > disk.img