チュートリアル-シンプルなフェイルオーバーマネージャークラスターの設定¶
このチュートリアルでは、Failover Managerをすばやく設定する方法について説明しますテスト環境でのクラスター。このガイドの他のセクションでは、Failover Managerを設定する前に読んで理解する必要がある重要な情報を提供します。実稼働展開用。
このチュートリアルでは、次のことを前提としています。
データベースサーバーが実行されており、マスターと1つまたは2つのスタンバイノードの間でストリーミングレプリケーションがセットアップされています。
Failover Managerをインストールしました各ノードで。
次の例では、 efm という名前のクラスターを作成します。
マスターまたはスタンバイノードで構成プロセスを開始する必要があります。次に、構成ファイルを他のノードにコピーして、時間を節約します。
ステップ1:作業用構成ファイルの作成
提供されたサンプルファイルをコピーしてEFM構成ファイルを作成し、所有権を修正します。
cd /etc/edb/efm-4.00
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-4.00/bin/efm encrypt efm
画面の指示に従って、データベースパスワードの暗号化バージョンを作成します。
ステップ3:efm.propertiesファイルを更新する
efm.properties ファイルには、Failover Managerの接続プロパティと動作を指定するパラメーターが含まれていますクラスター。プロパティ設定の変更は、フェールオーバーマネージャーの起動時に適用されます。
次のプロパティは、Failover Managerを設定するために必要な最小限のプロパティですクラスター。本番システムを設定している場合、プロパティの完全なリストについては、 :doc:`クラスタプロパティファイル<cluster_properties>`を参照してください。
データベース接続プロパティ(ミラーリング監視でも必要なため、必要に応じて他のデータベースに接続できます):
db.user
db.password.encrypted
db.port
db.database
データディレクトリの所有者(通常はpostgresまたはenterprisedb):
db.service.owner
EFM uses the db.service.name and db.bin properties when restarting the
server. The service name provided with the db.service.name property is used
when restarting the server with service or systemctl; the value you provide in the
db.bin property (the path to the Postgres bin directory), will be used for calls
to pg_ctl. Please note that db.bin is a required field. db.service.name is
required if you are running the database as a service.
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ファイルを更新する
起動時に efm.nodes ファイルが読み込まれ、クラスターの残りの部分を見つける方法をエージェントに伝えます。最初のノードが開始された場合は、後続のノードの承認を簡素化するために使用できます。
クラスター内の各ノードのアドレスとポートをこのファイルに追加します。1つのノードがメンバーシップコーディネーターとして機能します。リストには、少なくともメンバーシップコーディネーターの住所を含める必要があります。例えば:
1.2.3.4:7800
1.2.3.5:7800
1.2.3.6:7800
Please note that the Failover Manager agent will not verify the content
of the efm.nodes file; the agent expects that some of the addresses in
the file cannot be reached (e.g. that another agent hasn’t been started
yet). For more information about the efm.nodes file,
see The Cluster Members File
ステップ5:他のノードの構成
Copy the efm.properties and efm.nodes files to the /etc/edb/efm-3.10
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クラスターを開始します
任意のノードで、Failover Managerを開始しますエージェント。エージェントの名前は edb-efm-3.10 です。プラットフォーム固有のサービスコマンドを使用して、サービスを制御できます。たとえば、RHEL/CentOS7.xまたはRHEL/CentOS8.xホストでは、次のコマンドを使用します。
systemctl start edb-efm-4.00
CentOSまたはRHEL6.xホストでは、次のコマンドを使用します。
service edb-efm-4.00 start
エージェントの起動後、次のコマンドを実行して、シングルノードクラスターのステータスを確認します。Allowednodehostリストに他のノードのアドレスが表示されます。
/usr/edb/efm-4.00/bin/efm cluster-status efm
他のノードでエージェントを起動します。任意のノードで efm cluster-status efm コマンドを実行して、クラスターの状態を確認します。
エージェントの起動に失敗した場合は、起動ログで問題の詳細を確認してください。
cat /var/log/efm-4.00/startup-efm.log
スイッチオーバーの実行
マスターとスタンバイが同期していることがクラスターステータス出力に示されている場合は、次のコマンドでスイッチオーバーを実行できます。
/usr/edb/efm-4.00/bin/efm promote efm -switchover
このコマンドは、スタンバイを昇格させ、マスターデータベースをクラスター内の新しいスタンバイとして再構成します。元に戻すには、コマンドを再度実行します。
ヘルプにすばやくアクセスするには、次のコマンドを呼び出すことができます。
/usr/edb/efm-4.00/bin/efm --help
efmコマンドラインツールの使用に関する詳細については、 :doc:`UsingEFMUtility<using_efm_utility>`を参照してください。