2015-10-05 73 views
1

使用postgres 9.3。pg_archivecleanup和流式复制

我对pg_archivecleanup的正确使用感到困惑。

我正在使用流式复制和备份连续归档PITR恢复。

我不认为我可以在备用的recovery.conf中配置pg_archivecleanup,因为它不会实现任何功能。主服务器不归档到备用服务器可访问的位置。主服务器正在归档到其本地磁盘上的某个位置,然后这些归档文件和关联的备份正在rsync上传输到大型备份磁盘。

所以,这似乎解决办法是在主运行在“独立”模式pg_archivecleanup,如:

/usr/lib/postgresql/9.3/bin/pg_archivecleanup -d /archive 0000000100000010000000F0.00000028.backup 

所以,我会做,将运行在pg_archivecleanup命令cron作业任何早于最新版本的.backup文件,然后删除这些备份文件,只留下最新的文件。

我的理解和计划是否正确?

回答

2

如果要在最新的基本备份之后仅保留WAL段,则只需在独立模式下运行pg_archivecleanup以获取最新的.backup文件(不适用于最新版本的那些文件)。

但是,你真的只想要一个可用的备份吗?首先,您将无法恢复到上次备份之前的时间点。其次,为了防止出现一些备份(损坏等)是有意义的。

将段归档到本地磁盘,然后在别处将它们rsync似乎很奇怪。为什么不把你的rsync(然后同步将操作系统缓冲区刷新到磁盘)放到archive_command中?这可确保该段在到达目的地之前不会从pg_xlog中删除。

+0

是的。从'archive_command'直接''scp''或'rsync'通常要聪明得多。 –

+0

感谢您的反馈。好点。我会将rsync移动到归档命令,并可能更改为至少保留3次备份(每周完成)和所有关联的WAL段。 – wadesworld