我有一个由其他人配置的数据库,每天早上都有一个cron脚本来获取basebackup,目前我们正在保留15天的basebackup。据我了解,当pg_basebackup成功完成时,数据库将删除早于生成的basebackup的WAL文件,这意味着只能在上次basebackup时实现时间点恢复(除非您想要将数据库恢复到准确状态)以前的basebackup的时间点,我想)。
在我看来,这意味着保持任何超过上一次成功的基础备份没有意义。有没有人对此有任何建议? basebackup在一个小型服务器上占用太多空间,要么我需要删除其中一些,要么我需要增加服务器的大小,从而增加成本。
答案 0 :(得分:4)
如果数据出现问题(让我们说某种腐败),它会被忽视几天或一夜之间。如果您只保留上次备份,则最终可能会导致数据丢失。或者,如果最后一次备份有点不好,那么你就会遇到麻烦。
例如,如果一个表包含不经常访问的记录,例如每周一次用于报告或每月一次,并且有人在事故中删除了其中一些记录,那么您将简短地记录一些记录并且害羞几天备份保护。
您可能需要查看数据库中的内容并确定您想要的数量。也许只需保留7并每周进行一次备份恢复,以验证上次备份是否可用。然后是一些脚本来验证重要数据的完整性,以及一些电子邮件通知,以获取有关整个shebang的信息。
答案 1 :(得分:2)
是的,有一点;正如Drew所说,如果您暂时没有注意到未检测到的表损坏,意外删除数据等,它会帮助您。
请考虑使用免费的开源PgBarman工具来管理continuous archiving,而不是频繁进行基本备份。设置保留期,减少频繁的基本备份,并使用WAL(预写日志)存档来重放"重播"数据库更改为基本备份以从目标时间点实现还原。
(披露:我与开发酒保的团队合作,虽然我自己也没有开发过。)
此外,如果基本备份与数据库位于同一服务器上,那么您的错误。将它们送到现场,或至少在不同的主机上(最好连接到防洪防火保险箱内的耐用存储器)。