2013-10-16 11 views
6

マスターPostgreSQL 9.2サーバをアーカイブしないでストリーミング複製を実行するように設定することは許されていますか、または妥当かどうか。PostgreSQL 9.2では、ストリーミングレプリケーションにアーカイブが必要ですか?

「スレーブ」サーバー(ホットスタンバイ)は、WALセグメントをアーカイブできるように構成できますか。

wal_level = hot_standby 
hot_standby = on 
archive_mode = on 

このようにすると、マスターサーバー上のアーカイブネットワークトラフィックを半分に減らすことができます(ただし、アーカイブは行いません)。これは妥当と思われ、ドキュメンテーションはこの設定をサポートするように見えますが、私は良い設定をしていることを少し安心しておきたいと思います。 documentationから

答えて

7

(強い自分で追加):

ファイルベースの継続的アーカイブせずにストリーミングレプリケーションを使用する場合、あなたは確実にするために十分に高い値にマスターにwal_keep_segmentsを設定する必要があります古いWALセグメントは早すぎてリサイクルされませんが、スタンバイではそれに追いつく必要があります。 スタンバイがあまりにも少なくなった場合は、新しいベースバックアップから再初期化する必要があります。スタンバイからアクセスできるWALアーカイブを設定した場合、スタンバイが常にそのアーカイブを使用して追いつくことができるため、wal_keep_segmentsは必須ではありません。

私の理解から、あまりにも多くのトランザクションが実行されていると、スレーブは同期に苦労する可能性があります。特に、スレーブが実際に何を取得する前にマスターがWALファイルを削除した場合。マスターにarchive_modeがなければ、WALファイルを削除することはできません。

WALのアーカイブを維持し、ストリーミングをホットスタンバイのあるアーカイブ構造に追加すると、スレーブがアーカイブされたWALに常にアクセスできるため、ストリーミングを追加することはできません。ストリーム上のアクティビティで許可されます。アーカイブへのアクセスがなければ、本当に重いものの後でスレーブの完全性を失う危険性があります。

関連する問題