![备份实时 mysql 数据库中 MyIsam 表的最佳方法是什么](https://linux22.com/image/554202/%E5%A4%87%E4%BB%BD%E5%AE%9E%E6%97%B6%20mysql%20%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%AD%20MyIsam%20%E8%A1%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88.png)
我不想将表转换为 InnoDB,对我的实时网站进行安全备份的最佳方法是什么?
我浏览过这个网站上的许多帖子。我认为除非我们在 MyIsam 的情况下关闭网站,否则不会出现这种情况。对于 InnoDB,我们可以使用 --single-transaction。
到目前为止我一直在使用 mysqldump。但对于实时论坛来说,恢复可能会有风险。mysqldump 似乎确实会锁定表,但会逐个锁定,这可能会损坏数据库表。
我想知道使用单个命令的最佳方法是什么!
答案1
其中一个选项是设置复制并使用 --lock-tables 在从属服务器上执行 mysqldump。另一个选项是在备份期间停止从属服务器,复制/存档数据,然后重新启动 mysql。这样,您可以避免 mysqldump/restore 过程,因为对于大数据集来说,该过程非常耗时。
答案2
一个建议是使用 ZFS 文件系统来存储数据库,然后对文件系统进行快照。这种方法具有高度可扩展性,可生成一致的快照,并且不会长时间(不到一秒?)锁定文件系统。
如果您的服务器在 Amazon 的云上,您可以考虑使用脚本 ec2-consistent-snapshot。它与 XFS 文件系统配合良好,本质上是刷新数据库、冻结文件系统、拍摄快照并解冻文件系统。虽然可能不完全适用于您的设置,但该过程可能仍然有用。
以上两项都是在文件系统级别工作,而不是通过 mySQL 运行。