Configuring for Eager Failover¶
デフォルトの実行モードでは、プライマリフェールオーバーマネージャープロセスが失敗した場合、エージェントが再起動するまでフェイルオーバー保護はありません。このケースを回避するには、systemdを使用してプライマリノードをセットアップし、プライマリエージェントが終了したときにフェイルオーバーが発生するようにします。これは、Eager
Failoverと呼ばれます。
次の手順を実行して、Eager Failoverをセットアップできます。この例では、 EDB Postgres Advanced Serverバージョン12およびFailover Managerバージョン4.2を使用しています。
</ div>
Eager Failoverを有効にする¶
* primary.shutdown.as.failure=true
フェールオーバーマネージャーを起動する前にこのプロパティを設定しない場合、フェールオーバーマネージャーエージェントをシャットダウンすると、フェイルオーバーなしでデータベースがシャットダウンされます。
Eager Failoverを有効にして、
efm stop-clusterコマンドを使用すると、すべてのFailover Managerエージェントが停止し、プライマリデータベースがシャットダウンします。エージェントが実行されていないため、フェイルオーバーはありません。このシナリオを回避するには、enable.stop.clusterプロパティを使用してコマンドを無効にします。
* enable.stop.cluster=false
データベースサーバとローカルフェールオーバーマネージャーエージェントが実行されていることを確認します。
ルートとして、/etc/systemd/system/edb-as-12.serviceファイルを作成し、以下を含めます。
* .include /lib/systemd/system/edb-as-12.service
* [Unit]
* BindsTo=edb-efm-4.2.service
次のコマンドを実行して、構成ファイルをリロードします。
* systemctl daemon-reload
これらの変更により、Failover Managerエージェントが停止または終了すると、クラスターの残りの部分はこのシチュエーションを障害として扱い、フェイルオーバーを試行します。
</ div>
Eager Failoverの無効化¶
Eager FailoverモードでのFailover Managerのアップグレード¶
EDB Postgres Advanced Serverを停止せずにFailover Managerをアップグレードするには、Eager Failoverモードを一時的に無効にします。
重要な注意事項¶
systemdコマンドは、sudo以外のセットアップでフェールオーバーマネージャーを実行している間はデータベースの管理に使用されないため、Eager Failoverはsudoモードでのみサポートされます。非sudoモードではサポートされていません。Eager Failoverは、VIPが古いプライマリによってリリースされない状況には適していません。
Eager Failoverは、次の状況に適しています。
EDB Postgres Advanced Serverの高可用性セットアップ。
-またはlibpqを使用したクライアント接続フェイルオーバーを使用したセットアップ。
-script.fenceによってトリガーされたカスタムスクリプトが古いプライマリーサーバ(STONITH)をフェンスする場合。いくつかの例は、VMWare
vCenter統合、OpenStack統合、またはLights Out
管理でVMをシャットダウンすることです。
-script.fenceによってトリガーされたカスタムスクリプトがsshを使用してVIPを非アクティブ化する場合。
!!! Note
古いプライマリがリリースする前に新しいプライマリがVIPを接続できるようにするには、
check.vip.before.promotion=falseの設定が必要です。primary.shutdown.as.failure=trueを使用する場合は注意してください。必要に応じてデータベースを安全に停止する方法については、primary.shutdown.as.failureプロパティの説明を参照してください。すべてのフェイルオーバーで、プライマリは失敗したプライマリになりますが、運用スタンバイとして自動的に回復しません。したがって、クラスターにマルチプルの昇格可能なスタンバイが含まれmakeいること、およびスタンバイの合計数が
minimum.standbysプロパティに指定された値より少なくとも2つ多いことを確認してください。これは一般的な推奨事項ですが、Eager Failoverを使用する場合はより緊急になります。データベースサーバが停止している場合、データベースを再起動するとフェールオーバーマネージャーも起動します。
!!! Note
-悪いプロパティ値など、Failover Managerの起動に問題がある場合、データベースサーバは起動していないことを示すワーニングを表示することなく、再びシャットダウンします。 -Failover Managerプロセスが以前に終了した場合、ロックファイルはまだ存在し、エージェントは自動的にリスタートできません。 -データベースサーバまたはFailover Managerエージェントの起動時に問題が発生した場合は、Failover Managerのスタートアップログで情報を確認してください。
stop-clusterコマンドを実行した結果、Failover Managerはすべてのノードで停止します。 Eager Failoverモードでは、stop-clusterコマンドは、フェイルオーバーなしでEDB Postgres Advanced Serverも停止します。stop-clusterを意図せずに起動できないmakeに、enable.stop.cluster=falseを設定します。