1

我有一个很难备份的 1TB 表 (X)。

表 X 包含创建后不经常更新的历史日志数据。我们通常一次只访问一行,所以性能还是很好的。

我们目前每晚进行完整的逻辑备份,并出于备份时间和空间的原因排除 X。我们不需要 X 的历史备份,因为从中填充它的日志文件会自行备份。但是,通过重新处理日志文件来恢复 X 将花费不必要的长时间。

我想将 X 包含在我们的备份策略中,以便我们的恢复时间可以更快。在每晚逻辑备份中包含 X 似乎不可行。

理想情况下,我想要一个增量更新的 X 完整备份(纯粹是为了节省时间)。

我缺乏单独调查解决方案的经验,我想知道我的选择是什么?

Barman 进行增量更新?X分区?两个都?

在做了更多阅读之后,我倾向于对表进行分区并编写一个夜间脚本以仅在更改的表分区上执行逻辑备份(并替换以前的备份)。但是,这种策略在恢复过程中可能仍需要很长时间pg_restore...... 想法?

谢谢!

4

1 回答 1

2

我认为将 barman 与 rsync/SSH + WAL 流选项一起使用并执行增量备份是您的最佳选择。采用这种方式可以使您的夜间备份更容易且成本更低,因为一旦您配置了 barman,您就不必自己做太多的逻辑。我将很快在我的博客中更新此内容,详细说明这些步骤。

在处理大型数据库时,逻辑备份可能不是定期备份的正确方法。使用物理备份时,即使您的备份大小很大,它在获取和恢复成本(性能、速度和简单性)方面也得到了补偿。

谢谢

更新(2020-08-27):

下面是一个带有端到端演示的 git repo。有很多版本的实现已经做到了,但是如果你想从头开始做一些事情并保持图像简单(避免不必要的依赖),请看一下这个实现,

https://github.com/softwarebrahma/PostgreSQL-Disaster-Recovery-With-Barman

谢谢

于 2020-07-23T08:00:14.853 回答