网站备份:数据库内容可靠地匹配静态内容而无需停机?

网站备份:数据库内容可靠地匹配静态内容而无需停机?

如果服务器崩溃,而您只有最后一个备份,您至少希望它本身是一致的/具有高完整性。好吧,我确实希望如此。

我担心的是,如果没有停机时间,人们就会面临数据库转储和静态文件复制之间的竞争:

无论您先启动哪一个,或者同时启动两个,一个都会先于另一个完成,从而允许通过与网站交互的用户来更新自身(例如,上传文件和/或导致数据库内容发生变化)。

抱歉,如果这是重复的,我还没有找到已经完全解决这个问题的问题。

您是否检查过数据库转储并检查记录的文件名/路径列表与静态内容备份中的实际文件列表是否存在不匹配的情况?
我假设文件系统级别的时间戳不一定与数据库中的时间戳匹配,因此比较最后的时间戳是不可靠的。

或者在实践中不一致的情况非常罕见,以至于您并不关心,因为服务器烧坏对您来说一开始就是一个更大的问题?

如果有帮助的话,我们使用的相关服务是Apache2,MySQL5。

谢谢!

答案1

不,您将网站置于“维护模式”(通常表现为“我们正在维护”页面或 100% 只读运行),直到您将网站恢复到稳定/一致的状态。如果上述操作不可行,您可能应该问问自己,依赖单个服务器是否是个好主意。

答案2

如果你使用的是 Linux,也许你可以使用LVM 快照以防止对静态文件的修改。

答案3

我会这样做:

  • 启动数据库备份并记录时间戳
  • 在运行时,将修改后的静态内容存储在备用位置(并继续为其提供服务)
  • 启动静态内容备份
  • 当两个备份都完成时,“提交”新的静态内容。

这样您就可以恢复到某个时间点。

相关内容