BDR/HAProxy server pool management#
tpaexec pool-disable-server およびpool-enable-server
コマンドを使用すると、 BDR-Always-ON のPGDインスタンスを、メンテナンスのためにHAProxyアクティブサーバープールから一時的に削除し、その後に追加できます。
これらのコマンドは、デフォルトで Upgrading your cluster と同じプロセスに従うため、
pool-disable-server
は、PGDインスタンスに対するアクティブなトランザクションが完了し、pgbouncerが完了する前に新しい接続を別のインスタンスに転送するのを待機します。アクティブなセッションが終了するまで待機したくない場合は、
--nowait オプションを使用します。
インスタンスでpool-disable-server の直後にpool-enable-server
を実行すると、すべてのアクティブなトラフィックが別のインスタンス本質的にスイッチオーバーに移動する効果があります。これにより、インスタンスの可用性を維持しながら、長時間実行されるVACUUMコマンドなどのオンラインメンテナンスタスクを実行できます。
haproxy_backend_servers
の同じセットで構成された複数のHAProxyサーバーが存在する場合、このコマンドは、指定されたサーバーを関連するすべてのプロキシのプールに並行して削除または追加します。
例#
$ tpaexec pool-disable-server ~/clusters/clockwork orange # --nowait
# HAProxy will no longer direct any traffic to the PGD instance named
# orange, so you can perform maintenance on it (e.g., run `tpaexec
# rehydrate`).
$ tpaexec pool-enable-server ~/clusters/clockwork orange
サーバープールからインスタンスを削除すると、プール内の他のインスタンスに障害が発生しても、 HAProxyはトラフィックをそれに転送しません。メンテナンスアクティビティが終了したら、サーバーをアクティブなプールに追加することを忘れないでください。