Tutorial - Configuring a Simple Failover Manager Cluster

このチュートリアルでは、|Failover Managerをすばやく設定する方法について説明しますテスト環境でのクラスター。このガイドの他のセクションでは、|Failover Managerを設定する前に読んで理解する必要がある重要な情報を提供します。実稼働展開用。

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

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

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

次の例では、 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

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

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

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

Step 3:Update the efm.properties File

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

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

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

db.user

db.password.encrypted

db.port

db.database

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

db.service.owner

EFMは、サーバーの再起動時に db.service.name および db.bin プロパティを使用します。 service または systemctl でサーバーを再起動すると、 db.service.name プロパティで提供されるサービス名が使用されます。 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

Step 4:Update the efm.nodes File

efm.nodes ファイルは起動時に読み込まれ、エージェントにクラスタの残りの部分を見つける方法を指示します。最初に起動したノードの場合、後続ノードの認証を簡素化するために使用できます。

クラスター内の各ノードのアドレスとポートをこのファイルに追加します。1つのノードがメンバーシップコーディネーターとして機能します。リストには、少なくともメンバーシップコーディネーターの住所を含める必要があります。例えば:

1.2.3.4:7800

1.2.3.5:7800

1.2.3.6:7800

|Failover Managerエージェントは efm.nodes ファイルの内容を検証しません。エージェントは、ファイル内の一部のアドレスに到達できないと予想します(たとえば、別のエージェントがまだ開始されていないなど)。 efm.nodes ファイルの詳細については、 クラスターメンバーファイル を参照してください。

Step 5:Configure the Other Nodes

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

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

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

Step 6:Start the EFM Cluster

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

systemctl start edb-efm-4.1

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

service edb-efm-4.1 start

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

/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

efmコマンドラインツールの使用に関する詳細については、 UsingEFMUtility を参照してください。