BDR/HAProxy server pool management¶
tpaexec pool-disable-server およびpool-enable-server
コマンドを使用すると、メンテナンスのためにBDR-Always-ON
clusterのBDRインスタンスをHAProxyアクティブサーバープールから一時的に削除し、後で追加できます。
これらのコマンドはデフォルトでrolling
updatesと同じプロセスに従います。そのため、
pool-disable-server
はBDRインスタンスに対するアクティブなトランザクションが完了するまで待機し、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 BDR instance named
# orange, so you can perform maintenance on it (e.g., run `tpaexec
# rehydrate`).
$ tpaexec pool-enable-server ~/clusters/clockwork orange
サーバープールからインスタンスを削除すると、プール内の他のインスタンスに障害が発生した場合でも、HAProxyはそのインスタンスにトラフィックを転送しません。メンテナンスアクティビティが終了したら、サーバーをアクティブなプールに戻すことを忘れないでください。