高可用性を構成する

高可用性構成の目的は、データベース クラスタ インスタンスが利用できなくなったときのダウンタイムを短縮することです。これは、インスタンスのメモリが不足した場合に発生することがあります。高可用性を使用すれば、クライアント アプリケーションで引き続きデータを使用できるようになります。

サイト内では、構成はプライマリ インスタンスとスタンバイ レプリカで構成されます。トランザクションが commit 済みとしてレポートされる前に、プライマリ インスタンスへの書き込みがすべてスタンバイ レプリカに複製されます。インスタンスに障害が発生した場合は、スタンバイ レプリカを新しいプライマリ インスタンスにするようリクエストできます。アプリケーション トラフィックは新しいプライマリ インスタンスに再ルーティングされます。このプロセスはフェイルオーバーと呼ばれます。

手動でフェイルオーバーをトリガーできます。フェイルオーバーには、次のプロセスが順に実行されます。

  1. GDC がプライマリ インスタンスをオフラインにします。

  2. GDC は、スタンバイ レプリカを新しいアクティブ データベース クラスタに変換します。

  3. GDC は、以前のアクティブなデータベース クラスタを削除します。

  4. GDC が新しいスタンバイ レプリカを作成します。

AlloyDB Omni と PostgreSQL データベース クラスタでは、同じゾーンの高可用性を有効または無効にできます。

既存のクラスタを更新する

既存のデータベース クラスタの高可用性設定を更新できます。

コンソール

  1. ナビゲーション メニューで [データベース サービス] を選択します。

  2. データベース クラスタのリストで、更新するデータベース クラスタをクリックします。

  3. [高可用性] セクションで、[編集] 編集 を選択します。

    データベース クラスタの高可用性設定を編集します。

  4. [同じゾーンのスタンバイを有効にする] を選択して、プライマリ データベース クラスタと同じゾーンのスタンバイ インスタンスの可用性をオンまたはオフにします。

  5. [保存] をクリックします。

  6. データベース クラスタのリストの [高可用性] 列でステータスを確認して、データベース クラスタに高可用性の更新が反映されていることを確認します。

gdcloud

  1. データベース クラスタの高可用性構成を更新します。

    gdcloud database clusters update CLUSTER_NAME \
        --availability-type HA_TYPE
    

    次のように置き換えます。

    • CLUSTER_NAME: データベース クラスタの名前。
    • HA_TYPE: データベース クラスタの高可用性レベル。zonal または zonal_ha を設定できます。zonal の値はデフォルトで設定されています。
  2. データベース クラスタに高可用性の更新が反映されていることを確認します。

    gdcloud database clusters list
    

API

  1. データベース クラスタの高可用性構成を更新します。

      kubectl patch dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \
        -n USER_PROJECT \
        -p '{"spec": {"availability": {"enableHighAvailability": HA_ENABLED}}}' \
        --type=merge
    

    次の変数を置き換えます。

    • DBENGINE_NAME: データベース エンジンの名前。alloydbomnipostgresqloracle のいずれかです。
    • DBCLUSTER_NAME: データベース クラスタの名前。
    • USER_PROJECT: データベース クラスタが作成されたユーザー プロジェクトの名前。
    • HA_ENABLED: データベース クラスタの高可用性レベル。true または false を設定できます。false の値はデフォルトで設定されています。
  2. データベース クラスタに高可用性の更新が反映されていることを確認します。

    kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \
      -n USER_PROJECT \
      -o yaml
    

フェイルオーバーをトリガーする

データベース クラスタの高可用性を構成している場合は、フェイルオーバーをトリガーできます。フェイルオーバーをトリガーする手順は次のとおりです。

コンソール

  1. ナビゲーション メニューで [データベース サービス] を選択します。

  2. データベース クラスタのリストで、フェイルオーバーをトリガーするデータベース クラスタをクリックします。フェイルオーバーの対象となるには、データベース クラスタで高可用性が有効になっている必要があります。

  3. [フェイルオーバー] をクリックします。

  4. 確認フレーズにクラスタの ID を入力し、[フェイルオーバー] をクリックしてフェイルオーバー プロセスをトリガーします。

gdcloud

  • データベース クラスタのフェイルオーバーをトリガーします。

    gdcloud database clusters failover CLUSTER_NAME
    

    CLUSTER_NAME は、データベース クラスタの名前に置き換えます。

API

  apiVersion: fleet.dbadmin.gdc.goog/v1
  kind: Failover
  metadata:
    name: FAILOVER_NAME
  spec:
    dbclusterRef: DBCLUSTER_NAME

次の変数を置き換えます。

  • DBCLUSTER_NAME: データベース クラスタの名前。
  • FAILOVER_NAME: フェイルオーバーの一意の名前(failover-sample など)。