1

我们正在使用 barman 备份 1TB+ 的 postgres 数据库。Barman 每天都在备份完整的数据库。每天我们都在转储 1TB+ 的数据库。所以它占用了巨大的空间。我们在 barman 中有以下配置:(broad-level config)

备份方法=rsync

压缩=pzip

重用_备份=复制

由于硬件限制,我们不能使用reuse_backup=link,这意味着我们不能进行增量备份。

即使设置了compression=pzip,我们也不知道为什么酒保不压缩备份。

所以我们想要的是,我们是否可以有一个 post 脚本来压缩数据库备份或任何其他选项来压缩使用 barman 进行的备份。

版本详情:Barman:ver2.12 Postgresql:13 操作系统:Ubuntu 20.04

提前致谢。

4

2 回答 2

1

第一件事:

这个工具,Barman 确实是一个非常好的工具,但对于你的用例,我很少相信它会成为一个富有成效的工具。

其次,您需要重做一些备份策略工作。查看您正在消耗的备份,我不知道您的保留是多少(我假设查看备份的大小不会很高)这是我的 2 美分:

  1. 压缩备份可以节省时间和空间,但是当您想要恢复时会增加开销和时间(同样这不适用于较小的数据库)。

  2. 当您将其与在其之上具有增量和日志进行比较时,每日备份 TB 的数据库(也可能会增长)并不是一个好的选择。

  3. 每周进行一次基本备份,每天进行差异备份,然后在其上进行日志记录。您可以随时微调它以及保留。

  4. 我不确定您的环境是否支持快照,但这是另一种出路,它确实为您加快了恢复和备份速度,它的快照(在机器级别、存储级别等)本质上是拍摄快照,调整您的pg_starts 和 pg_stop连同快照时间,然后放入存档日志(这是如果有人存档他们的日志)

以上将有助于加快进程,也给你空间。

现在回到工具。Pgbackrest是执行上述所有操作的绝佳选择(4. 除外)。如果您不想重新设计备份策略,我认为它比酒保更适合您的用例(无论您使用哪种工具,我都建议您这样做)

我建议不要进行备份然后压缩它,只是为了节省空间,即使在备份完成并且可恢复性受到影响之后,这也需要更多时间。从未来来看,这种方法也不会很好地扩展。

于 2021-07-08T04:31:19.913 回答
1

pgbarman 不会做你想做的事。也许你可以看看别的东西,比如 pgbackrest。(我没有使用它的经验,但我读过的描述使它听起来像它适用于此)。

使用 barman,您可以在事后压缩备份。您甚至可以自动执行此操作,例如:

post_backup_script = gzip -r $BARMAN_BACKUP_DIR/

但是,这会干扰reuse=copy配置。此外,您必须在用于恢复目的之前将其解压缩(可能使用pre_recovery_script)。即便如此,您仍然需要将整个备份完全保存在磁盘上,然后才能对其进行压缩。

于 2021-07-08T01:25:45.393 回答