还原之后最新三篇文章的图片全是裂图,数据库里已经有这几篇的记录,uploads 里却找不到对应文件,两边时间戳差了六个小时。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,数据库和文件分两个任务跑,数据库在凌晨两点,文件同步在早上八点,中间新增的附件没进备份。两个任务各自成功,合起来就是残缺的一份。

「备份时序不一致」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。改完顺手把文档补一句,省得下次自己重新推一遍。

mysqldump --single-transaction blog > db.sql
tar -czf uploads.tar.gz wp-content/uploads
# 两条命令放在同一个脚本里,时间差控制在分钟级

监控和日志的时间要对上,时区不一致会多绕很大一圈。

具体做法是,把数据库和文件放进同一个备份任务 同一时刻开始;文件先备完再导数据库 顺序反了会漏掉新上传的图;还原后随机抽十篇文章 对比正文里的图片和磁盘文件。

最后用这个标准收尾,抽检的十篇文章图片都能打开,数据库记录和磁盘文件数量一致。

作者 9823189