Administering PGD Proxy
=======================

書き込みリーダーの切り替え
--------------------------

書き込みリーダーの切り替えは、書き込みリーダーであるノードを変更するために実行できる手動操作です。
現在の書き込みリーダーノードでメンテナンスを実行する場合、または他の理由で書き込みリーダーを変更する場合に役立ちます。書き込みリーダーを変更する場合、\ ``strict``
と\ ``fast`` の2つのモードがあります。 ``strict``
モードでは、書き込みリーダーを切り替える前に遅延がチェックされます。スイッチオーバーを開始する前に、遅延が\ ``route_writer_max_lag``
未満になるまで待機します。これがデフォルトです。 ``fast``
モードでは、書き込みリーダーはすぐに切り替わります。タイムアウトパラメーターを設定して、メソッドが厳密な場合の時間を指定することもできます。
(デフォルト30秒)

!!!注
セットリーダー動作は、保証された動作ではありません。タイムアウトまたはその他の理由で、特定のターゲットノードへのスイッチが失敗した場合、PGDは別のノードを代わりに書き込みリーダーとして選択する場合があります。この他のノードには、現在の書き込みリーダーノードを含めることができます。
PGDは、セットリーダー操作が失敗した場合、常に新しい書き込みリーダーを選択しようとします。

SQLを使用する
^^^^^^^^^^^^^

書き込みリーダーであるノードを別のノードに明示的に変更するスイッチオーバー操作を実行できます。

:ref:`bdr.routing_leadership_transfer() <Routing functions>` ファンクションを使用します。

たとえば、書き込みリーダーをグループ\ ``group1`` のノード\ ``node1``
に切り替えるには、次のSQLコマンドを使用します。

.. code:: sql

   SELECT bdr.routing_leadership_transfer(group1, node1,strict,10s);

このコマンドは、\ ``strict``
モードを使用して書き込みリーダーを切り替え、スイッチオーバーが完了するまで最大10秒待機します。これらはデフォルト設定であるため、次のように省略できます。

.. code:: sql

   SELECT bdr.routing_leadership_transfer(group1, node1);

PGD CLIを使用する
^^^^^^^^^^^^^^^^^

`group set-leader <https://www.enterprisedb.com/docs/pgd/latest/cli/command_ref/group/set-leader/>`_ コマンドを使用して、スイッチオーバー操作を実行できます。

たとえば、書き込みリーダーをノード\ ``node1`` からグループ\ ``group1``
のノード\ ``node2`` に切り替えるには、次のコマンドを使用します。

.. code:: sh

   pgd group group1 set-leader node1 --strict --timeout 10s

このコマンドは、 ``strict``
モードを使用して書き込みリーダーを切り替え、strictモードでスイッチオーバーが完了するまで最大10秒待機します。これらはデフォルト設定であるため、次のように省略できます。

.. code:: sh

   pgd group group1 set-leader node1
