2015-10-05 72 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