Configuring EFM#
failover_manager がefm
に設定されている場合、TPAはEFMをインストールおよび構成します。
efm_version
を変更することにより、使用するEFMのバージョンを構成できます。
cluster_vars:
…
failover_manager: efm
efm_version: 5.2
…
tpaexec configure の実行時に定義することもできます。
tpaexec configure my-cluster-dir -a M1 --failover_manager efm --efm-version 5.2
EFMはEDBのパッケージリポジトリを介してのみ利用でき、有効なサブスクリプションが必要であることに注意してください。
EFM構成#
TPAは、適切なインスタンス固有の設定でefm.nodes
およびefm.properties
を生成し、残りの設定はそれぞれのデフォルト値に設定されます。 TPAはまた、
efm.notification.sh
スクリプトも配置します。これは、基本的にデフォルトでは何も含まず、ユーザーが必要に応じて入力するかに任されています。
TPAは、 auto.allow.hosts およびstable.nodes.file
のデフォルト設定をオーバーライドして、クラスターへのエージェントの追加を簡素化します。
EFM documentation を参照してください
EFM構成の詳細については、こちらをご覧ください。
efm_user_password_encryption#
scram-sha-256 またはmd5 のいずれかである必要があります
efm_user_password_encryption を設定して、pg_hba.conf
のefm Postgresユーザーのauth-method のauth-method
と、暗号化されたパスワードを生成するときに使用されるアルゴリズムを制御します。
注釈
新しいクラスターの`efm_user_password_encryption` のデフォルト値は`scram-sha-256` です。
efm_user_password_encryption: scram-sha-256 # or can be set to `md5`
efm_conf_settings#
efm_conf_settings
を使用して、特定のパラメーターを設定できます。これらは、Ansible辞書のエントリとしてkey: value
フォームで書き込む必要があります
documentation on the `efm.properties file <https://www.enterprisedb.com/docs/efm/latest/04_configuring_efm/01_cluster_properties/>`_ を参照してください
構成できる設定の詳細については、 を参照してください。
cluster_vars:
efm_conf_settings:
notification.level: WARNING
ping.server.ip: <well known address in network>
efm_conf_settings
の下の値を変更すると、TPAは常にEFMを再起動して変更をアクティブにします。
EFM証人#
TPAは、 role にefm-witness
が含まれるインスタンスに監視としてEFMをインストールおよび構成します。EFMを使用する場合、暗黙的にefm-witness
に変換されるため、ロールwitness を使用することもできます。
このようなインスタンスの場合、 upstream
プロパティを指定して、指定されたプライマリデータベースインスタンスをポイントする必要があります。
Repmgr#
EFMはフェールオーバーマネージャーとして機能するため、TPAは引き続きrepmgrをインストールして、postgresバージョン11以下でpostgresqlレプリカをセットアップします。
repmgrd
つまり、この場合、repmgrのデーモンは無効なままで、repmgrの唯一のジョブは、レプリケーションセットアップ機能を提供することです。
postgresバージョン12以降の場合、EFMを使用するクラスターは、pg_basebackup
を使用してスタンバイノードを作成し、どの形式でもrepmgrを使用しません。
ノードのプロモーション#
TPAは、ノードのロールとレプリケーショントポロジに基づいて、フェールオーバー中にノードがEFMによるプロモーションの対象かどうかを判断します。 EFM構成を生成するときに次のルールが適用されます。
Witnessノード
efm-witnessロールはプロモーションできません。``efm-not-promotable`` ロール を持つノードは昇格の資格がありません。これは、DRまたは報告ノードなどの特定のスタンバイがプライマリに昇格しないようにするために使用できます。
カスケードスタンバイ プライマリから直接複製していないノードもプロモーション可能ではありません。
他のすべてのノードは、デフォルトでプロモーション可能であると考えられます。
スタンバイが昇格することを明示的に防ぐには、クラスター構成のノードのroles
リストにefm-not-promotable
を追加します。これにより、EFMは、フェールオーバーイベント中にこのノードを昇格させようとしないことが保証されます。
tpaexec upgrade を使用したEFMのマイナー更新#
TPAは、新しいバージョンのパッケージをインストールし、構成ファイルを既存のEFMバージョンの構成ディレクトリから新しいEFMバージョンの構成ディレクトリにコピーし、クリーンアップのために既存のEFMバージョンのパッケージ、サービスファイル、およびバイナリディレクトリを削除します。
EFMアップグレードは、インストールおよび構成されている以前のバージョンソースに依存しているため、TPAは最初にこれがtrueを確認します。ソースEFMバージョンがインストールされていない場合、バイナリディレクトリが存在しない、または構成されていないイベント、構成ディレクトリが存在しない場合、アップグレードはエラーで終了します。アップグレードを実行するときに、ターゲットEFMバージョン
config.yml のefm_version
で指定に既にバイナリディレクトリと構成ディレクトリがある場合、EFMは既にインストールされ、目的のバージョンに構成されているため、アップグレードはEFMをスキップします。
注釈
EFMアップグレードは、つまりマイナーアップグレードでなくても、EFM 4.9から5.0からサポートされています。このアップグレードを発生させるために追加の手順は必要ありません。
component selection for upgrade のセクションを参照してください
詳細については、
注釈
EFMは、混合バージョン環境では動作できません。この制限のため、EFMコンポーネントの部分的なアップグレードをサポートする十分な理由はありません。 efm がアップグレードするコンポーネントのリストの一部である場合、TPAは**常に**、EFMノードの完全なセットでEFMソフトウェアをアップグレードします。 TPAは、どのノードをEFMをアップグレードする必要があるかを決定するときに`update_hosts` を無視します。 !!!