3

我使用 rsync 备份服务器上的文件,使用 mysqldump 备份我的数据库。这是我的担忧:

我的数据库上的 mysqldump 大约需要 30 秒。我有一个名为 photos 的表,它存储有关用户上传的图像的信息,包括文件的路径。我担心在完成 mysqldump 所需的 30 秒内上传或删除照片时会发生什么。如果发生这种情况,然后我要恢复 rsync'd 文件和 mysqldump 数据,那么我可以查看一个数据库,其中包含指向已删除照片的行,或者丢失已成功上传的照片的行。

如何确保 mysqldump 与 rsync 完全匹配?

在此先感谢,布赖恩

4

3 回答 3

1

用于LOCK TABLES阻止正在备份的表中的任何写入活动。完成后解锁它们mysqldump

于 2009-08-18T05:12:23.453 回答
1

我认为答案很简单,只需在完成 mysqldump 后运行 rsync :) 这样最坏的情况下,您将有几个不在数据库转储中的新文件,但您不会有不一致的数据库条目。

于 2009-08-23T11:23:22.567 回答
0

您可以 MD5 生成的 mysqldump(在服务器上)和通过 rsync 传输的(本地),然后比较两个哈希以确保它们匹配。另一种选择是在版本控制文件上设置 mysqldump(使用 git 或 svn 或您最喜欢的 vcs)。例如,使用 git 的优势在于,您可以轻松设置一些提交后挂钩以将更改推送到远程服务器,并且上传只是版本之间的差异,而不是整个转储。这样,您可以考虑减少备份时间。

于 2009-08-18T05:24:30.590 回答