环境: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 目录中。
如果这些困惑无关紧要,请纠正我。
您可以尝试使用以下选项的pg_basebackup:
pg_basebackup --checkpoint=fast --format=tar --wal-method=stream -D "$BACKUP_DIR/$FNAME.bak"
其中
--checkpoint=fast
将检查点模式设置为快速(立即)。所以所有的交易都会被刷新到磁盘
和
--wal-method=stream
将在进行备份时传输预写日志数据。此方法将打开与服务器的第二个连接,并在运行备份时开始并行传输预写日志。因此,它将需要两个复制连接,而不仅仅是一个。只要客户端能够跟上预写日志数据,使用此方法不需要在源服务器上保存额外的预写日志。