Patroniで計画的スイッチオーバーを実行
PostgreSQLPatroniコマンド
# Immediate switchover without confirmation:
patronictl -c /etc/patroni/patroni.yml switchover <cluster> --leader <leader_member> --candidate <member> --force
# Scheduled switchover (ISO 8601 timestamp with time zone):
patronictl -c /etc/patroni/patroni.yml switchover <cluster> --leader <leader_member> --candidate <member> --scheduled '2026-10-10T02:00:00+03:00' --force
# Cancel a pending scheduled switchover:
patronictl -c /etc/patroni/patroni.yml flush <cluster> switchover概要
正常なリーダーを制御された方法で降格し、選択したレプリカ(--candidate)を昇格する。旧リーダーは新リーダーのレプリカとして自動的に再参加する。--scheduledは操作を指定時刻まで延期する。
使用する場面
メンテナンス(OSパッチ、ハードウェア交換、マイナーバージョンアップグレード)前にプライマリを別ノードへ移す、またはフェイルオーバー後に元のロールに戻すため。
注意
リーダーが変わるとすべての接続が切断されるため、アプリケーションは再接続できる必要がある。候補の遅延がmaximum_lag_on_failoverを超える場合、Patroniはスイッチオーバーを拒否する。synchronous_modeが有効な場合、候補は同期スタンバイである必要がある。