如何定期进行 pg_base 备份而不丢失任何 WAL 文件。如何暂停wal存档

问题描述 投票:0回答:1

环境:PostgreSQL 13.x Docker 容器。

我获取了 pg_basebackup 并使用 wal_archive=on 配置了 PostgreSQL 13.x。它正在按预期工作。

我看到建议定期进行pg_basebackup。如何每周或每天轮换基本备份?

示例:如果新的

pg_basebackup
每周六晚上运行,我们是否应该考虑在此期间停止/暂停 wal_archiving?

#Locations:
pg_basebackup : /db-backup/basebackup
archive_command: /db-backup/wal_files

所以想每周六移动档案

db-backup

mv /db-backup /db-backup-old

执行这些操作时,我应该暂停

wal_archiving
过程吗?根据文档 我们可以通过设置24.3.1来停止/暂停它。设置 WAL 归档

archive_command = ''

这是正确的做法吗?如果是这样,我们应该重新加载配置还是可以通过任何方式即时更新此配置? 注意:使用 Postgres-docker 容器。

我想要实现的是:

如果在数据库备份轮换期间某些数据写入数据库,则它应该位于新的基本备份或新的 wal-files 目录中。

如果这些困惑无关紧要,请纠正我。

postgresql docker database-backups wal
1个回答
0
投票

您可以尝试使用以下选项的pg_basebackup

pg_basebackup --checkpoint=fast --format=tar --wal-method=stream -D "$BACKUP_DIR/$FNAME.bak"

其中

--checkpoint=fast
将检查点模式设置为快速(立即)。所以所有的交易都会被刷新到磁盘

--wal-method=stream
将在进行备份时传输预写日志数据。此方法将打开与服务器的第二个连接,并在运行备份时开始并行传输预写日志。因此,它将需要两个复制连接,而不仅仅是一个。只要客户端能够跟上预写日志数据,使用此方法不需要在源服务器上保存额外的预写日志

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.