このページでは、Spanner のデュアルリージョン・クォーラムの正常性ステータスを確認する方法と、サービスの中断が発生した場合にクォーラムを手動で変更する方法について説明します。
デュアルリージョンの詳細については、Spanner のデュアルリージョン インスタンス構成をご覧ください。
デュアルリージョン クォーラムのステータスを確認する
デュアルリージョン クォーラムのステータスは、次の方法で確認できます。
データベースの概要ページにアクセスする
Google Cloud コンソールの [Spanner インスタンス] ページに移動します。
デュアルリージョン構成になっているインスタンスの名前をクリックします。
データベースの名前をクリックします。
[概要] で [クォーラム] 行を探します。ここには、インスタンスのデュアルリージョン クォーラムのステータスが表示されます。
両方のリージョンでクォーラムが成立している場合、ステータスは [デュアルリージョン] と表示されます。
手動または 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
dual-region-quorum-health-check-script.shファイルをダウンロードします。この bash スクリプトは、シングルリージョンのリージョンの状態を確認します。リージョンが正常な場合、スクリプトは
gcloud spanner databases change-quorumコマンドを実行して、デュアルリージョン クォーラムを手動でデュアルリージョンからシングル リージョンにフェイルオーバーします。スクリプトの次の変数を置き換えます。
PROJECT: プロジェクト ID。INSTANCE: インスタンス IDDATABASE: データベース ID。SERVING_LOCATION: 確認するデュアルリージョン内のリージョンのロケーション。
任意の開発環境でスクリプトを実行します。詳細については、Google Cloud CLI のインストールと Spanner API の設定についての説明をご覧ください。
リージョンが異常な状態でフェイルオーバーが発生した場合は、手動でフェイルバックします。
デュアルリージョン クォーラムをデュアルリージョンからシングル リージョンに変更する(フェイルオーバー)
リージョンの停止またはネットワーク パーティショニングの問題が発生した場合に手動でフェイルオーバーするには:
Google Cloud コンソール
Google Cloud コンソールの [Spanner インスタンス] ページに移動します。
デュアルリージョン構成になっているインスタンスの名前をクリックします。
ナビゲーション メニューで [システム分析情報] をクリックします。
[デュアルリージョン クォーラムの健全性のタイムライン] 指標を見つけます。
デュアルリージョン クォーラムの健全性のタイムラインに、リージョンで停止が発生していることが示されている場合は、[リージョンのクォーラムを変更] をクリックします。
Cloud Shell が開きます。
デュアルリージョン クォーラムをデュアルリージョンからシングル リージョンに変更するには、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 コンソール
Google Cloud コンソールの [Spanner インスタンス] ページに移動します。
デュアルリージョン構成になっているインスタンスの名前をクリックします。
ナビゲーション メニューで [システム分析情報] をクリックします。
[デュアルリージョン クォーラムの健全性のタイムライン] 指標を見つけます。
デュアルリージョン クォーラムの健全性のタイムラインで、[リージョンのクォーラムを変更] をクリックします。
Cloud Shell が開きます。
デュアルリージョン クォーラムをデュアルリージョンからシングル リージョンに変更するには、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
次のステップ
- デュアルリージョン インスタンス構成について学習する。