Cambia el quórum de las regiones dobles

En esta página, se describe cómo verificar el estado del quórum de Spanner de dos regiones y cómo cambiarlo de forma manual en caso de interrupciones del servicio.

Para obtener más información sobre las regiones dobles, consulta Configuraciones de instancias de región doble de Spanner.

Verifica el estado del quórum birregional

Puedes verificar el estado del quórum de dos regiones de las siguientes maneras:

En la página Descripción general de la base de datos

  1. Ve a la página Instancias de Spanner en la consola de Google Cloud.

    Ir a la página Instancias

  2. Haz clic en el nombre de la instancia que tiene una configuración de región doble.

  3. Haz clic en el nombre de la base de datos.

  4. En Descripción general, busca la fila Quórum, que muestra el estado del quórum de doble región de tu instancia:

    • Si se cumple el quórum en ambas regiones, el estado muestra Birregional.

    • Si se realizó una conmutación por error manual o administrada por Google, verás el nombre de la región de publicación (por ejemplo, asia-south1).

Usa el panel de Estadísticas del sistema

Después de crear una configuración de dos regiones, puedes ver la métrica Cronología de estado del quórum de dos regiones en el panel Información del sistema a nivel de la instancia.

Para obtener más información, consulta Cómo ver el panel de estadísticas del sistema.

Usa la API de REST de Monitoring o gcloud CLI

Puedes usar la API de REST de Monitoring o la CLI de gcloud para verificar el estado del quórum de dos regiones.

Usa la API de projects.timeSeries.list de Monitoring para consultar la línea de tiempo del estado del quórum birregional y verificar si una región tiene un estado bueno en un momento determinado.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: el ID de tu proyecto
  • DUAL_REGION_LOCATION: Es la ubicación de la región en la región dual que deseas verificar.
  • START_TIME: Es la hora de inicio de la consulta. Te recomendamos que uses 5 minutos antes de la hora actual.
  • END_TIME: Es la hora de finalización de la consulta. Te recomendamos que uses la hora actual.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, expande una de estas opciones:

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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"

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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 no ves una respuesta similar, es posible que tu región no esté en buen estado y que debas cambiar el quórum de región doble a región única.

  1. Descarga el archivo dual-region-quorum-health-check-script.sh.

    Esta secuencia de comandos de Bash verifica el estado de la región de tu única región. Si la región está en buen estado, la secuencia de comandos ejecuta el comando gcloud spanner databases change-quorum para conmutar por error manualmente el quórum de la región doble a la región única.

  2. Reemplaza las siguientes variables en la secuencia de comandos:

    • PROJECT: el ID de tu proyecto
    • INSTANCE: El ID de tu instancia.
    • DATABASE: El ID de tu base de datos.
    • SERVING_LOCATION: Es la ubicación de la región en la región dual que deseas verificar.
  3. Ejecuta la secuencia de comandos en el entorno de desarrollo que elijas. Para obtener más información, consulta Instala Google Cloud CLI y configura la API de Spanner.

  4. Realiza una conmutación por error de forma manual si tu región estaba en mal estado y se produjo una conmutación por error.

Cambia el quórum de birregión a una sola región (conmutación por error)

Para realizar la conmutación por error de forma manual si hay una interrupción regional o un problema de partición de la red, haz lo siguiente:

  1. Ve a la página Instancias de Spanner en la consola de Google Cloud.

    Ir a la página Instancias

  2. Haz clic en el nombre de la instancia que tiene una configuración de región doble.

  3. Haz clic en Estadísticas del sistema en el menú de navegación.

  4. Busca la métrica Línea de tiempo del estado del quórum birregional.

  5. Si la línea de tiempo del estado del quórum birregional muestra que hay una interrupción en una región, haz clic en Cambiar quórum de la región.

    Se abrirá Cloud Shell.

  6. Para cambiar el quórum de dos regiones a una sola, ingresa el siguiente comando que se encuentra en la pestaña de la CLI de gcloud: gcloud spanner databases change-quorum. Para obtener instrucciones detalladas, consulta la pestaña gcloud.

Usa el comando gcloud spanner databases change-quorum para cambiar el quórum de dos regiones a una sola.

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

Reemplaza lo siguiente:

  • DATABASE_ID: Es el identificador permanente de la base de datos.

  • INSTANCE_ID: Identificador permanente de la instancia.

  • SERVING_LOCATION: Es la configuración de la instancia regional a la que deseas realizar la conmutación por error. Por ejemplo, si asia-south1 (Bombay) no está en buen estado y deseas realizar la conmutación por error a asia-south2 (Delhi), ingresa asia-south2. Asegúrate de que SERVING_LOCATION sea la región en buen estado. Si eliges una región incorrecta para la conmutación por error, la base de datos dejará de estar disponible, lo que no se puede recuperar hasta que la región vuelva a estar en línea.

Marcas opcionales:

  • --etag=ETAG: El argumento ETAG se puede usar para la protección contra la repetición.

Para verificar el estado de la operación de cambio de quórum, ejecuta el comando gcloud spanner databases describe. El campo quorumInfo proporciona información sobre la operación.

gcloud spanner databases describe DATABASE_ID
    --instance=INSTANCE_ID

Cambia el quórum de birregión de una sola región a birregión (conmutación por error)

Para realizar la conmutación por recuperación de forma manual después de que la región afectada esté en buen estado o después de que se resuelva el problema de partición de red, haz lo siguiente:

  1. Ve a la página Instancias de Spanner en la consola de Google Cloud.

    Ir a la página Instancias

  2. Haz clic en el nombre de la instancia que tiene una configuración de región doble.

  3. Haz clic en Estadísticas del sistema en el menú de navegación.

  4. Busca la métrica Línea de tiempo del estado del quórum birregional.

  5. En la línea de tiempo del estado del quórum birregional, haz clic en Cambiar quórum de región.

    Se abrirá Cloud Shell.

  6. Para cambiar el quórum de dos regiones a una sola, ingresa el siguiente comando que se encuentra en la pestaña de la CLI de gcloud: gcloud spanner databases change-quorum. Para obtener instrucciones detalladas, consulta la pestaña gcloud.

Usa el comando gcloud spanner databases change-quorum para cambiar el quórum de región doble de una sola región a dos regiones.

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

Reemplaza lo siguiente:

  • DATABASE_ID: Es el identificador permanente de la base de datos.

  • INSTANCE_ID: Identificador permanente de la instancia.

Marcas opcionales:

  • --etag=ETAG: El argumento ETAG se puede usar para el control de simultaneidad optimista.

Para verificar el estado de la operación de cambio de quórum, ejecuta el comando gcloud spanner databases describe. El campo quorumInfo proporciona información sobre la operación.

gcloud spanner databases describe DATABASE_ID
    --instance=INSTANCE_ID

¿Qué sigue?