使用Postgres9.3。
我对pg_archivecleanup的正确使用有些困惑。
我同时使用流复制和备份和连续存档来进行PITR恢复。
我不认为我可以在待机状态下在recovery.conf中配置pg_archivecleanup,因为它不会实现任何功能。主服务器未存档到备用服务器可访问的位置。主服务器正在存档到其本地磁盘上的某个位置,然后这些存档和相关的备份正在rsync'd到一个大型备份磁盘。
因此,解决方案似乎是在主服务器上以“独立”模式运行pg_archivecleanup,例如:
/usr/lib/postgresql/9.3/bin/pg_archivecleanup -d /archive 0000000100000010000000F0.00000028.backup
所以,我会做一个cron作业,对任何比最新的.backup文件旧的.backup文件运行pg_archivecleanup命令,然后删除那些备份文件,只留下最新的文件。
我的理解和计划正确吗?
最佳答案
如果要在最新的基本备份之后只保留WAL段,只需在独立模式下为最新的.backup文件运行pg_archivecleanup(不适用于那些比最新备份早的文件)。
但你真的想只有一个可用的备份吗?首先,您将无法还原到上次备份之前的点。其次,有一些备份是有意义的,以防(损坏等)。
将段归档到本地磁盘,然后在其他地方进行rsync,这看起来很奇怪。为什么不将rsync(然后同步以刷新操作系统缓冲区到磁盘)放入archive_命令?这可以确保在到达目的地之前不会从pg_xlog中删除段。
关于postgresql - pg_archivecleanup和流复制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32939674/