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

このページでは、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. デュアルリージョン クォーラムの健全性のタイムラインに、リージョンで停止が発生していることが示されている場合は、[リージョンのクォーラムを変更] をクリックします。

    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

次のステップ