PostgreSQL能否实现按单库而非全集群进行增量备份?
PostgreSQL 单库增量备份方案说明
原生PostgreSQL提供的pg_basebackup与WAL日志默认是集群级别的备份能力,无法直接针对单个数据库做增量备份,但可以通过以下几种方案实现单库增量备份需求:
逻辑备份+逻辑解码增量捕获方案
先通过pg_dump做目标单库的全量基础备份,之后开启集群逻辑解码能力捕获该库的所有数据变更,定期导出变更日志作为增量备份。恢复时先恢复全量备份,再按时间顺序重放对应增量变更日志即可完成恢复。
该方案使用原生功能即可实现,无需额外工具,需要提前将集群wal_level参数设置为logical,并为目标库创建专属逻辑复制槽跟踪变更。独立表空间+块级增量备份方案
提前将目标数据库的所有表空间部署在独立的磁盘分区/逻辑卷上,可针对该分区做块级增量备份(比如LVM增量快照、ZFS增量快照),配合归档WAL日志中对应库的变更段,即可实现单库增量备份。该方案备份恢复速度快,但需要提前做好存储层的规划隔离。第三方备份工具方案
常见的PostgreSQL备份工具如pgBackRest等,都支持指定单个数据库做增量备份,底层通过对比上一次全量/增量备份的单库数据块差异生成增量包,备份和恢复效率都较高,配置也比较简单。
适用场景参考:数据量小、对恢复速度要求不高的场景优先选逻辑解码方案,对集群原有配置改动最小;数据量较大、要求高效备份恢复的场景,优先选第三方工具或块级增量方案。
内容的提问来源于stack exchange,提问作者Jaisol
相关产品推荐
相关产品推荐

