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

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

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

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

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

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

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

    yum install edb-efm41
    

インストールプロセス中に、インストーラーは、 enterprisedb または postgres が所有するクラスターのFailoverManagerサービスを制御するスクリプトを呼び出すのに十分な特権を持つ efm という名前のユーザーを作成します。次の例では、 efm という名前のクラスターを作成します。

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

Step 1:Create Working Configuration Files

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

cd /etc/edb/efm-4.1

cp efm.properties.in efm.properties

cp efm.nodes.in efm.nodes

chown efm:efm efm.properties

chown efm:efm efm.nodes

Step 2:Create an Encrypted Password

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

/usr/edb/efm-4.1/bin/efm encrypt efm

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

Step 3:Update the efm.properties File

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

このチュートリアルで言及されているプロパティは、FailoverManagerクラスタの構成に必要な最小限のプロパティです。実動システムを構成する場合は、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 に設定すると、起動が簡単になります。本番環境での使用については、ユーザーズガイドを参照してください。

Step 4:Update the efm.nodes File

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

1.2.3.4:7800

1.2.3.5:7800

1.2.3.6:7800

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

Step 5:Configure the Other Nodes

efm.properties および efm.nodes ファイルをサンプルクラスター内の他のノードの /etc/edb/efm-4.1 ディレクトリにコピーします。ファイルをコピーした後、ファイルの所有権を変更して、ファイルが efm:efm によって所有されるようにします。 efm.properties ファイルは、次のプロパティを除き、すべてのノードで同じにすることができます。

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

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

Step 6:Start the EFM Cluster

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

systemctl start edb-efm-4.1

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

service edb-efm-4.1 start

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

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

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

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

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

Performing a Switchover

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

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

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

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

/usr/edb/efm-4.1/bin/efm --help