如何配置PostgreSQL的WAL归档至指定路径?含%f与%p示例
PostgreSQL WAL归档命令配置说明
关键占位符含义
- %f:仅指WAL文件的文件名(不含任何路径),例如
00000001000000000000000A - %p:WAL文件在PostgreSQL数据目录内的完整路径,例如
pg_wal/00000001000000000000000A
归档命令配置示例
本地路径归档(基础版)
直接将WAL文件复制到本地归档目录,在postgresql.conf中设置:
archive_command = 'cp %p /mnt/postgres-wal-archive/%f'
注意:需确保
/mnt/postgres-wal-archive/目录已创建,且PostgreSQL运行用户拥有该目录的读写权限。
带完整性校验的归档
归档同时生成校验文件,用于后续验证文件完整性:
archive_command = 'cp %p /mnt/postgres-wal-archive/%f && md5sum %p > /mnt/postgres-wal-archive/%f.md5'
远程服务器归档(SCP方式)
将WAL文件归档到远程服务器,需提前配置PostgreSQL运行用户免密登录远程主机:
archive_command = 'scp %p backup-user@192.168.1.100:/opt/remote-wal-archive/%f'
重要注意事项
- 归档命令执行成功必须返回0,返回非0时PostgreSQL会持续重试该归档任务
- 禁止使用会修改原WAL文件的操作,必须保证源文件的完整性
- 归档目录需定期清理,避免磁盘空间耗尽
内容的提问来源于stack exchange,提问作者sandesh Jadhav
相关产品推荐
相关产品推荐

