PostgreSQLのバージョン:

archive_timeout

archive_commandは完了したWALセグメントに対してのみ呼び出されます。従って、サーバのWAL転送量が少ししかない(あるいは処理が少ないなぎの期間がある)場合、トランザクションの完了とアーカイブ格納領域への安全な記録との間に長期にわたる遅延があることになります。データが未アーカイブのままでいられる期間を制限するために、archive_timeoutを設定して、強制的にサーバを新しいWALセグメントに定期的に切り替えるようにすることができます。このパラメータが0より大きければ、サーバは前回のセグメントファイル切り替えから指定秒数経過し、かつ単一のチェックポイントを含む何らかのデータベース操作が行われた場合、新しいセグメントファイルに切り替えます。(データベースが活動していなければ、チェックポイントはスキップされます。)強制切り替えにより早期にクローズされたアーカイブ済みファイルは、完全に完了したファイルと同じ大きさを持つことに注意してください。そのため、非常に小さなarchive_timeoutを使用することは賢明ではなく、格納領域を膨張させてしまいます。1分程度のarchive_timeout設定が通常は妥当です。もしそれより高速にデータをマスターサーバからコピーをしてしまいたいのであれば、アーカイブするよりストリーミングレプリケーションの選択を検討すべきです。このパラメータは postgresql.confファイル、または、サーバのコマンドラインでのみで設定可能です。

推奨事項 [EN]

Dependant on your tradeoff between disk space and letting the standby get behind.

件のコメント