# クラスターの一時停止/再開モード

> Patroni クラスター管理における一時停止および再開モードの動作。

---

LLMSインデックス: [llms.txt](/ja/llms.txt)

---

<a id="pause"></a>

--------

## 目的 {#the-goal}

ある条件下では、Patroni はクラスターの管理を一時的に停止する必要があり、DCS にクラスター状態を保持したままにする必要があります。このような状況の例として、メジャーバージョンのアップグレードや破損からの復旧など、稀なクラスター操作が挙げられます。これらの操作中は、Patroni が認識しない理由でノードの起動・停止が頻発し、一部のノードが一時的にプライマリーに昇格する場合もあり、その結果、同時に1つのプライマリーしか実行されていないという前提が破られることがあります。したがって、Patroni は「クラスターから分離」する機能を備えており、Pacemaker のメンテナンスモードに相当する動作を実現できる必要があります。

--------

## 実装 {#the-implementation}

Patroni が一時停止モードで実行されている場合、PostgreSQL の状態を変更しません。ただし、以下のケースを除きます。

- 各ノードについて、DCS のメンバーキーはクラスターに関する現在の情報をもとに更新されます。これにより、メンバーノードが実行中である場合、Patroni はそのノードで読み取り専用のクエリーを実行します。
- リーダーロックを持つPostgresのプライマリーでは、Patroniがロックを更新します。リーダーロックを持つノードがプライマリーでなくなる（つまり手動で降格された）場合、Patroniはそのノードを再び昇格するのではなく、ロックを解放します。
- 手動での再起動、手動での予期しないフェイルオーバー／スイッチオーバーおよび再初期化は許可されています。スケジュールされた操作は許可されません。スイッチオーバーは、切り替えるノードを明示した場合にのみ許可されます。
- Patroni が「並列」なプライマリーを検出すると警告を発しますが、リーダー・ロックがなければプライマリーを降格しません。
- クラスターにリーダー・ロックが存在しない場合、実行中のプライマリーがロックを取得します。プライマリー・ノードが複数存在する場合、ロックを最初に取得したプライマリーが勝者となります。プライマリーがまったく存在しない場合、Patroni はレプリカの昇格を試みません。このルールには例外があります。以前のプライマリーが手動での昇格により自己降格したためにリーダー・ロックが存在しない場合、昇格リクエストで指定された候補ノードのみがリーダー・ロックを取得できます。新しいリーダー・ロックが付与された場合（すなわち手動でレプリカを昇格した後）、Patroni は以前のリーダーからストリーミングしていたレプリカが新しいリーダーに切り替えることを確認します。
- Postgres を停止した場合、Patroni は再起動を試みません。Patroni を停止した場合、管理している Postgres インスタンスの停止を試みません。
- Patroni は、他のクラスター メンバーを表さない、または永続スロットの構成にリストされていないレプリケーション スロットを削除しようとはしません。

--------

## ユーザーガイド {#user-guide}

[patronictl](/ja/docs/patroni/patronictl#patronictl) は [pause](/ja/docs/patroni/patronictl#patronictl_pause) および [resume](/ja/docs/patroni/patronictl#patronictl_resume) コマンドをサポートしています。

また、`PATCH` リクエストを `{namespace}/{cluster}/config` キーに対して `{"pause": true/false/null}` で発行することもできます。

---

逆リンク:

- [Citusサポート](/ja/docs/patroni/citus/)
- [FAQ](/ja/docs/patroni/faq/)
- [リリースノート](/ja/docs/patroni/releases/)
- [Patroni REST API](/ja/docs/patroni/rest_api/)
