Upgrading Failover Manager
==========================

.. container:: registered_link
   :name: upgrading_existing_cluster

Failover Managerは、Failover
Managerによって管理されるクラスターをアップグレードする際に役立つユーティリティを提供します。既存のクラスターをアップグレードするには、次のことを行う必要があります。

1. クラスターの各ノードにFailover Manager 4.10をインストールします。
   Failover Managerのインストールの詳細については、
   :ref:`Installing Failover Manager on Linux <Installing Failover Manager on Linux>` を参照してください。

2. Failover Managerをインストールした後、 efm
   upgrade-confユーティリティを呼び出して、Failover Manager
   4.10の\ ``.properties`` および\ ``.nodes`` ファイルを作成します。
   Failover Managerインストーラーは、アップグレードユーティリティ
   :ref:`efm upgrade-conf <efm upgrade-conf>`  を\ ``/usr/edb/efm-4.10/bin``
   ディレクトリにインストールします。ユーティリティを起動するには、root権限を引き受けて、コマンドを呼び出します。

.. code:: shell

      efm upgrade-conf <cluster_name>

``efm upgrade-conf``
ユーティリティは、既存のクラスターの\ ``.properties`` および\ ``.nodes``
ファイルを見つけ、フェールオーバーマネージャーが使用する新しい構成ファイルにパラメーター値をコピーします。ユーティリティーは、構成ファイルの更新されたコピーを\ ``/etc/edb/efm-4.10``
ディレクトリーに保存します。

3. Failover Manager 4.10の\ ``.properties`` および\ ``.nodes``
   ファイルを変更し、新しい設定を指定します。そのノードのサービスを開始する前に、自分の使いやすいエディターを使って、プロパティファイル\ ``/etc/edb/efm-4.10``
   ディレクトリにある追加プロパティを変更します。プロパティ設定の詳細については、
   :ref:`The cluster properties file <The cluster properties file>`  を参照してください。

4. イーガーフェールオーバーを使用している場合、フェールオーバーマネージャークラスターを停止する前にそれを無効にする必要があります。詳細については、
   :ref:`Eagerフェイルオーバーの無効化 <Eagerフェイルオーバーの無効化>` を参照してください。

5. バージョン固有のコマンドを使用して、古いフェールオーバーマネージャークラスターを停止します。たとえば、次のコマンドを使用してバージョン4.8クラスターを停止できます。

.. code:: shell

      /usr/efm-4.8/bin/efm stop-cluster efm

..  Note::
   プライマリエージェントは、停止時に仮想IPアドレスを使用している場合をドロップしません。 EFMのアップグレード中に、VIPでデータベースは稼働したままでアクセスできます。 :ref:`Using Failover Manager with virtual IP addresses <Using Failover Manager with virtual IP addresses>`  も参照してください。

6. クラスターの各ノードで新しい :ref:`Controlling the Failover Manager service <Controlling the Failover Manager service>`  ``edb-efm-4.10``
   を起動します。

次の例は、アップグレードユーティリティを呼び出して、Failover
Managerインストールの\ ``.properties`` および\ ``.nodes``
ファイルを作成する方法を示しています。

.. code:: text

   [root@hostname ~]# /usr/edb/efm-4.10/bin/efm upgrade-conf efm
   Checking directory /etc/edb/efm-4.9
   Processing efm.properties file
   Checking directory /etc/edb/efm-4.9
   Processing efm.nodes file

   Upgrade of files is finished. The owner and group for properties and nodes files have been set as efm.
   [root@hostname ~]#

オプションの\ ``-source`` フラグ
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``-source``
フラグを使用して、処理するファイルを含むディレクトリを明示的に指定できます。ディレクトリがフェールオーバーマネージャーの構成の場所つまり\ ``/etc/edb/efm-<earlier_version>``
の場合、ユーティリティはデフォルトの構成ディレクトリに新しいファイルを書き込みます。この動作により、必要に応じて特定の以前のバージョンからアップグレードできます。

ソースディレクトリが他のディレクトリの場合、ユーティリティはコマンドが呼び出されたディレクトリに新しいファイルを作成します。ファイルの所有者は、コマンドを実行したユーザーです。このアプローチは、通常、
:ref:`using a Failover Manager configuration without sudo <Extending Failover Manager permissions>` の場合に使用され、 root権限は必要ありません。

概要

-  **``-source`` フラグは使用されません。**
   ユーティリティーは、以前のインストールディレクトリで構成ファイルを検索します。新しいファイルは、現在のデフォルト構成ディレクトリに生成され、efmユーザーが所有します。
   root権限が必要です。

-  **``-source``
   フラグは、以前のインストールの構成ディレクトリに設定されています。**
   ユーティリティは、指定されたディレクトリでのみ構成ファイルを検索します。新しいファイルは、現在のデフォルト構成ディレクトリに生成され、efmユーザーが所有します。
   root権限が必要です。

-  **``-source`` フラグは他のディレクトリに設定されています。**
   ユーティリティは、指定されたディレクトリでのみ構成ファイルを検索します。新しいファイルは、コマンドが呼び出されたディレクトリに生成され、コマンドを呼び出したユーザーが所有します。
   root権限は必要ありません。

..  Note::
   すべての場合、 `<cluster_name>.properties` または`<cluster_name>.nodes` ファイルがターゲットディレクトリに既に存在する場合、新しいファイルが保存される前にタイムスタンプで名前が変更されます。

フェールオーバーマネージャーのアンインストール
----------------------------------------------

..  Note::
   カスタムスクリプトを使用している場合、Failover Managerスクリプトを呼び出しているかどうかを確認します。たとえば、昇格後に実行してさまざまなタスクを実行し、フェールオーバーマネージャーの`efm_address` スクリプトを呼び出して仮想IPアドレスを取得するスクリプト。フェールオーバーマネージャースクリプトを呼び出すカスタムスクリプトがある場合は、古いバージョンのフェールオーバーマネージャースクリプトをアンインストールする前に、新しくインストールされたバージョンのフェールオーバーマネージャースクリプトを使用するようにカスタムスクリプトを更新します。

Failover Manager
4.10にアップグレードした後、ネイティブパッケージマネージャーを使用して、以前にインストールしたFailover
Managerを削除できます。たとえば、次のコマンドを使用して、フェールオーバーマネージャー4.9および不要な依存関係を削除します。

-  RHEL/Rocky Linux/AlmaLinux 8.x以降

.. code:: shell

   dnf remove edb-efm49

-  DebianまたはUbuntuの場合

.. code:: shell

   apt-get remove edb-efm49

-  SLESの場合

.. code:: shell

   zypper remove edb-efm49

メンテナンスタスクの実行
------------------------

OSパッチやマイナーデータベースバージョンのアップグレードなどのメンテナンスアクティビティを実行できます。マイナーバージョンから別のマイナーバージョン15.5.0からバージョン15.6.0などにアップグレードしたり、バージョンにパッチリリースを適用したりできます。

最初に、フェールオーバーマネージャークラスターの各スタンバイノードでデータベースサーバーを更新します。次に、スイッチオーバーを実行し、スタンバイノードをフェールオーバーマネージャークラスター内のプライマリの役割に昇格させます。次に、古いプライマリノードでデータベースの更新を実行します。

クラスターの各ノードで、次の手順を実行してデータベースサーバーを更新します。

1. Failover Managerエージェントを停止します。

2. データベースサーバーを停止します。

3. データベースサーバーを更新します。

4. データベースサービスを開始します。

5. Failover Managerエージェントを起動します。

EDB Postgres Advanced Serverサービスの制御、またはEDB Postres Advanced
Serverのバージョンのアップグレードの詳細については、

更新が完了したら、
:ref:`efm set-priority <efm set-priority>` コマンドを使用して古いプライマリをスタンバイリストの先頭に追加し、スイッチオーバーしてクラスターを元の状態に戻すことができます。
