私は http://www.postgresql.org/docs/9.2/static/pgarchivecleanup.html を読んでいますが、私には、スレーブサーバーからすべてのWALセグメントが削除されるようですスレーブサーバーがクラッシュしたときにリカバリを実行する必要はありません(つまり、スレーブが実行されている距離に応じて、基本的には最後の1つまたは数個のセグメントを除くすべて)。不幸なことにデータの破損や偶発的な削除が発生した場合に、可能であれば緊急のポイントインタイムリカバリを実行できるようにしたいと考えています。これを行うには、次の選択肢があります。
オプション1が使用されている場合は、pg archive cleanupコマンドが役に立たないと想定しています。オプション2を使用する場合、意図したとおりにクリーンアップコマンドを使用する必要がありますか(コミットされた直後にすべての追加のWALセグメントを削除します)?私が見逃しているものは他にありますか(オプション3を参照)?
注:私はPostgres 9.2.4を使用しています
あなたは正しいです。 PITR機能が必要な場合は、ベースバックアップが作成されたときと復元できるようにするときの間ですべてのアーカイブを保持する必要があります。
このため、毎週新しいベースバックアップを(たとえば)毎週実行し、それらをローテーションアウトして、ベースバックアップと1週間のアーカイブを保持することをお勧めします。
PgBarmanはこれを支援できるはずです。
PITRが必要な場合は、アーカイブのクリーンアップは望ましくありません。