高可用性構成の目的は、データベース クラスタ インスタンスが利用できなくなったときのダウンタイムを短縮することです。これは、インスタンスのメモリが不足した場合に発生することがあります。高可用性を使用すれば、クライアント アプリケーションで引き続きデータを使用できるようになります。
サイト内では、構成はプライマリ インスタンスとスタンバイ レプリカで構成されます。トランザクションが commit 済みとしてレポートされる前に、プライマリ インスタンスへの書き込みがすべてスタンバイ レプリカに複製されます。インスタンスに障害が発生した場合は、スタンバイ レプリカを新しいプライマリ インスタンスにするようリクエストできます。アプリケーション トラフィックは新しいプライマリ インスタンスに再ルーティングされます。このプロセスはフェイルオーバーと呼ばれます。
手動でフェイルオーバーをトリガーできます。フェイルオーバーには、次のプロセスが順に実行されます。
GDC がプライマリ インスタンスをオフラインにします。
GDC は、スタンバイ レプリカを新しいアクティブ データベース クラスタに変換します。
GDC は、以前のアクティブなデータベース クラスタを削除します。
GDC が新しいスタンバイ レプリカを作成します。
AlloyDB Omni と PostgreSQL データベース クラスタでは、同じゾーンの高可用性を有効または無効にできます。
既存のクラスタを更新する
既存のデータベース クラスタの高可用性設定を更新できます。
コンソール
ナビゲーション メニューで [データベース サービス] を選択します。
データベース クラスタのリストで、更新するデータベース クラスタをクリックします。
[高可用性] セクションで、[編集] 編集 を選択します。
[同じゾーンのスタンバイを有効にする] を選択して、プライマリ データベース クラスタと同じゾーンのスタンバイ インスタンスの可用性をオンまたはオフにします。
[保存] をクリックします。
データベース クラスタのリストの [高可用性] 列でステータスを確認して、データベース クラスタに高可用性の更新が反映されていることを確認します。
gdcloud
データベース クラスタの高可用性構成を更新します。
gdcloud database clusters update CLUSTER_NAME \ --availability-type HA_TYPE
次のように置き換えます。
CLUSTER_NAME
: データベース クラスタの名前。HA_TYPE
: データベース クラスタの高可用性レベル。zonal
またはzonal_ha
を設定できます。zonal
の値はデフォルトで設定されています。
データベース クラスタに高可用性の更新が反映されていることを確認します。
gdcloud database clusters list
API
データベース クラスタの高可用性構成を更新します。
kubectl patch dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \ -n USER_PROJECT \ -p '{"spec": {"availability": {"enableHighAvailability": HA_ENABLED}}}' \ --type=merge
次の変数を置き換えます。
DBENGINE_NAME
: データベース エンジンの名前。alloydbomni
、postgresql
、oracle
のいずれかです。DBCLUSTER_NAME
: データベース クラスタの名前。USER_PROJECT
: データベース クラスタが作成されたユーザー プロジェクトの名前。HA_ENABLED
: データベース クラスタの高可用性レベル。true
またはfalse
を設定できます。false
の値はデフォルトで設定されています。
データベース クラスタに高可用性の更新が反映されていることを確認します。
kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \ -n USER_PROJECT \ -o yaml
フェイルオーバーをトリガーする
データベース クラスタの高可用性を構成している場合は、フェイルオーバーをトリガーできます。フェイルオーバーをトリガーする手順は次のとおりです。
コンソール
ナビゲーション メニューで [データベース サービス] を選択します。
データベース クラスタのリストで、フェイルオーバーをトリガーするデータベース クラスタをクリックします。フェイルオーバーの対象となるには、データベース クラスタで高可用性が有効になっている必要があります。
[フェイルオーバー] をクリックします。
確認フレーズにクラスタの 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
など)。