备份实时 mysql 数据库中 MyIsam 表的最佳方法是什么

备份实时 mysql 数据库中 MyIsam 表的最佳方法是什么

我不想将表转换为 InnoDB,对我的实时网站进行安全备份的最佳方法是什么?

我浏览过这个网站上的许多帖子。我认为除非我们在 MyIsam 的情况下关闭网站,否则不会出现这种情况。对于 InnoDB,我们可以使用 --single-transaction。

到目前为止我一直在使用 mysqldump。但对于实时论坛来说,恢复可能会有风险。mysqldump 似乎确实会锁定表,但会逐个锁定,这可能会损坏数据库表。

我想知道使用单个命令的最佳方法是什么!

答案1

其中一个选项是设置复制并使用 --lock-tables 在从属服务器上执行 mysqldump。另一个选项是在备份期间停止从属服务器,复制/存档数据,然后重新启动 mysql。这样,您可以避免 mysqldump/restore 过程,因为对于大数据集来说,该过程非常耗时。

答案2

一个建议是使用 ZFS 文件系统来存储数据库,然后对文件系统进行快照。这种方法具有高度可扩展性,可生成一致的快照,并且不会长时间(不到一秒?)锁定文件系统。

如果您的服务器在 Amazon 的云上,您可以考虑使用脚本 ec2-consistent-snapshot。它与 XFS 文件系统配合良好,本质上是刷新数据库、冻结文件系统、拍摄快照并解冻文件系统。虽然可能不完全适用于您的设置,但该过程可能仍然有用。

以上两项都是在文件系统级别工作,而不是通过 mySQL 运行。

相关内容