デュアルリージョン クォーラムを変更する

このページでは、Spanner デュアルリージョン クォーラムのヘルス ステータスを確認する方法と、サービスが中断した場合にクォーラムを手動で変更する方法について説明します。

デュアルリージョンの詳細については、Spanner のデュアルリージョン インスタンス構成をご覧ください。

デュアルリージョン クォーラムのステータスを確認する

デュアルリージョン クォーラムのステータスは、次の方法で確認できます。

[データベースの概要] ページにアクセスする

  1. Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。

    インスタンス ページに移動

  2. デュアルリージョン構成に含まれるインスタンスの名前をクリックします。

  3. データベースの名前をクリックします。

  4. [概要] で [クォーラム] 行を探します。ここには、インスタンスのデュアルリージョン クォーラムのステータスが表示されます。

    • 両方のリージョンでクォーラムが満たされている場合、ステータスは [デュアルリージョン] を表示します。

    • 手動または Google 管理のファイルオーバーが実行されている場合は、サービス提供リージョンの名前(asia-south1 など)が表示されます。

システム分析情報ダッシュボードを使用する

デュアルリージョン構成を作成すると、インスタンスレベルのシステム分析ダッシュボードでデュアルリージョン クォーラムの可用性指標を確認できます。

詳細については、システム分析情報ダッシュボードを表示するをご覧ください。

Monitoring REST API または gcloud CLI を使用する

Monitoring REST API または gcloud CLI を使用して、デュアルリージョン クォーラムの状態を確認できます。

Monitoring REST API

Monitoring の projects.timeSeries.list API を使用してデュアルリージョン クォーラムの可用性指標をクエリし、特定の時点でリージョンが正常かどうかを確認します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • DUAL_REGION_LOCATION: 確認するデュアルリージョン内のリージョンのロケーション。
  • START_TIME: クエリの開始時間。現在の時刻の 5 分前を使用することをおすすめします。
  • END_TIME: クエリの終了時間。現在の時刻を使用することをおすすめします。

HTTP メソッドと URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries

リクエストの本文(JSON):

{
  "name": "PROJECT_ID",
  "aggregation.alignmentPeriod": "60s",
  "aggregation.crossSeriesReducer": "REDUCE_FRACTION_TRUE",
  "aggregation.groupByFields": "resource.labels.location",
  "aggregation.perSeriesAligner": "ALIGN_NEXT_OLDER",
  "filter": "metric.labels.quorum_availability = "Healthy" AND metric.type = "spanner.googleapis.com/instance/dual_region_quorum_availability" AND resource.labels.location = "DUAL_REGION_LOCATION"",
  "interval.startTime": "START_TIME",
  "interval.endTime": "END_TIME"
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "timeSeries": [
    {
      "metric": {
        "type": "spanner.googleapis.com/instance/dual_region_quorum_availability"
      },
      "resource": {
        "type": "spanner_instance",
        "labels": {
          "project_id": "spanner-project",
          "location": "australia-southeast1"
        }
      },
      "metricKind": "GAUGE",
      "valueType": "DOUBLE",
      "points": [
        {
          "interval": {
            "startTime": "2024-07-11T05:41:23Z",
            "endTime": "2024-07-11T05:41:23Z"
          },
          "value": {
            "doubleValue": 1
          }
        }
      ]
    }
  ],
  "unit": "10^2.%"
}

同様のレスポンスが返されない場合、リージョンが正常でない可能性があります。デュアルリージョン クォーラムをデュアルリージョンからシングル リージョンに変更する必要がある場合があります。

gcloud CLI

  1. dual-region-quorum-health-check-script.sh ファイルをダウンロードします。

    この bash スクリプトは、シングルリージョンのリージョンの状態を確認します。リージョンが正常な場合、スクリプトは gcloud spanner databases change-quorum コマンドを実行して、デュアルリージョン クォーラムを手動でデュアルリージョンからシングルリージョンにフェイルオーバーします。

  2. スクリプトの次の変数を置き換えます。

    • PROJECT: プロジェクト ID。
    • INSTANCE: インスタンス ID
    • DATABASE: データベース ID。
    • SERVING_LOCATION: 確認するデュアルリージョン内のリージョンの場所。
  3. 任意の開発環境でスクリプトを実行します。詳細については、Google Cloud CLI をインストールして Spanner API を設定するをご覧ください。

  4. リージョンが異常な状態でフェイルオーバーが発生した場合は、手動でフェイルバックします。

デュアルリージョン クォーラムをデュアルリージョンからシングルリージョンに変更する(フェイルオーバー)

リージョンの停止やネットワーク パーティショニングの問題が発生した場合に手動でフェイルオーバーするには:

Google Cloud コンソール

  1. Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。

    インスタンス ページに移動

  2. デュアルリージョン構成に含まれるインスタンスの名前をクリックします。

  3. ナビゲーション メニューで [システム分析情報] をクリックします。

  4. デュアルリージョン クォーラムの可用性指標を見つけます。

  5. デュアルリージョン クォーラムの可用性指標で、リージョンで停止があることが示されている場合は、Google Cloud コンソールの上部にある Cloud Shell をアクティブにするボタンのアイコン [Cloud Shell をアクティブにする] をクリックします。

    Cloud Shell が開きます。

  6. デュアルリージョン クォーラムをデュアルリージョンからシングル リージョンに変更するには、gcloud CLI タブにある次のコマンド「gcloud spanner databases change-quorum」を入力します。詳しい手順については、[gcloud] タブをご覧ください。

gcloud CLI

gcloud spanner databases change-quorum コマンドを使用して、デュアルリージョン クォーラムをデュアルリージョンからシングル リージョンに変更します。

gcloud spanner databases change-quorum
    DATABASE_ID --instance=INSTANCE_ID
    --single-region --serving-location=SERVING_LOCATION
    [--etag=ETAG]

以下を置き換えます。

  • DATABASE_ID: データベースの永続的な識別子。

  • INSTANCE_ID: インスタンスの永続的な識別子。

  • SERVING_LOCATION: フェイルオーバーするリージョン インスタンス構成。たとえば、asia-south1(ムンバイ)が異常で、asia-south2(デリー)にフェイルオーバーする場合は、asia-south2 を入力します。SERVING_LOCATION が正常なリージョンであることを確認します。フェイルオーバーに間違ったリージョンを選択すると、データベースが使用不能になり、リージョンがオンラインに復帰する前に復元できません。

オプションのフラグ:

  • --etag=ETAG: ETAG 引数は、リプレイ保護に使用できます。

クォーラム変更オペレーションのステータスを確認するには、gcloud spanner databases describe コマンドを実行します。quorumInfo フィールドには、オペレーションに関する情報が表示されます。

gcloud spanner databases describe DATABASE_ID
    --instance=INSTANCE_ID

デュアルリージョン クォーラムをシングル リージョンからデュアルリージョンに変更する(フェイルバック)

中断されたリージョンが正常な状態になった後、またはネットワーク パーティションの問題が解決した後に手動でフェイルバックするには:

Google Cloud コンソール

  1. Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。

    インスタンス ページに移動

  2. デュアルリージョン構成に含まれるインスタンスの名前をクリックします。

  3. ナビゲーション メニューで [システム分析情報] をクリックします。

  4. デュアルリージョン クォーラムの可用性指標を見つけます。

  5. デュアルリージョン クォーラムの可用性指標で、[リージョン クォーラムを変更] をクリックします。

    Cloud Shell が開きます。

  6. デュアルリージョン クォーラムをデュアルリージョンからシングル リージョンに変更するには、gcloud CLI タブにある次のコマンド「gcloud spanner databases change-quorum」を入力します。詳しい手順については、[gcloud] タブをご覧ください。

gcloud CLI

gcloud spanner databases change-quorum コマンドを使用して、デュアルリージョン クォーラムをシングル リージョンからデュアルリージョンに変更します。

gcloud spanner databases change-quorum
    DATABASE_ID --instance=INSTANCE_ID
    --dual-region
    [--etag=ETAG]

以下を置き換えます。

  • DATABASE_ID: データベースの永続的な識別子。

  • INSTANCE_ID: インスタンスの永続的な識別子。

オプションのフラグ:

  • --etag=ETAG: ETAG 引数は、オプティミスティックな同時実行制御に使用できます。

クォーラム変更オペレーションのステータスを確認するには、gcloud spanner databases describe コマンドを実行します。quorumInfo フィールドには、オペレーションに関する情報が表示されます。

gcloud spanner databases describe DATABASE_ID
    --instance=INSTANCE_ID

次のステップ