チュートリアル-シンプルなフェイルオーバーマネージャークラスターの設定

このチュートリアルでは、テスト環境でのフェールオーバーマネージャークラスターの迅速な構成について説明します。このガイドの他のセクションでは、運用展開用にフェールオーバーマネージャーを構成する前に読んで理解する必要がある重要な情報を提供します。

このチュートリアルでは、次のことを前提としています。

  • データベースサーバーが実行されており、マスターと1つまたは2つのスタンバイノード間でストリーミングレプリケーションがセットアップされています。

  • 各ノードにFailover Managerをインストールしました。

次の例では、 efm という名前のクラスターを作成します。

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

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

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

cd /etc/edb/efm-3.9

cp efm.properties.in efm.properties

cp efm.nodes.in efm.nodes

chown efm:efm efm.properties

chown efm:efm efm.nodes

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

暗号化されたパスワードを作成します(プロパティファイルに必要):

/usr/edb/efm-3.9/bin/efm encrypt efm

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

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

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

次のプロパティは、Failover Managerクラスタを構成するために必要な最小限のプロパティです。本番システムを設定している場合は、 クラスタプロパティファイルを参照してください。 プロパティの完全なリスト。

データベース接続プロパティ(ミラーリング監視でも必要なため、必要に応じて他のデータベースに接続できます):

db.user

db.password.encrypted

db.port

db.database

データディレクトリの所有者(通常はpostgresまたはenterprisedb):

db.service.owner

EFMは、サーバーを再起動するときに db.service.name および db.bin プロパティを使用します。 db.service.name プロパティで提供されるサービス名は、 service または systemctl でサーバーを再起動するときに使用されます。 db.bin プロパティ(Postgresの bin ディレクトリへのパス)で指定した値は、 pg_ctl の呼び出しに使用されます。 db.bin は必須フィールドです。データベースをサービスとして実行している場合、 db.service.name が必要です。

db.service.name

db.bin

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

db.data.dir

電子メール通知を受信するように設定します(通知テキストはエージェントログにも含まれます)。

user.email

これは、ノードのローカルアドレスとEFMに使用するポートです。他のノードはこのアドレスを使用してエージェントに到達し、エージェントはこのアドレスを使用してローカルデータベースに接続します(ローカルホストに接続するのではありません)。形式の例を以下に示します。

bind.address=1.2.3.4:7800

監視ノードでこのプロパティを true に設定し、マスターまたはスタンバイの場合は false に設定します。

is.witness

インターネットにアクセスせずにネットワークで実行している場合は、これをネットワークで使用可能なアドレスに変更します。

ping.server.ip=8.8.8.8

実稼働クラスターを構成するとき、以下のプロパティーは、システム構成および使用法に応じてtrueまたはfalseになります。 EFMテストクラスターを構成している場合は、両方をtrueに設定して起動を簡素化します。

auto.allow.hosts=true

stable.nodes.file=true

ステップ4: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 ファイルの内容を検証しないことに注意してください。エージェントは、ファイル内の一部のアドレスに到達できないことを予期しています(たとえば、別のエージェントがまだ開始されていないなど)。 efm.nodes ファイルの詳細については、 クラスターメンバーファイルを参照してください。

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

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

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

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

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

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

systemctl start edb-efm-3.9

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

service edb-efm-3.9 start

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

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

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

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

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

スイッチオーバーの実行

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

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

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

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

/usr/edb/efm-3.9/bin/efm --help

efmコマンドラインツールの使用方法の詳細については、 EFMユーティリティの使用を参照してください。 。