web-dev-qa-db-ja.com

スレーブからのPostgresql pg_basebackupはWALを保存しませんでした

スレーブサーバーからpg_basebackupユーティリティを使用してバックアップを撮影することは可能ですか(このユーティリティpg_basebackupを使用してレプリケーションをストリーミングする場合)?

Hot_standbyサーバー(pg_basebackupを使用したレプリケーションのストリーミング)を使用しており、スレーブからpg_basebackupを定期的に実行していますが、バックアップ(base.tar.gz)を開くと、WALファイルが見つかりません。

マスター(またはスレーブ、idk)にarchive_commandを設定する必要がありますか?

3
Andrew Zaharov

レプリカにmax_wal_sendersを設定して、--xlog-method=streamの代わりに--xlog-method=fetchを使用すると、basebackupが個々のWALレコードを出荷時に取得するのではなく、出荷時に取得できます。 basebackupの最後にWALセグメントを取得します。 --xlog-method=fetchを使用する必要がある場合は、適切なbasebackupを実行できるようにwal_keep_segmentsを十分に高く設定する必要があります。 checkpoint_segments x2は、開始点として妥当なはずです。

参考として、9.3バージョンのpg_basebackupのドキュメントは here です。

別のサーバーに復元してバックアップをテストし、それに対していくつかのテストを実行して、バックアップが一貫した状態であり、バックアップしたいデータの適切なスナップショットを持っていることを確認することを強くお勧めします。

補足として、9.3の下にarchive_commandを設定し、restore_commandrecovery.confを設定した場合、ネットワークの状態によってストリーミングレプリケーションが行われた場合、ストリーミングレプリカは自身を回復して続行できます。遅れ。この問題の例と解決策と解決策については、ここで説明しています。 http://evol-monkey.blogspot.com/2014/09/offsite-replication-problems-and-how-to.html =

これがお役に立てば幸いです。 =)

1
Kassandry