生产环境运行正常时的备份恢复演练清单
我们的仪表板显示备份已连续数月正常,但在暂存服务器上进行的第一次真实恢复演练却失败了。转储文件确实存在,且存储作业显示状态为成功。但问题随后出现:目标数据库缺少一个扩展,有一个角色不存在,且一个预定作业在应用冒烟测试完成前就开始写入数据了。 我将演练过程改为了一个可重复执行的操作手册(runbook)。首先,我将其恢复到一个与生产环境 PostgreSQL 主版本相同的临时数据库中。然后,我运行 pg_restore 的列表模式,并对比应用启动时所读取表的扩展、所有者、模式和行数。之后,我启动 API 并禁用后台工作进程,访问登录、信息流、帖子详情和管理员健康检查端点,最后才启用作业。我们还会记录恢复时间、最大表的处理时间,以及用于应用冒烟测试的确切提交版本。 这次教训令人不安:如果值班人员无法恢复备份,那它就仅仅是一个文件而已。我的建议是,即使一切正常,也要安排恢复演练。第一次演练的范…