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

如果服务器发生故障,并且您拥有的只是最后一次备份,那么您至less希望它本身/完整性一致。 那么,我呢。

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

无论您首先启动哪一个,或者您是否同时启动它们,都会先完成另一个,从而允许用户与网站进行交互(例如,上传文件和/或导致数据库内容改变)来更新自己。

对不起,如果这是一个愚蠢的,我还没有find一个问题,已经解决这个问题。

你检查数据库转储,并检查logging的文件名/path列表中的不匹配与静态内容备份中的实际文件列表吗?
我假设文件系统级别的时间戳不一定与数据库中的时间戳相匹配,所以比较上一次的时间戳是不可靠的。

还是在实践中这样罕见的不一致,你根本不在乎,因为炸机服务器将是一个更大的问题,你开始?

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

谢谢!

不,您将网站置于“维护模式”(通常performance为“我们正在维护”页面,或者以100%只读方式运行),直到您将事情恢复到稳定/一致的状态。 如果这样做不是一种select,那么你可能应该问自己,是否依靠单一服务器是一个好主意。

如果您使用Linux,也许可以使用LVM快照来防止对静态文件进行修改。

我会这样做:

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

这样你可以恢复到一个时间点。