pgbackrest,是一款优秀的备份工具,美中不足的是假如需要在备库备份以减少对主库的压力,需要配置ssh免密,相信这对于绝大多数的生产环境,都是无法支持的,细节在此表过不提,感兴趣的可以回过头去看看,pgBackRest你必须知道的坑。
但没法,我们的备份工具是基于pgbackrest研发的,目前也正在开发基于TCP/IP协议的备份,以绕过ssh这个致命缺点。
回到这个问题,首先为什么会将NAS打爆?最先想到的就是回收策略retention,后面经证实也正是回收策略出了问题。在官方文档中,有简单的介绍:
可以指定保留多少份,也可以指定保留多长时间,由repo1-retention-full-type参数控制,分别对应count和time。举个例子:
repo1-retention-full-type=count,repo1-retention-full=2,那么至多只会保留2份全备
repo1-retention-full-type=time,repo1-retention-full=2,那么必须至少有一个2天前的全备
差分备份和增量备份所依赖的备份过期后,也会随之过期。另外WAL归档日志也可以采用类似的过期保留策略,但是官方不推荐,因此WAL会随着相应的备份过期自动删除。
在我们的备份脚本中,规划的是保留2份全备,保留6天的差异备份
repo1-retention-full=2
Repo1-retention-diff=6
同时在脚本里进行判断,假如当天是周六,则进行全备,其余时间进行差异备份。按照之前的分析,差异备份会随着全备过期之后过期,删除相关的备份和WAL,理应不该打爆NAS。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




