このトピックでは、バージョン 9.0.0 以降を実行しているアプライアンスのデータベース フェイルオーバー機能について説明します。これらのアプライアンスでは、サービス プロバイダ アプライアンスが予期せずにシャットダウンした場合を除いて、フェイルオーバーは完全に自動化されていますが、その場合は手動プロセスが残っています。

注: このトピックは、バージョン 9.0.0 以降を実行しているアプライアンスにのみ適用されます。古いアプライアンスに関連する情報については、 データベース フェイルオーバー - レガシー アプライアンス を参照してください。

自動フェイルオーバー

自動フェイルオーバー機能には、次のものが含まれます。
  • 単一のデータソース接続 - すべてのアプライアンスで、新しい pgbouncer サービスを介してプロキシされる単一のデータソース接続が使用されるようになりました。pgbouncer は、基盤となる postgres データベースへの接続を維持しながら、使用するアプライアンス サービスの単一の接続ポイントを提供する接続プーラーです。このサービスは、すべてのフェイルオーバーとプライマリの移行も処理します。新しいプライマリ データベースを参照するように自動的に更新され、プライマリ間のシームレスな移行が可能になります。
  • アプライアンスのシャットダウンまたは再起動時にプライマリ データベースの切り替えを制御 - ゲストが開始するシャットダウンまたは現在のプライマリ データベースの再起動中に、プライマリ ロールは制御された方法で HA ペアの他のアプライアンスに移行されます。これは、主に Blast (Web) ポータルを介したデスクトップ接続に影響しますが、アプライアンスの動作がわずかに中断されるだけです。Horizon Client を介して作成されたデスクトップ接続は影響を受けません。また、horizonadmin を短期間使用できない場合もあります。また、切り替え中にデスクトップ接続を要求しているユーザーには、使用可能なデスクトップがないことを示すエラーが表示されることがありますが、その後すぐに再試行してデスクトップに接続できます。
  • テナント アプライアンスで予期しない障害が発生した場合のプライマリ データベースの自動フェイルオーバー - プライマリの障害が自動的に検出され、続いてサービス プロバイダ アプライアンスへの要求が発生して、アプライアンスが実際に停止していることを確認します。フェイルオーバー プロセスは 3 分の遅延後に開始されます。この新しいフェイルオーバー プロセスは、過去のフェイルオーバー プロセスよりも中断が小さいため、slony クラスタを通常のレプリケーション状態のままにします。これにより、フェイルオーバーが発生した後に slony 再初期化は必要なくなります。
これらの機能は、以下で説明するサービスでサポートされています。
サービス 説明 ログの場所
pgbouncer platform services と postgres 間のデータベース接続を仲介する接続プーラー。 /var/log/pgbouncer/
  • デフォルトで psql コマンドを使用して postgres に接続すると、pgbouncer が実行されます。これにより、使用しているアプライアンスに関係なく、プライマリ データベースに接続します。特定のデータベース インスタンスに接続するには、psql で -h および -p フラグを使用します。また、postgres に直接接続する場合は、ポート 6432 も指定する必要があります。次に例を示します。
    psql -U admin -h ‹Appliance_IP› -p 6432 fdb
  • /etc/pgbouncer/pgbouncer.ini の pgbouncer 構成を確認して、正しいアプライアンスを参照していることを確認できます。ファイルの先頭にある connect 文字列は、現在の slony プライマリを参照している必要があります。存在しない場合、ほとんどの場合、アプライアンスの再起動によって問題が解決されます。
Dbmonitor 次のような監視サービスを実行します。
  • プライマリ障害を検出し、新しいフェイルオーバー プロセスを開始します。
  • 制御された switchover または resubscribe によって発生した slony プライマリ ノードの変更を検出し、それに応じて新しいプライマリ アドレスで pgbouncer を更新します。
/var/log/dbmonitor/
switchover シャットダウン時にスクリプトが実行され、switchover アクションが実行されます。 /var/log/desktone/slony-services
resubscribe 起動時にスクリプトが実行され、resubscribe アクションが実行されます。 /var/log/desktone/slony-services

サービス プロバイダ アプライアンスの手動フェイルオーバー

サービス プロバイダ アプライアンスで予期しないシャットダウンが発生した場合は、他のサービス プロバイダ アプライアンスで次の手順を実行して、手動フェイルオーバーを実行できます。
  1. failover-slony-master スクリプト(/usr/local/desktone/scripts/ にある)を root として実行します。
    failover-slony-master <database type> '<database password>'
    ここで、<database type> は fdb、edb、または avdb です。
  2. pgbouncer.ini ファイルが現在のアプライアンスのフロントエンド IP アドレスを参照していることを確認します。
    /usr/local/desktone/scripts# grep '<IP address>' /etc/pgbouncer/pgbouncer.ini
  3. pgbouncer サービスを再ロードします。
    service pgbouncer reload
  4. slony-status を実行してプライマリ ステータスとレプリケーションを確認します。
    /usr/local/desktone/scripts# slony-status <org #>