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

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

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

!!!注

スイッチオーバーの動作は動作を保証するものではありません。タイムアウトまたはその他の理由で、特定のターゲットノードへのスイッチオーバーが失敗した場合、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を使用する
^^^^^^^^^^^^^^^^^

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

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

.. code:: sh

   pgd switchover --node-group group1 --node-name node1 --method strict --timeout 10s

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

.. code:: sh

   pgd switchover --node-group group1 --node-name node1
