Creating a Failover Manager Cluster 4.2

EnterpriseDB

Creating a Failover Manager Cluster

EDB Postgresのフェイルオーバーマネージャー(フェイルオーバーマネージャーは)一次上のソフトウェアまたはハードウェア障害が発生しイベントにスタンバイ・ノードに自動的にフェイルオーバーにPostgresのプライマリノードを可能EnterpriseDBのより高可用性モジュールです。

このクイックスタートガイドでは、テスト環境でのフェールオーバーマネージャークラスターの構成について説明します。あなたは、稼動の展開のためのフェイルオーバーマネージャーを設定する前にEDB Failover Manager User’s Guideを読んで理解する必要があります。

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

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

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

  • https://www.postgresql.org/docs/current/warm-standby.html#STREAMING-REPLICATION。

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

yum install edb-efm42

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

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

ステップ1:作業用構成ファイルの作成

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

cd /etc/edb/efm-4.2

cp efm.properties.in efm.properties

cp efm.nodes.in efm.nodes

chown efm:efm efm.properties

chown efm:efm efm.nodes

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

プロパティファイルに必要なencrypted passwordを作成します。

/usr/edb/efm-4.2/bin/efm encrypt efm

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

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

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

このチュートリアルで言及されているプロパティは、Failover Managerクラスタの構成に必要な最小限のプロパティです。稼動システムを構成する場合は、* EDB Failover Manager User Guide *を参照して、Failover Managerオプションの詳細を確認してください。

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

Property Description
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 dataディレクトリとは、EFMを見つけるか、recovery.confファイルまたはstandby.signalファイルを作成します。
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

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

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

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

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

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

任意のノードで、Failover Managerエージェントをスタートします。エージェントの名前付けはedb-efm-4.2です。プラットフォーム固有のサービスコマンドを使用して、サービスを制御できます。例、CentOSの/ RHEL 7.xまたはCentOSの/ RHEL 8.xのホストの使用コマンドで:

systemctl start edb-efm-4.2

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

service edb-efm-4.2 start

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

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

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

いずれかのエージェントがスタートに失敗した場合は、スタートアップログを参照して、問題の詳細を確認してください。

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

スイッチオーバーの実行

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

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

このコマンドは、スタンバイをプロモートさせ、プライマリデータベースをクラスター内の新しいスタンバイとして再構成します。スイッチバックするには、再度コマンドを実行します。

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

/usr/edb/efm-4.2/bin/efm --help