フェールオーバーマネージャークラスターの作成

EDBPostgresFailoverManager(FailoverManager)はEnterpriseDBの高可用性モジュールであり、マスターでソフトウェアまたはハードウェアの障害が発生した場合にPostgresマスターノードがスタンバイノードに自動的にフェイルオーバーできるようにします。

このクイックスタートガイドでは、テスト環境でのフェールオーバーマネージャークラスターの構成について説明します。`EDB Failover Manager User's Guideを読んで理解する必要があります<https://www.enterprisedb.com/edb-docs/p/edb-postgres-failover-manager>`_運用展開用にフェールオーバーマネージャーを構成する前。

このチュートリアルを実行する前に、いくつかの基本的なインストールおよび構成手順を実行する必要があります。

  • 1つのマスターと1つまたは2つのスタンバイノードにデータベースサーバーをインストールして初期化する必要があります。AdvancedServerのインストールについては、次のWebサイトをご覧ください。

  • Postgresストリーミングレプリケーションを設定し、マスターノードとスタンバイノード間で実行する必要があります。ストリーミングレプリケーションの構成の詳細については、次のWebサイトにアクセスしてください。

  • また、各マスターノードとスタンバイノードにフェールオーバーマネージャーをインストールする必要があります。AdvancedServerのインストール中に、各データベースホストにEnterpriseDBリポジトリを設定しました。EnterpriseDBリポジトリと yum install コマンドを使用して、クラスターの各ノードにフェイルオーバーマネージャーをインストールできます:

    yum install edb-efm310
    

During the installation process, the installer will create a user named efm that has sufficient privileges to invoke scripts that control the Failover Manager service for clusters owned by enterprisedb or postgres. The example that follows creates a cluster named efm.

マスターノードまたはスタンバイノードで構成プロセスを開始します。次に、構成ファイルを他のノードにコピーして、時間を節約します。

ステップ1:動作する構成ファイルを作成する

提供されているサンプルファイルをコピーしてEFM構成ファイルを作成し、所有権を修正します。

cd /etc/edb/efm-3.10

cp efm.properties.in efm.properties

cp efm.nodes.in efm.nodes

chown efm:efm efm.properties

chown efm:efm efm.nodes

ステップ2:暗号化されたパスワードを作成する

``暗号化されたパスワードを作成する<https://www.enterprisedb.com/edb-docs/d/edb-postgres-failover-manager/user-guides/user-guide/3.10/encrypting_database_password.html>`_プロパティファイルに必要:

/usr/edb/efm-3.10/bin/efm encrypt efm

画面の指示に従って、データベースパスワードの暗号化されたバージョンを生成します。

ステップ3:efm.propertiesファイルを更新する

<cluster_name>.properties ファイル(この例ではefm.propertiesファイル)には、フェイルオーバーマネージャークラスターの接続プロパティと動作を指定するパラメーターが含まれています。プロパティ設定の変更は、フェイルオーバーマネージャーの起動時に適用されます。

このチュートリアルで説明するプロパティは、フェールオーバーマネージャークラスターを構成するために必要な最小限のプロパティです。運用システムを構成している場合は、*EDBFailoverManagerGuide*でFailoverManagerオプションの詳細を確認してください。

すべてのクラスターノードで次のプロパティの値を指定します。

物件

説明

db.user

データベースユーザーの名前。

db.password.encrypted

データベースユーザーの暗号化されたパスワード。

db.port

データベースによって監視されるポート。

db.database

データベースの名前。

db.service.owner

data ディレクトリの所有者(通常は postgres または enterprisedb )。データベースがサービスとして実行されている場合にのみ必要です。

db.service.name

データベースサーバーの名前(サーバーの再起動に使用)。データベースがサービスとして実行されている場合にのみ必要です。

db.bin

bin ディレクトリへのパス( pg_ctl の呼び出しに使用されます)。

db.recovery.dir

EFMが recovery.conf ファイルまたは standby.signal ファイルを検索または作成する data ディレクトリ。

user.email

電子メール通知を受信する電子メールアドレス(通知テキストもエージェントログファイルにあります)。

bind.address

EFMに使用するノードとポートのローカルアドレス。フォーマットは:bind.address=1.2.3.4:7800

is.witness

ウィットネスノードでは true 、マスターまたはスタンバイの場合は false 。

ping.server.ip

インターネットにアクセスできないネットワークで実行している場合は、ネットワークで使用可能なアドレスに ping.server.ip を設定します。

auto.allow.hosts

テストクラスターでは、起動を簡略化するために true に設定します。本番環境での使用については、ユーザーガイドを参照してください。

stable.nodes.file

テストクラスターでは、起動を簡略化するために true に設定します。本番環境での使用については、ユーザーガイドを参照してください。

ステップ4:efm.nodesファイルを更新する

<cluster_name>.nodes ファイル(この例ではefm.nodesファイル)は起動時に読み取られ、エージェントにクラスターの残りの場所を見つける方法を通知します。または、最初のノードが起動されている場合は、後続ノード。クラスター内の各ノードのアドレスとポートをこのファイルに追加します。1つのノードがメンバーシップコーディネーターとして機能します。リストには、少なくともメンバーシップコーディネーターのアドレスを含める必要があります。例えば:

1.2.3.4:7800

1.2.3.5:7800

1.2.3.6:7800

FailoverManagerエージェントは efm.nodes ファイルの内容を検証しないことに注意してください。エージェントは、ファイル内の一部のアドレスに到達できないことを期待しています(たとえば、別のエージェントがまだ開始されていない)。

ステップ5:他のノードを構成する

Copy the efm.properties and efm.nodes files to the /etc/edb/efm-3.10 directory on the other nodes in your sample cluster. After copying the files, change the file ownership so the files are owned by efm:efm. The efm.properties file can be the same on every node, except for the following properties:

  • ノードのローカルアドレスを使用するように bind.address プロパティを変更します。

  • ノードが監視ノードの場合、 is.witness を true に設定します。ノードが監視ノードの場合、ローカルデータベースのインストールに関連するプロパティは無視されます。

ステップ6:EFMクラスターを開始する

任意のノードで、フェイルオーバーマネージャーエージェントを起動します。エージェントの名前は edb-efm-3.10 です。プラットフォーム固有のserviceコマンドを使用して、サービスを制御できます。たとえば、CentOS/RHEL7.xまたはCentOS/RHEL8.xホストでは、次のコマンドを使用します。

systemctl start edb-efm-3.10

CentOSまたはRHEL6.xホストでは、次のコマンドを使用します。

service edb-efm-3.10 start

エージェントが起動したら、次のコマンドを実行して、単一ノードクラスターのステータスを確認します。他のノードのアドレスが Allowed node host リストに表示されます。

/usr/edb/efm-3.10/bin/efm cluster-status efm

他のノードでエージェントを起動します。任意のノードで efm cluster-status efm コマンドを実行して、クラスターのステータスを確認します。

起動に失敗したエージェントがある場合は、起動ログで問題の原因を確認してください。

cat /var/log/efm-3.10/startup-efm.log

スイッチオーバーの実行

クラスタステータス出力にマスターとスタンバイが同期していることが示されている場合は、次のコマンドでスイッチオーバーを実行できます。

/usr/edb/efm-3.10/bin/efm promote efm -switchover

このコマンドはスタンバイを昇格させ、マスターデータベースをクラスター内の新しいスタンバイとして再構成します。元に戻すには、コマンドを再度実行します。

オンラインヘルプにすばやくアクセスするには、次のコマンドを呼び出します。

/usr/edb/efm-3.10/bin/efm --help