Creating a Failover Manager cluster¶
Failover ManagerはEnterpriseDBの高可用性モジュールであり、プライマリでソフトウェアまたはハードウェアに障害が発生したイベント、 Postgresプライマリノードがスタンバイノードに自動的にフェイルオーバーできるようにします。
このクイックスタートガイドでは、テスト環境でのフェールオーバーマネージャークラスターの構成について説明します。稼動展開用にフェールオーバーマネージャーを構成する前に、Failover Manager User Guideを読んで理解してください。
チュートリアルを開始する前に、これらの基本的なインストールおよび構成手順を実行します。
1つのプライマリノードと1つまたは2つのスタンバイノードにデータベースサーバをインストールして初期化します。 Advanced Serverのインストールについては、EDB Postgres Advanced Serverの文書を参照してください。
Postgresストリーミングレプリケーションを構成し、プライマリノードとスタンバイノード間で実行する必要があります。ストリーミングレプリケーションの構成の詳細については、PostgreSQL Streaming Replication documentationを参照してください。
フェールオーバーマネージャーを各プライマリノードとスタンバイノードにインストールします。 Advanced Serverのインストール中に、各データベースホストでEnterpriseDBリポジトリを構成しました。 EnterpriseDBリポジトリと
yum installコマンドを使用して、クラスターの各ノードにフェールオーバーマネージャーをインストールできます。
* yum install edb-efm43
インストールプロセス中に、インストーラは、enterprisedbまたはpostgresが所有するクラスターのFailover
Managerサービスを制御するスクリプトを呼び出す特権を持つefmという名前付けのユーザを作成します。次の例では、efm名前付けのクラスターを作成します。
プライマリノードまたはスタンバイノードで構成プロセスを開始します。次に、構成ファイルを他のノードにコピーして、時間を節約します。
1.作業用構成ファイルを作成します。提供されたサンプルファイルをコピーしてFailover Manager構成ファイルを作成し、所有権を修正します。
* cd /etc/edb/efm-4.4
* cp efm.properties.in efm.properties
* cp efm.nodes.in efm.nodes
* chown efm:efm efm.properties
* chown efm:efm efm.nodes
1.プロパティファイルに必要なencrypted passwordを作成します。
* /usr/edb/efm-4.4/bin/efm encrypt efm
画面の指示に従って、データベースパスワードの暗号化バージョンを作成します。
efm.propertiesを更新します。<cluster_name>.propertiesファイル(この例ではefm.properties)には、Failover Managerクラスターの接続プロパティと動作を指定するパラメーターが含まれています。プロパティ設定の変更は、フェールオーバーマネージャーの起動時に適用されます。このチュートリアルで言及されているプロパティは、Failover Managerクラスタの構成に必要な最小限のプロパティです。稼動システムを構成している場合は、Failover Manager User Guideでフェイルオーバーマネージャーオプションの詳細を確認してください。
すべてのクラスターノードで次のプロパティの値を指定します。
|プロパティ|説明| | ———————– | ————————————————– ————————————————– —————————- | |
db.user|データベースユーザの名前。 | |db.password.encrypted|データベースユーザの暗号化されたパスワード。 | |db.port|データベースによって監視されるポート。 | |db.database|データベースの名前。 | |db.service.owner|dataディレクトリの所有者(通常はpostgresまたはenterprisedb)。データベースがサービスとして実行されている場合にのみ必要です。 | |db.service.name|データベースサービスの名前(サーバーのリスタートに使用)。データベースがサービスとして実行されている場合にのみ必要です。 | |db.bin|binディレクトリへのパス(pg_ctlの呼び出しに使用)。 | |db.data.dir| EFMがrecovery.confファイルまたはstandby.signalファイルを検索または作成するdataディレクトリ。 | |user.email|メール通知を受信するメールアドレス(通知テキストはエージェントログファイルにもあります)。 | |bind.address|フェールオーバーマネージャーに使用するノードとポートのローカルアドレス。フォーマットは次のとおりです。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に設定してスタートアップを簡素化します。稼動環境での使用については、ガイドを参照してください。 |
efm.nodesを更新します。<cluster_name>.nodesファイル(この例ではノード )は、スタートアップにエージェントに読み込まれ、クラスターの残りの部分を見つける方法を指示します。クラスタ内の各ノードのアドレスとポートをこのファイルに追加します。 1つのノードがメンバーシップコーディネーターとして機能します。少なくともメンバーシップコーディネーターの住所をリストに含めてください。例:
1.2.3.4:7800
1.2.3.5:7800
1.2.3.6:7800
Failover Managerエージェントは、
efm.nodesファイルのアドレスを検証しません。エージェントは、ファイル内のアドレスの一部に到達できないことを予期しています(例、別のエージェントがまだ開始されていないなど)。
1.他のノードを構成します。サンプルクラスタの他のノードのefm.propertiesおよびefm.nodesファイルを/etc/edb/efm-4.4にコピーします。ファイルをコピーした後、ファイルの所有権を変更して、ファイルがefm:efmによって所有されるようにします。
efm.propertiesファイルは、次のプロパティを除き、すべてのノードで同じにすることができます。
-
bind.addressプロパティを変更して、ノードのローカルアドレスを使用します。 -ノードが監視ノードの場合、is.witnessをtrueに設定します。ノードが監視ノードである場合、ローカルデータベースのインストールに関連するプロパティは無視されます。
1.フェールオーバーマネージャークラスターを起動します。任意のノードで、Failover
Managerエージェントをスタートします。エージェントの名前付けはedb-efm-4.4です。プラットフォーム固有のサービスコマンドを使用して、サービスを制御できます。例、CentOS
/ RHEL 7.xまたはCentOS / RHEL 8.xホストでは、次のコマンドを使用します。
* systemctl start edb-efm-4.4
CentOSまたはRHEL 6.xホストでは、次のコマンドを使用します。
* service edb-efm-4.4 start
1.エージェントの起動後、次のコマンドを実行して、シングルノードクラスターのステータスを確認します。他のノードのアドレスは、Allowed node hostリストに表示されます。
* /usr/edb/efm-4.4/bin/efm cluster-status efm
1.他のノードでエージェントを起動します。任意のノードでefm cluster-status efmコマンドを実行して、クラスターの状態を確認します。
いずれかのエージェントがスタートに失敗した場合は、スタートアップログを参照して、問題の詳細を確認してください。
* cat /var/log/efm-4.4/startup-efm.log
スイッチオーバーを実行する¶
クラスタステータスの出力に、プライマリノードとスタンバイノードが同期していることが示されている場合、スイッチオーバーを実行できます。
* /usr/edb/efm-4.4/bin/efm promote efm -switchover
このコマンドは、スタンバイをプロモートし、プライマリデータベースをクラスター内の新しいスタンバイとして再構成します。元に戻すには、コマンドを再度実行しスイッチ。
オンラインヘルプにアクセスする¶
オンラインヘルプにすばやくアクセスするには、次を使用します。
* /usr/edb/efm-4.4/bin/efm --help