フェールオーバーマネージャークラスターの作成¶
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-efm40
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-4.0
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/4.0/encrypting_database_password.html>`_を作成しますファイル:
/usr/edb/efm-4.0/bin/efm encrypt efm
画面の指示に従って、データベースパスワードの暗号化バージョンを作成します。
ステップ3:efm.propertiesファイルを更新する
<cluster_name>.properties ファイル(この例ではefm.propertiesファイル)には、FailoverManagerクラスターの接続プロパティと動作を指定するパラメーターが含まれています。プロパティ設定の変更は、フェールオーバーマネージャーの起動時に適用されます。
このチュートリアルで言及されているプロパティは、FailoverManagerクラスタの構成に必要な最小限のプロパティです。実動システムを構成する場合は、*EDBFailoverManagerGuide*を参照して、FailoverManagerオプションの詳細を確認してください。
すべてのクラスターノードで次のプロパティの値を指定します。
物件 |
説明 |
|---|---|
|
データベースユーザーの名前。 |
|
データベースユーザーの暗号化されたパスワード。 |
|
データベースによって監視されるポート。 |
|
データベースの名前。 |
|
|
|
データベースサービスの名前(サーバーの再起動に使用)。データベースがサービスとして実行されている場合にのみ必要です。 |
|
|
|
EFMが |
|
電子メール通知を受信する電子メールアドレス(通知テキストはエージェントログファイルにもあります)。 |
|
EFMに使用するノードとポートのローカルアドレス。形式は次のとおりです: |
|
監視ノードでは |
|
インターネットにアクセスできないネットワークで実行している場合、ネットワークで利用可能なアドレスに |
|
テストクラスターでは、起動を簡素化するために |
|
テストクラスターでは、起動を簡素化するために |
ステップ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-4.0 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クラスターを開始します
任意のノードで、FailoverManagerエージェントを起動します。エージェントの名前は edb-efm-4.0 です。プラットフォーム固有のサービスコマンドを使用して、サービスを制御できます。たとえば、CentOS/RHEL7.xまたはCentOS/RHEL8.xホストでは、次のコマンドを使用します。
systemctl start edb-efm-4.0
CentOSまたはRHEL6.xホストでは、次のコマンドを使用します。
service edb-efm-4.0 start
エージェントの起動後、次のコマンドを実行して、シングルノードクラスターのステータスを確認します。 Allowed node host リストに他のノードのアドレスが表示されるはずです。
/usr/edb/efm-4.0/bin/efm cluster-status efm
他のノードでエージェントを起動します。任意のノードで efm cluster-status efm コマンドを実行して、クラスターの状態を確認します。
エージェントの起動に失敗した場合は、起動ログで問題の詳細を確認してください。
cat /var/log/efm-4.0/startup-efm.log
スイッチオーバーの実行
クラスターステータスの出力に、プライマリとスタンバイが同期していることが示されている場合、次のコマンドでスイッチオーバーを実行できます。
/usr/edb/efm-4.0/bin/efm promote efm -switchover
このコマンドは、スタンバイを昇格させ、プライマリデータベースをクラスター内の新しいスタンバイとして再構成します。元に戻すには、コマンドを再度実行します。
オンラインヘルプにすばやくアクセスするには、次のコマンドを呼び出すことができます。
/usr/edb/efm-4.0/bin/efm --help