保留多个 PostgreSQL 基础备份是否有任何价值



我有一个由其他人配置的数据库,有一个 cron 脚本每天早上进行 basebackup,目前我们保留 15 天的 basebackup。据我了解,当pg_basebackup成功完成时,数据库会删除早于生成的 basebackup 的 WAL 文件,这意味着时间点恢复只能在上次 basebackup 之前实现(除非您想将数据库还原到上一个 basebackup 的确切时间点,我猜)。

在我看来,这意味着将任何基本备份保留在比上一个成功的备份更老的地方是没有意义的。有人对此有任何建议吗?基本备份在小型服务器上占用了太多空间,要么我需要删除其中一些,要么我需要增加服务器的大小,从而增加成本。

如果数据出现问题(假设某种损坏),并且在几天或一夜之间没有注意到。如果您只保留最后一个备份,则最终可能会丢失数据。 或者,如果上次备份有些糟糕,那么您将遇到麻烦。

例如,如果一个表包含的记录访问频率不高,例如每周一次报告或每月一次,并且有人意外删除了其中一些记录,那么您将缺少几条记录并羞于几天的备份保护。

您可能需要查看数据库中的内容并决定您想要多少。 也许只保留 7 个,每周进行备份恢复以验证上次备份是否可用。 然后是一些脚本来验证重要数据的完整性,还有一些电子邮件通知,以获取有关整个shebang的信息。

是的,有一点; 正如 Drew 所指出的,如果您暂时没有注意到存在未检测到的表损坏、意外数据删除等,它会对您有所帮助。

与其保持频繁的基本备份,不如考虑使用免费的开源 PgBarman 工具来为您管理连续存档。设置保留期,执行频率较低的基本备份,并使用 WAL(预写日志)存档将数据库更改"重放"到基本备份上,以实现从目标时间点的还原。

(披露:我与开发酒保的团队合作,尽管我自己并不工作)。

此外,如果基本备份与数据库位于同一服务器上,则您做错了。将它们放在异地,或者至少放在不同的主机上(最好连接到防洪防火保险箱内的耐用存储)。

相关内容

最新更新