Skip to main content

2026 年 5 月 18 日

データベース フェイルオーバー - レガシー アプライアンス

プライマリ アプライアンスに障害が発生した場合、データベースのフェイルオーバーを実行できます。このトピックでは、9.0.0 よりも古いバージョンを実行しているアプライアンスの手順について説明します。

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

プライマリ アプライアンスに障害が発生すると、セカンダリ データベースは読み取り専用になります。フェイルオーバーが発生した場合は、次のタスクを実行します。

  • セカンダリ データベースでの書き込み操作を有効化する
  • セカンダリ サービス プロバイダ アプライアンスを永続的に昇格させてプライマリにする
  • セカンダリ テナント アプライアンスを永続的に昇格させてプライマリにする
  • プライマリ アプライアンスを再起動

セカンダリ データベースでの書き込み操作を有効化する

この手順の目的は、プライマリ アプライアンスが使用できない場合にプライマリ データベースをセカンダリ アプライアンス(テナントまたはサービス プロバイダ)に切り替えることです。セカンダリ アプライアンスのデータベースがプライマリ データソースになるように書き込み処理を有効にすることが目的となります。

  1. dtService、av-manager を停止し、プライマリ(アクセス可能な場合)とセカンダリ アプライアンスの両方でサービスを診断します。

    sudo service dtService stop
    sudo service av-manager stop
    sudo service diagnose stop
    
  2. プライマリ(アクセス可能な場合)とセカンダリ アプライアンスの両方で、すべての slony デーモンを停止します。

    sudo killall slon
    
  3. セカンダリ アプライアンスで、fdb データベースに接続し、次の SQL コマンドを実行します。

     drop schema _slony cascade;
    
  4. アプライアンスがテナント組織に属している場合は、EDB および AVDB で手順 3 を繰り返します。

  5. プライマリ アプライアンス上のデータベースに引き続きアクセスできる場合は、データベースをバックアップし、データベース ファイルをコピーして、データベースをセカンダリ アプライアンスにリストアします (BackingUpandRestoringDatabases.md))。

  6. ファイル /usr/local/desktone/release/active/conf/fdb.properties を開いて編集し、プライマリ アプライアンスの IP アドレスを削除します。

  7. アプライアンスがテナント組織に属している場合は、/usr/local/desktone/release/active/edb.properties の手順 6 を繰り返します。

  8. アプライアンスがテナント組織に属している場合は、/usr/local/desktone/release/active/avdb.properties の手順 6 を繰り返します。

  9. DB_HOST および DB_PASSWORD 環境変数を設定します。

    export DB_HOST=IP_of_TA2_appliance
    export DB_PASSWORD=database_password
    
    
  10. av-setup スクリプトを sudo として実行します。

    sudo /usr/local/desktone/scripts/av-setup
    
  11. applications.properties ファイルを開いて編集します。

    vi /usr/local/xmpms/diagnose/config/application.properties
    
  12. applications.properties ファイルで、次のように行を編集します。

    db.jdbc.url=jdbc:postgresql://<ip address>:5432/avdb?ssl=true
    db.fdb.jdbc.url=jdbc:postgresql://<ip address>:5432/fdb?ssl=true
    
    
  13. セカンダリ アプライアンスで dtService、av-manager、および診断サービスを開始します。

    service dtService start
    service av-manager start
    service diagnose start
    

セカンダリ サービス プロバイダ アプライアンスのプライマリへの昇格

セカンダリ サービス プロバイダ アプライアンスをプライマリ サービス プロバイダ アプライアンスとして永続的に昇格させるには、次の手順を実行します。

この例では、プライマリ アプライアンスは「A」で、セカンダリ アプライアンスは「B」で、アプライアンス A にはアクセス可能です(このアプライアンスのデータベースにはアクセス可能)。

  1. すべてのサービス プロバイダ アプライアンスで dtService を停止します。

    service dtService stop
    
  2. すべてのサービス プロバイダ アプライアンスにログインします。

  3. /usr/local/desktone/release/active/conf/fdb.properties を開いて編集し、障害ステータスのプライマリ アプライアンスの IP アドレスを削除します。

  4. すべてのサービス プロバイダ アプライアンスですべての slony デーモンを停止します。

    killall slon
    
  5. プライマリおよびセカンダリ アプライアンスで、FDB データベースに接続し、次の SQL コマンドを実行します。

    drop schema _slony cascade;
    
  6. データセンターのセカンダリ アプライアンスで次の SQL コマンドを実行します (「A」と「B」をアプライアンスの名前で置き換えます)。

    fdb=# update appliance set capabilities = (capabilities & 65343) where name='A'; 
    fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
    
  7. 障害アプライアンス以外のサービス プロバイダ アプライアンスで dtService を開始します。

    service dtService start
    

    次の手順に進む前に、アプライアンスが起動し、実行注であることを確認します。

  8. プライマリ サービス プロバイダ アプライアンスを除くすべてのサービス プロバイダ アプライアンスで dtService を停止します(セカンダリ サービス プロバイダ アプライアンスはプライマリです)。

    service dtService stop
    
  9. すべてのサービス プロバイダ アプライアンスのデーモンで slon 開始します。

    /usr/local/desktone/scripts/start_slon_fdb.sh
    
  10. ブラウザでプライマリ サービス プロバイダ アプライアンス(セカンダリ サービス プロバイダ アプライアンスはプライマリです)のサービス センターにログインし、slony の再初期化操作を実行します。

    1. [アプライアンス] > [メンテナンス] > [Slony Operations] の順に移動します。
    2. [組織 ID] ドロップダウン リストで、[1000] を選択します。
    3. Slony の初期化 ボタンをクリックして、Slony を再初期化します。
  11. Slony の再初期化が完了したら、データセンターのセカンダリ アプライアンスの FDB で次のコマンドを実行します。

    SELECT a.set_id, a.set_comment, (SELECT last_value FROM _slony.sl_local_node_id) AS local_id, CASE WHEN a.set_origin = (SELECT  last_value FROM _slony.sl_local_node_id)THEN TRUE ELSE FALSE END AS master_node from _slony.sl_set a;
    

    出力は次のように表示されます。

    set_id | set_comment | local_id | master_node
    --------+--------------------------+----------+-------------   
    1 | All tables and Sequences | 1 | t  
    (1 row)
    
  12. 障害サービス プロバイダ アプライアンスを除くすべてのアプライアンスで dtService を起動します。

    service dtService start
    

セカンダリ テナント アプライアンスのプライマリへの昇格

セカンダリ テナント アプライアンスを完全にプライマリ テナント アプライアンスに昇格させるには、次の手順を実行します。

この例では、プライマリ アプライアンスは「A」で、セカンダリ アプライアンスは「B」で、アプライアンス A にはアクセス可能です(このアプライアンスのデータベースにはアクセス可能)。

  1. 組織内のすべてのテナント アプライアンスで dtService を停止します。

    service dtService stop
    
  2. 組織内のすべてのテナント アプライアンスにログインします。

  3. /usr/local/desktone/release/active/conf/fdb.properties を開いて編集し、障害ステータスのプライマリ アプライアンスの IP アドレスを削除します。

  4. 組織内のすべてのテナント アプライアンスで、すべての slony デーモンを停止します。

    killall slon
    
  5. 必要に応じて、プライマリ アプライアンス上のデータベースをバックアップし、セカンダリ アプライアンスでリストアします。

  6. プライマリおよびセカンダリ アプライアンスで、FDB データベースに接続し、次の SQL コマンドを実行します。

    drop schema _slony cascade;
    
  7. プライマリ サービス プロバイダ アプライアンスで次の SQL コマンドを実行します(「A」と「B」をアプライアンスの名前に置き換えます)。

    fdb=# update appliance set capabilities = (capabilities & 65343) where name='A';  
    fdb=# update appliance set capabilities = (capabilities | 192) where name='B';
    
  8. 組織内のすべてのテナント アプライアンス上のデーモンで、slon を開始します。

    /usr/local/desktone/scripts/start_slon_fdb.sh  
    /usr/local/desktone/scripts/start_slon_edb.sh  
    /usr/local/desktone/scripts/start_slon_avdb.sh
    
  9. ブラウザでプライマリ サービス プロバイダ アプライアンスのサービス センターにログインし、slony の再初期化操作を実行します。

    1. [アプライアンス] > [メンテナンス] > [Slony Operations] の順に移動します。
    2. [組織 ID] ドロップダウン リストからテナントの [組織 ID] を選択します。
    3. DB インスタンス名ラベルの [ファブリック] を選択します。
    4. Slony の初期化 ボタンをクリックして、[Slony の再初期化] をクリックします。
  10. Slony の再初期化が完了したら、データセンターのセカンダリ テナント アプライアンスの FDB で次のコマンドを実行します。

    SELECT a.set_id, a.set_comment, (SELECT last_value FROM _slony.sl_local_node_id) AS local_id, CASE WHEN a.set_origin = (SELECT  last_value FROM _slony.sl_local_node_id) THEN TRUE ELSE FALSE END AS master_node from _slony.sl_set a;
    

    プライマリ アプライアンスが最初のデータセンターで障害が発生した場合、出力は次のように表示されます。

    set_id | set_comment | local_id | master_node  
    --------+--------------------------+----------+-------------   
    1 | All tables and Sequences | 1 | t
    (1 row)
    
  11. 障害ステータスのテナント アプライアンスを除く、すべてのテナント アプライアンスで dtService を起動します。

     service dtService start
    

プライマリ アプライアンスを再起動

フェイルオーバー後にプライマリ アプライアンスを再起動する場合は、EDB と AVDB の両方で slony の再初期化を実行します。

このページは役に立ちましたか?

このトピックについてフィードバックを送信

このトピックは役に立ちましたか?

個人情報や機密情報は入力しないでください。

リンクを生成しています…