1

我找不到链接了,但我记得读过,如果在写入数据库时​​拍摄 ec2 快照 - 如果您从该快照创建一个 ami 并从该 ami 启动一个实例,它可能无法正确加载由于二进制错误。是在执行 mysql 查询时拍摄 ec2 快照,还是等待查询完成,然后锁定数据库然后拍摄快照?

另外 - 什么是 mysql 应用程序的快照最佳实践?我需要在拍摄快照之前锁定我的数据库吗?

最后——我偶尔会拿这个数据库的mysqldumps。当您使用 mysqldump 时,它会冻结数据库的写入,然后继续转储数据,还是在进行转储之前我需要锁定我的数据库?

4

1 回答 1

3
  1. 不,当您制作快照时,您不能保证文件系统不在写入过程中。如果使用量很大,最好先冻结音量。我使用 XFS 文件系统并简单地使用 XFS freeze 来停止文件系统。(别忘了解冻)

  2. 最佳实践是刷新 mysql 表、锁定它们并冻结文件系统。这样可以确保数据不会被破坏。

  3. mysqldump 在确保您的数据没有损坏方面要好得多。您可以依靠 mysqldump 为您提供良好的数据,而不必冻结整个世界。

查看我为此编写的脚本。

我通常有一个 mysql 主从设置,每天一次在从属设备上做我的 ebs 快照,我做 mysql 转储并将它们更频繁地上传到 s3。

于 2012-06-19T14:46:48.317 回答