Configuring EFM
===============

``failover_manager`` が\ ``efm``
に設定されている場合、TPAはEFMをインストールおよび構成します。

EFMパッケージを取得するには、EDBのパッケージリポジトリへの有効なサブスクリプションが必要です。

EFM構成
-------

TPAは、適切なインスタンス固有の設定またはデフォルト値を使用して\ ``efm.nodes``
および\ ``efm.properties`` を生成します。 TPAは、
``efm.notification.sh``
スクリプトもインストールします。これは、デフォルトでは何も行いません。好きなように入力できます。

:ref:`EFM documentation <Configuring EFM>` を参照してください

EFMの構成の詳細については、

efm_conf_settings
-----------------

TPAが認識するかどうかに関係なく、 ``efm_conf_settings``
を使用してパラメーターを設定できます。必要に応じて、\ ``efm.properties``
を手動で編集する場合と同じように値を正確に引用する必要があります。

.. code:: yaml

   cluster_vars:
     efm_conf_settings:
        standby.restart.delay: 1
        application.name: quarry
        reconfigure.num.sync: true
        reconfigure.num.sync.max: 1
        reconfigure.sync.primary: true

``efm_conf_settings``
を変更すると、TPAは常にEFMを再起動して変更をアクティブにします。

EFM証人
^^^^^^^

TPAは、 ``role`` に\ ``efm-witness``
が含まれるインスタンスにWitnessとしてEFMをインストールおよび構成します。

Repmgr
^^^^^^

EFMは、新しいレプリカを作成する方法を提供しません。
TPAはrepmgrを使用して、Postgresバージョン11以前のレプリカを作成します。この場合、repmgrパッケージはインストールされますが、EFMの使用中、repmgrdデーモンは無効のままです。

Postgresバージョン12以降の場合、EFMを使用するクラスターは、\ ``pg_basebackup``
を使用してスタンバイノードを作成し、どの形式でもrepmgrは使用しません。
