Modifier le quorum birégional

Cette page explique comment vérifier l'état de votre quorum à deux régions Spanner et comment modifier manuellement le quorum en cas de perturbation de service.

Pour en savoir plus sur les zones birégionales, consultez la section Configurations d'instance birégionales de Spanner.

Vérifier l'état du quorum birégional

Vous pouvez vérifier l'état de votre quorum à deux régions de différentes manières:

Sur la page "Présentation de la base de données"

  1. Accédez à la page Instances Spanner dans la console Google Cloud.

    Accéder à la page Instances

  2. Cliquez sur le nom de l'instance qui est configurée en double région.

  3. Cliquez sur le nom de la base de données.

  4. Sous "Vue d'ensemble", recherchez la ligne Quorum, qui indique l'état du quorum à deux régions de votre instance:

    • Si le quorum est atteint dans les deux régions, l'état indique Bi-régional.

    • Si un basculement manuel ou géré par Google a été effectué, le nom de la région de diffusion s'affiche (par exemple, asia-south1).

Utiliser le tableau de bord des insights système

Après avoir créé une configuration à deux régions, vous pouvez afficher la métrique Chronologie de l'état du quorum à deux régions dans le tableau de bord "Insights système au niveau de l'instance".

Pour en savoir plus, consultez Afficher le tableau de bord "Insights système".

Utiliser l'API REST Monitoring ou la CLI gcloud

Vous pouvez utiliser l'API REST Monitoring ou la CLI gcloud pour vérifier l'état de votre quorum à deux régions.

Utilisez l'API Monitoring projects.timeSeries.list pour interroger l'historique de l'état du quorum birégional afin de vérifier si une région est opérationnelle à un moment donné.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • DUAL_REGION_LOCATION: emplacement de la région dans la région duale que vous souhaitez vérifier.
  • START_TIME: heure de début de la requête. Nous vous recommandons de définir la valeur sur cinq minutes avant l'heure actuelle.
  • END_TIME: heure de fin de la requête. Nous vous recommandons d'utiliser l'heure actuelle.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "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"
}

Pour envoyer votre requête, développez l'une des options suivantes :

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries"

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

{
  "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.%"
}

Si vous ne voyez pas de réponse similaire, votre région peut ne pas être opérationnelle, et vous devrez peut-être passer du quorum birégional au quorum à une seule région.

  1. Téléchargez le fichier dual-region-quorum-health-check-script.sh.

    Ce script bash vérifie l'état de votre seule région. Si la région est opérationnelle, le script exécute la commande gcloud spanner databases change-quorum pour basculer manuellement le quorum birégional d'une région à deux vers une région unique.

  2. Remplacez les variables suivantes dans le script:

    • PROJECT : ID de votre projet.
    • INSTANCE: ID de votre instance.
    • DATABASE: ID de votre base de données.
    • SERVING_LOCATION: emplacement de la région dans la région duale que vous souhaitez vérifier.
  3. Exécutez le script dans l'environnement de développement de votre choix. Pour en savoir plus, consultez Installer la Google Cloud CLI et configurer l'API Spanner.

  4. Effectuez un basculement manuel si votre région n'était pas opérationnelle et qu'un basculement a eu lieu.

Modifier le quorum birégional en quorum régional unique (failover)

Pour effectuer un basculement manuel en cas d'indisponibilité régionale ou de problème de partitionnement réseau:

  1. Accédez à la page Instances Spanner dans la console Google Cloud.

    Accéder à la page Instances

  2. Cliquez sur le nom de l'instance qui est configurée en double région.

  3. Cliquez sur Insights système dans le menu de navigation.

  4. Recherchez la métrique Chronologie birégionale de l'état du quorum.

  5. Si la chronologie de l'état du quorum birégional indique qu'une interruption est survenue dans une région, cliquez sur Modifier le quorum de la région.

    Cloud Shell s'ouvre.

  6. Pour passer du quorum birégional à un quorum monorégional, saisissez la commande suivante dans l'onglet de la CLI gcloud : gcloud spanner databases change-quorum. Pour obtenir des instructions détaillées, consultez l'onglet gcloud.

Utilisez la commande gcloud spanner databases change-quorum pour passer du quorum birégional à un quorum de région unique.

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

Remplacez les éléments suivants :

  • DATABASE_ID: identifiant permanent de la base de données.

  • INSTANCE_ID : identifiant permanent de l'instance.

  • SERVING_LOCATION: configuration d'instance régionale à laquelle vous souhaitez effectuer le basculement. Par exemple, si asia-south1 (Mumbai) n'est pas opérationnel et que vous souhaitez effectuer un basculement vers asia-south2 (Delhi), saisissez asia-south2. Assurez-vous que SERVING_LOCATION est la région opérationnelle. Si vous choisissez une mauvaise région pour le basculement, la base de données devient indisponible, ce qui est irrécupérable avant que la région ne soit de nouveau en ligne.

Indicateurs facultatifs :

  • --etag=ETAG: l'argument ETAG peut être utilisé pour la protection contre la relecture.

Pour vérifier l'état de votre opération de modification du quorum, exécutez la commande gcloud spanner databases describe. Le champ quorumInfo fournit des informations sur l'opération.

gcloud spanner databases describe DATABASE_ID
    --instance=INSTANCE_ID

Modifier le quorum birégional d'une région unique en birégional (failback)

Pour effectuer manuellement la restauration après que la région perturbée est opérationnelle ou après la résolution du problème de partition réseau:

  1. Accédez à la page Instances Spanner dans la console Google Cloud.

    Accéder à la page Instances

  2. Cliquez sur le nom de l'instance qui est configurée en double région.

  3. Cliquez sur Insights système dans le menu de navigation.

  4. Recherchez la métrique Chronologie birégionale de l'état du quorum.

  5. Dans la chronologie de l'état du quorum birégional, cliquez sur Modifier le quorum de la région.

    Cloud Shell s'ouvre.

  6. Pour passer du quorum birégional à un quorum monorégional, saisissez la commande suivante dans l'onglet de la CLI gcloud : gcloud spanner databases change-quorum. Pour obtenir des instructions détaillées, consultez l'onglet gcloud.

Utilisez la commande gcloud spanner databases change-quorum pour modifier le quorum bi-régional d'une région unique en bi-région.

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

Remplacez les éléments suivants :

  • DATABASE_ID: identifiant permanent de la base de données.

  • INSTANCE_ID : identifiant permanent de l'instance.

Indicateurs facultatifs :

  • --etag=ETAG: l'argument ETAG peut être utilisé pour le contrôle de simultanéité optimiste.

Pour vérifier l'état de votre opération de modification du quorum, exécutez la commande gcloud spanner databases describe. Le champ quorumInfo fournit des informations sur l'opération.

gcloud spanner databases describe DATABASE_ID
    --instance=INSTANCE_ID

Étape suivante