Usar la recuperación ante desastres (DR) avanzada

En esta página, se describe cómo usar la recuperación ante desastres (DR) avanzada. La DR avanzada proporciona dos capacidades principales:

  • La conmutación por error de réplica te permite conmutar por error la instancia principal a la réplica de DR de inmediato en caso de una falla regional.
  • El cambio te permite revertir las funciones de la instancia principal y una réplica de DR sin pérdida de datos. Puedes usar el cambio para restablecer una implementación a su estado de implementación original después de la conmutación por error de la réplica o puedes usar el cambio para probar la DR.

La DR avanzada solo es compatible con las instancias de edición de Cloud SQL Enterprise Plus.

Antes de comenzar

Si planeas usar el SDK de Google Cloud, debes usar la versión 470.0.0 o una posterior y los comandos de gcloud beta. Para verificar la versión del SDK de Google Cloud, ejecuta gcloud --version. Para inicializar el SDK de Google Cloud, debes ejecutar gcloud components update.

Para instalar el SDK de Google Cloud, consulta Instala la CLI de gcloud.

Designa una réplica de DR

Para realizar una DR avanzada, primero debes designar una réplica de DR entre regiones.

Requisitos de réplica de DR

La réplica de lectura de DR designada debe cumplir con los siguientes requisitos:

  • Debe ser una instancia de edición de Cloud SQL Enterprise Plus
  • Debe ser la misma versión principal y secundaria de la base de datos que la instancia principal que ejecuta MySQL 8.0.31 o una versión posterior.
  • Debe estar en una región independiente de la instancia principal
  • Debe ser una réplica de lectura directa. No puede ser una réplica en cascada
  • Además de usar los valores predeterminados, la réplica de DR no puede tener ninguna de las siguientes marcas configuradas:
    • replicate_do_db
    • replicate_ignore_db
    • replicate_do_table
    • replicate_wild_do_table
    • replicate_ignore_table
    • replicate_wild_ignore_table
  • Debe almacenar los registros de transacciones que se usan para la PITR en Cloud Storage
  • No puede ser una réplica externa

Recomendaciones de réplicas de DR

En esta sección, se proporcionan recomendaciones para tu réplica de DR. Las siguientes recomendaciones pueden ayudarte a evitar problemas de rendimiento en tu implementación:

  • Usa el mismo tamaño de disco que la instancia principal o habilita el crecimiento automático.
  • Usa una configuración de HA coherente. Si habilitas la alta disponibilidad en la instancia principal, también habilítala en la réplica de DR.
  • Usa una configuración de caché de datos coherente. Si habilitas la caché de datos en la instancia principal, también habilita la caché de datos en la réplica de DR.
  • Configura las marcas de base de datos adecuadas para tu réplica de DR antes y después de cualquier operación de cambio o réplica de conmutación por error.

Crea una réplica para satisfacer los requisitos de réplica de DR

Si la instancia principal aún no tiene una réplica de lectura entre regiones que satisfaga los requisitos de la réplica de DR, crea una.

Console

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca la instancia principal.
  3. En la columna Acciones, haz clic en el menú Más acciones.
  4. Selecciona Crear réplica de lectura.
  5. En el campo ID de instancia, ingresa un nombre para la réplica de DR.
  6. En el campo Versión de la base de datos, MySQL 8.0 ya está seleccionado.
  7. En el campo Versión secundaria, conserva la versión secundaria preseleccionada. La réplica de DR y la instancia principal deben compartir la misma versión secundaria de la base de datos.
  8. En la sección Elige una región y una disponibilidad zonal de la página, haz lo siguiente:
    • Selecciona una región diferente a la de tu instancia principal.
    • Opcional. Selecciona Varias zonas para la réplica de DR.
    • Opcional. Selecciona las opciones Principales y Secundarias para la réplica de DR.
  9. En la sección Personaliza tu instancia de la página, puedes actualizar la configuración de tu réplica de DR. Para obtener más detalles sobre cada parámetro de configuración, consulta la página Acerca de la configuración de instancias.
  10. En Formas de máquina, selecciona el mismo tipo de máquina que la instancia principal.
  11. En Marcas, configura las marcas necesarias para tu base de datos.
  12. Haz clic en Crear réplica.

Cloud SQL crea una copia de seguridad de la instancia principal y crea la réplica. Volverás a la página de la instancia principal.

gcloud

Para crear una réplica que cumpla con los requisitos de una réplica de DR, ejecuta el siguiente comando:

gcloud sql instances create REPLICA_NAME \
   --master-instance-name=PRIMARY_INSTANCE_NAME \
   --region=REPLICA_REGION_NAME \
   --database-version=DATABASE_VERSION \
   --tier=MACHINE_TYPE \
   --availability-type=AVAILABILITY_TYPE
   --edition="ENTERPRISE_PLUS"

Reemplaza las siguientes variables:

  • REPLICA_NAME: Es el nombre de la réplica de DR.
  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
  • REPLICA_REGION_NAME: especifica una región diferente a la de la instancia principal.
  • DATABASE_VERSION: especifica la cadena de versión que coincida con la versión principal y secundaria de la base de datos de la instancia principal, por ejemplo, MYSQL_8_0_31.

    Las versiones principal y secundaria de la base de datos deben ser las mismas para la réplica principal y la de DR.

  • MACHINE_TYPE: Especifica el mismo tipo de máquina que la instancia principal. Recomendamos que el tipo de máquina coincida con el de la instancia principal.
  • AVAILABILITY_TYPE: Si la instancia principal está configurada para alta disponibilidad, te recomendamos que especifiques REGIONAL para habilitar la alta disponibilidad.
  • EDITION: Especifica ENTERPRISE_PLUS.

REST v1

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

  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
  • PROJECT_ID: Es el ID o número del proyecto de Google Cloud de la instancia principal y la réplica de DR.
  • La cadena de versión DATABASE_VERSION: que coincide con las versiones principal y secundaria de la base de datos de la instancia principal, por ejemplo, MYSQL_8_0_31. Las versiones principales y secundarias de la base de datos deben ser las mismas para la réplica principal y la de DR.
  • REPLICA_NAME: Es el nombre de la instancia de réplica de DR que crearás.
  • REPLICA_REGION: la región de la instancia de réplica de DR. La región de la réplica debe ser diferente de la región de la instancia principal.
  • MACHINE_TYPE: Especifica el mismo tipo de máquina que la instancia principal. Te recomendamos que selecciones el mismo tipo de máquina que la instancia principal.
  • AVAILABILITY_TYPE: Si la instancia principal está configurada para alta disponibilidad, te recomendamos que especifiques REGIONAL con el fin de habilitar la alta disponibilidad.

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Cuerpo JSON de la solicitud:

{
  "masterInstanceName": "PRIMARY_INSTANCE_NAME",
  "project": "PROJECT_ID",
  "databaseVersion": "DATABASE_VERSION",
  "name": "REPLICA_NAME",
  "region": "REPLICA_REGION",
  "settings":
  {
    "tier": "MACHINE_TYPE",
    "availabilityType": "AVAILABILITY_TYPE",
    "settingsVersion": 0,
    "replicationType": "ASYNCHRONOUS",
  }
}

Para enviar tu solicitud, expande una de estas opciones:

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

REST v1beta4

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

  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
  • PROJECT_ID: Es el ID o número del proyecto de Google Cloud de la instancia principal y la réplica de DR.
  • La cadena de versión DATABASE_VERSION: que coincide con las versiones principal y secundaria de la base de datos de la instancia principal, por ejemplo, MYSQL_8_0_31. Las versiones principales y secundarias de la base de datos deben ser las mismas para la réplica principal y la de DR.
  • REPLICA_NAME: Es el nombre de la instancia de réplica de DR que crearás.
  • REPLICA_REGION: la región de la instancia de réplica de DR. La región de la réplica debe ser diferente de la región de la instancia principal.
  • MACHINE_TYPE: Especifica el mismo tipo de máquina que la instancia principal. Recomendamos que el tamaño del disco coincida con el de la instancia principal.
  • AVAILABILITY_TYPE: Si la instancia principal está configurada para alta disponibilidad, te recomendamos que especifiques REGIONAL con el fin de habilitar la alta disponibilidad.

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances

Cuerpo JSON de la solicitud:

{
  "masterInstanceName": "PRIMARY_INSTANCE_NAME",
  "project": "PROJECT_ID",
  "databaseVersion": "DATABASE_VERSION",
  "name": "REPLICA_NAME",
  "region": "REPLICA_REGION",
  "settings":
  {
    "tier": "MACHINE_TYPE",
    "availabilityType": "AVAILABILITY_TYPE",
    "settingsVersion": 0,
    "replicationType": "ASYNCHRONOUS",
  }
}

Para enviar tu solicitud, expande una de estas opciones:

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

Designa la réplica de DR para la instancia principal

En los siguientes procedimientos, se describe cómo designar una de las réplicas entre regiones de una instancia principal como una réplica de DR para el cambio o la conmutación por error de réplica.

Console

Para designar una réplica de DR para una instancia principal, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca y selecciona la instancia principal. Aparecerá la página Descripción general de la instancia principal.
  3. En el menú de navegación, haz clic en Réplicas.
  4. En la lista de réplicas de lectura, busca la réplica de lectura entre regiones que deseas designar como réplica de DR.
  5. Para la réplica, haz clic en el botón more_vert Acciones y selecciona Designar como réplica de DR.
  6. Haz clic en Confirmar.

gcloud

Para designar una réplica de DR a una instancia principal, usa el siguiente comando:

gcloud beta sql instances patch PRIMARY_INSTANCE_NAME \
   --failover-dr-replica-name=REPLICA_NAME

Reemplaza las siguientes variables:

  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
  • REPLICA_NAME: Es el nombre de la réplica de DR.

REST v1

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

  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
  • REPLICA_NAME: Es el nombre de la réplica de DR.

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Cuerpo JSON de la solicitud:

{
  "replicationCluster": {
     "failoverDrReplicaName": "REPLICA_NAME"
   }
}

Para enviar tu solicitud, expande una de estas opciones:

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

REST v1beta4

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

  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
  • REPLICA_NAME: Es el nombre de la réplica de DR.

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Cuerpo JSON de la solicitud:

{
  "replicationCluster": {
     "failoverDrReplicaName": "REPLICA_NAME"
   }
}

Para enviar tu solicitud, expande una de estas opciones:

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

Cambia la designación de la réplica de DR

Si la réplica cumple con los requisitos, puedes designar una réplica diferente como réplica de DR. La réplica de DR anterior pierde la designación de réplica de DR.

Console

Para cambiar la réplica de DR de una instancia principal, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca y selecciona la instancia principal. Aparecerá la página Descripción general de la instancia principal.
  3. En el menú de navegación, haz clic en Réplicas.
  4. En la lista de réplicas de lectura, busca la réplica de lectura entre regiones que deseas designar como nueva réplica de DR.
  5. Para la réplica, haz clic en el botón more_vert Acciones y selecciona Designar como réplica de DR.

gcloud

Para cambiar la réplica de DR, vuelve a ejecutar el comando de designación y especifica una réplica de DR diferente.

REST

Para cambiar la réplica de DR, vuelve a realizar la solicitud a la API de designación y especifica una réplica de DR diferente.

Visualiza la designación de réplica de DR

Puedes verificar qué réplica de DR se asigna a la instancia principal con la CLI de gcloud o la API de Cloud SQL Admin. También puedes verificar si una réplica es una réplica de DR designada.

A fin de averiguar qué réplica de DR se designa para una instancia principal, usa el siguiente procedimiento.

Console

Para averiguar qué réplica de lectura es la réplica de DR designada de una instancia principal, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca y selecciona la instancia principal. Aparecerá la página Descripción general de la instancia principal.
  3. En el menú de navegación, haz clic en Réplicas.
  4. En la lista de réplicas de lectura, verifica que MySQL disaster recovery replica aparezca en la columna Tipo de la réplica de DR designada.

gcloud

Para averiguar qué instancia es la réplica de DR designada de una instancia principal, usa el siguiente comando:

gcloud beta sql instances describe PRIMARY_INSTANCE_NAME

Reemplaza la siguiente variable:

  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.

El resultado de este comando contiene el campo llamado failoverDrReplica, que identifica la réplica de DR designada.

REST v1

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

  • PROJECT_ID: Es el ID o el número del proyecto de Google Cloud que contiene la instancia.
  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Para enviar tu solicitud, expande una de estas opciones:

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

REST v1beta4

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

  • PROJECT_ID: Es el ID o el número del proyecto de Google Cloud que contiene la instancia.
  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Para enviar tu solicitud, expande una de estas opciones:

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

Para verificar si una réplica es una réplica de DR, usa uno de los siguientes procedimientos.

Console

Para verificar si una instancia de réplica es una réplica de DR, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca la instancia de réplica.
  3. Verifica que MySQL disaster recovery replica aparezca en la columna Tipo para la réplica de DR designada.

gcloud

Para verificar si una instancia de réplica es una réplica de DR, ejecuta el siguiente comando:

gcloud beta sql instances describe REPLICA_NAME

Reemplaza la siguiente variable:

  • REPLICA_NAME: Es el nombre de la réplica de lectura que deseas verificar

Si la réplica es una réplica de DR, el resultado del comando contiene el campo drReplica=true.

REST v1

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

  • PROJECT_ID: Es el ID o el número del proyecto de Google Cloud que contiene la instancia.
  • REPLICA_NAME: Es el nombre de la réplica.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME

Para enviar tu solicitud, expande una de estas opciones:

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

REST v1beta4

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

  • PROJECT_ID: Es el ID o el número del proyecto de Google Cloud que contiene la instancia.
  • REPLICA_NAME: Es el nombre de la réplica.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME

Para enviar tu solicitud, expande una de estas opciones:

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

Quita la réplica de DR

Puedes borrar la designación de réplica de DR de una instancia principal. Sin embargo, si no se asigna una réplica de DR a una instancia principal, no puedes realizar un cambio o una conmutación por error de réplica.

Console

Para quitar una réplica de DR designada de una instancia principal, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca y selecciona la instancia principal. Aparecerá la página Descripción general de la instancia principal.
  3. En el menú de navegación, haz clic en Réplicas.
  4. En la lista de réplicas de lectura, busca la réplica de lectura entre regiones que deseas quitar.
  5. Para la réplica, haz clic en el botón more_vert Acciones y selecciona Quitar como réplica de DR.
  6. Haz clic en Confirmar.

gcloud

Para quitar la designación de réplica de DR, ejecuta el siguiente comando en la instancia principal:

gcloud beta sql instances patch PRIMARY_INSTANCE_NAME \
  --clear-failover-dr-replica-name

Reemplaza la siguiente variable:

  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal de la que deseas quitar la réplica de DR designada.

REST v1

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

  • PROJECT_ID: Es el ID o número del proyecto de Google Cloud de la instancia principal y la réplica de DR.
  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
  • Configura el campo failoverDrReplicaName en una cadena vacía.

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Cuerpo JSON de la solicitud:

{
  "replicationCluster": {
     "failoverDrReplicaName": ""
   }
}

Para enviar tu solicitud, expande una de estas opciones:

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

REST v1beta4

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

  • PROJECT_ID: Es el ID o número del proyecto de Google Cloud de la instancia principal y la réplica de DR.
  • PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
  • Configura el campo failoverDrReplicaName en una cadena vacía.

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Cuerpo JSON de la solicitud:

{
  "replicationCluster": {
     "failoverDrReplicaName": ""
   }
}

Para enviar tu solicitud, expande una de estas opciones:

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

Realiza un cambio

Una vez que hayas designado una réplica de DR, puedes realizar la operación de cambio. Sin embargo, se recomienda evitar realizar la operación de cambio en las siguientes circunstancias:

  • La instancia principal se en uso de forma activa.
  • Las operaciones de administrador están en curso, como la copia de seguridad automática, la habilitación o inhabilitación de la alta disponibilidad (HA).

Para evitar el tiempo de espera, considera realizar un cambio cuando el volumen de transacciones sea bajo.

Cuando se completa el cambio, la operación realiza una copia de seguridad de la nueva instancia principal (la réplica de DR anterior) en cuanto se asciende la nueva instancia principal. Una vez que se complete esta copia de seguridad, la recuperación de un momento determinado (PITR) está habilitada por completo en la instancia principal nueva. Esta copia de seguridad puede tardar entre 5 y 15 minutos en completarse según el tamaño del disco. La cobertura de la PITR comienza solo después de que se completa esta copia de seguridad. Para obtener más información sobre las consideraciones del uso de la PITR con DR avanzada, consulta Usa la PITR con DR avanzada.

Una vez que se complete la operación de cambio, verás que se revierte la dirección de replicación.

Antes de comenzar

Antes de realizar la operación de cambio, haz lo siguiente:

  • Designa una réplica de DR. Solo puedes realizar un cambio entre la instancia principal y la réplica de DR designada.
  • Verifica que la instancia principal y la réplica de DR estén en línea.
  • Realiza una copia de seguridad a pedido de la instancia principal. Esta copia de seguridad es una medida de precaución en caso de que necesites recuperarlas ante cualquier falla inesperada.

Realiza la operación de cambio

Console

Para realizar la operación de cambio, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca la réplica de DR designada de la instancia principal.
  3. Haz clic en la instancia de réplica de DR. Aparecerá la página Descripción general de la réplica de DR.
  4. Haz clic en el botón Cambiar.
  5. En la página Realizar el cambio entre la réplica de lectura principal y la de DR, ingresa el nombre de la instancia principal en el campo ID de instancia.
  6. Haz clic en Cambio.

gcloud

Para realizar la operación de cambio, ejecuta el siguiente comando:

gcloud beta sql instances switchover REPLICA_NAME
   [--db-timeout=TIMEOUT_DURATION ]

Reemplaza las siguientes variables:

  • REPLICA_NAME: Es el nombre de la réplica de DR designada con la que deseas que cambie la instancia principal.
  • TIMEOUT_DURATION: opcional. El tiempo de espera para permitir que se completen las operaciones de base de datos en la instancia.
  • Si no especificas este parámetro, la operación de cambio incluye un tiempo de espera de 10 minutos.

    Puedes aumentar el valor de este tiempo de espera si especificas el parámetro --db-timeout. Reemplaza TIMEOUT_DURATION por un período de hasta 24 horas, incluida una notación inicial para el formato. Por ejemplo, para 30 segundos, especifica 30s. Para 24 horas, especifica 24h. También puedes especificar unidades fraccionarias de tiempo con decimales de hasta 9 lugares. Por ejemplo, para 30.5 minutos, especifica 30.5m.

    Si no tienes ninguna operación pendiente, puedes disminuir el valor de este tiempo de espera.

REST v1

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

  • PROJECT_ID: Es el ID o el número del proyecto de Google Cloud de la instancia principal y la réplica de DR.
  • REPLICA_NAME: Es el nombre de la réplica de DR.

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME/switchover

Para enviar tu solicitud, expande una de estas opciones:

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

REST v1beta4

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

  • PROJECT_ID: Es el ID o el número del proyecto de Google Cloud de la instancia principal y la réplica de DR.
  • REPLICA_NAME: Es el nombre de la réplica de DR.

Método HTTP y URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME/switchover

Para enviar tu solicitud, expande una de estas opciones:

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

Realiza una DR con la invocación de una conmutación por error de réplica

En caso de una falla regional o un desastre, puedes realizar la DR si invocas una operación de conmutación por error de réplica a la réplica de DR designada. Para realizar una conmutación por error de réplica, debes ascender la réplica de DR designada. A diferencia del cambio, la promoción de la réplica de DR es inmediata.

Dado que la réplica de DR asume la función de la instancia principal de inmediato, es posible que la réplica no tenga todos los datos de la instancia principal anterior por el retraso de la replicación. Por esta razón, una conmutación por error de réplica puede generar la pérdida de datos.

Como parte del proceso de promoción, la conmutación por error de réplica realiza una copia de seguridad de la nueva instancia principal (la réplica de DR anterior) justo después de que esta se convierta en la nueva instancia principal. Una vez que se completa esta copia de seguridad, la recuperación de un momento determinado (PITR) está habilitada por completo en la instancia principal nueva. Esta copia de seguridad puede tardar entre 5 y 15 minutos en completarse, según el tamaño del disco de la instancia principal nueva (y anterior). Durante este período de copia de seguridad, la PITR no está disponible.

Cuando la instancia principal anterior vuelve a estar en línea, el proceso de conmutación por error de la réplica realiza una copia de seguridad. Después de realizar esta copia de seguridad, la instancia principal anterior se vuelve a crear como una réplica de lectura de la instancia principal nueva. En este proceso, la instancia principal anterior pierde todos los registros de transacciones de la PITR antiguos que aún no se guardaron en Cloud Storage. Por lo tanto, la conmutación por error de réplicas no garantiza que se conserven todos los registros de transacciones que se usaron para PITR en la instancia principal anterior.

Para obtener más información sobre las consideraciones del uso de la PITR con DR avanzada, consulta Usa la PITR con DR avanzada.

Importante: Después de invocar la operación de conmutación por error de réplica, apunta las aplicaciones para que usen la dirección IP de la instancia principal nueva.

Antes de comenzar

Antes de realizar una conmutación por error de réplica, haz lo siguiente:

  • Si aún no lo hiciste, designa una réplica de DR. Solo puedes realizar una conmutación por error de réplica entre la instancia principal y la réplica de DR designada.
  • Asegúrate de que la réplica de DR esté en línea y en buen estado.

Realiza la operación de conmutación por error de la réplica

Console

Para realizar la operación de conmutación por error de la réplica, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca la réplica de DR designada de la instancia principal.
  3. Haz clic en la instancia de réplica de DR. Aparecerá la página Descripción general de la réplica de DR.
  4. Haz clic en el botón Conmutación por error de réplica.
  5. En la página Realizar una conmutación por error de réplica entre la réplica de lectura principal y la de DR, ingresa el nombre de la instancia principal en el campo ID de instancia para confirmar que quieres deseas continuar con la operación.
  6. Para iniciar la conmutación por error de la réplica, haz clic en Conmutación por error de réplica.

gcloud

Para invocar una conmutación por error de réplica en la réplica de DR, usa el siguiente comando:

gcloud beta sql instances promote-replica \
   REPLICA_NAME --failover

Reemplaza la siguiente variable:

  • REPLICA_NAME: Es el nombre de la réplica de DR.

REST v1

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

  • PROJECT_ID: Es el ID o número del proyecto de Google Cloud de la instancia principal y la réplica de DR.
  • REPLICA_NAME: Es el nombre de la réplica de DR.
  • ENABLE_REPLICA_FAILOVER: Se establece en true para usar la conmutación por error de réplica. Si lo estableces en false, la API usará el método promoteReplica normal sin conmutación por error de réplica.

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME/promoteReplica?failover=ENABLE_REPLICA_FAILOVER

Para enviar tu solicitud, expande una de estas opciones:

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

REST v1beta4

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

  • PROJECT_ID: Es el ID o número del proyecto de Google Cloud de la instancia principal y la réplica de DR.
  • REPLICA_NAME: Es el nombre de la réplica de DR.
  • ENABLE_REPLICA_FAILOVER: Se establece en true para usar la conmutación por error de réplica. Si lo estableces en false, la API usará el método promoteReplica normal sin conmutación por error de réplica.

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME/promoteReplica?failover=ENABLE_REPLICA_FAILOVER

Para enviar tu solicitud, expande una de estas opciones:

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

Verifica el estado de una conmutación por error de réplica

La conmutación por error de réplicas ocurre en dos fases. La primera fase es el ascenso de la réplica de DR. La segunda fase es la recreación de la instancia principal anterior como una réplica de lectura.

Para verificar el estado de la conmutación por error de la réplica, verifica el estado de cada fase.

  1. Verifica el estado de la primera fase.

    Console

    Para verificar si la réplica de DR se ascendió a una instancia independiente, haz lo siguiente:

    1. En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

      Ir a Instancias de Cloud SQL

    2. Busca el nombre de la réplica de DR que promoviste.
    3. Verifica que MySQL 8.0 aparezca en la columna Tipo para la instancia principal nueva.

    gcloud

    Para verificar el estado, ejecuta el siguiente comando:

    gcloud sql instances describe DR_REPLICA_NAME

    Reemplaza la siguiente variable:

    • DR_REPLICA_NAME: el nombre de la réplica de DR que se ascendió

    En el resultado, verifica que aparezca el siguiente campo y que la réplica se haya convertido en una instancia principal de Cloud SQL independiente:

    instanceType: CLOUD_SQL_INSTANCE
    

  2. Para verificar la finalización de la segunda fase, comprueba el registro de operaciones en la instancia para el mensaje RECONFIGURE_OLD_PRIMARY.

    La apariencia de este mensaje depende del momento en que la instancia principal anterior se muestra en línea, lo que puede tardar minutos o días en caso de que ocurra un desastre.

    Para obtener más información sobre cómo verificar los registros de operaciones en una instancia, consulta Visualiza registros de instancia.

Usa la PITR con DR avanzada

Con el cambio y la conmutación por error de réplica, cuando la réplica de DR se asciende a una instancia principal, se producen los siguientes cambios para admitir la copia de seguridad y PITR:

  • La configuración de copia de seguridad, incluida cualquier programación de copia de seguridad automática, se copia de la instancia principal anterior a la nueva.
  • Si se inhabilita, la marca de configuración de binlog se activa para habilitar la PITR.
  • Se realiza una copia de seguridad nueva para admitir la PITR en la instancia principal nueva.
  • La política de retención de registros de transacciones se copia de la instancia principal anterior a la nueva instancia principal.

Para la configuración de copia de seguridad y las políticas de retención de registros de transacciones, te recomendamos que verifiques que la configuración heredada de la instancia principal anterior sea correcta para la nueva instancia principal.

Inicia la cobertura de la PITR

Al final de la operación de cambio, Cloud SQL programa copias de seguridad automáticas y realiza la primera copia de seguridad de la instancia principal nueva. Si deseas que la cobertura de la PITR comience más temprano que tarde, te recomendamos que verifiques que la primera copia de seguridad se realice de forma correcta. La instancia principal que se acaba de ascender tiene cobertura de la PITR solo después de que la primera copia de seguridad automática se haya completado de forma correcta.

Si quieres obtener más información sobre cómo ver las copias de seguridad disponibles para una instancia, consulta Visualiza una lista de copias de seguridad.

Cobertura de la PITR para las instancias durante el cambio y la conmutación por error de réplica

Cuando una instancia participa en un cambio o en una operación de conmutación por error de réplica, la instancia pasa tiempo como réplica de lectura. La PITR y el restablecimiento de una copia de seguridad son compatibles durante el período que la instancia pasa como réplica de lectura. Si deseas realizar la PITR en un momento determinado antes de que ocurra el evento de cambio (cuando la instancia era principal), puedes emitir el comando de clonación para orientarte al momento en que la instancia era principal. No puedes solicitar la PITR a una hora en la que la instancia era una réplica de lectura.

Si no puedes realizar la PITR porque la instancia principal era una réplica de lectura en el momento del interés, debes intentar realizar la solicitud de la PITR en la instancia que era la instancia principal que actuaba en el momento del interés.

Del mismo modo, puedes restablecer una copia de seguridad que se realizó en un momento en el que la réplica era una instancia principal. Si bien la instancia es una réplica, el comando de restablecimiento debe orientarse a una instancia independiente diferente y no se puede restablecer en la réplica.

Para determinar qué instancia usar para la solicitud de la PITR, usa la lista de operaciones. La lista de operaciones de una instancia puede ayudar a determinar cuándo una instancia se sometió a operaciones de cambio o réplica de conmutación por error.

Cerebro dividido durante la conmutación por error de réplica

Es posible que se produzca un cerebro dividido cuando la instancia principal siga aceptando operaciones de escritura mientras se asciende una réplica con la conmutación por error de réplicas. Una vez que la réplica asciende, cuando la instancia principal anterior vuelve a estar disponible, se vuelve a compilar como una réplica de la instancia ascendida y se realiza una copia de seguridad final. Esta copia de seguridad se puede usar para recuperar los datos de cerebro dividido que no se escribieron en la réplica promocionada.

Borra copias de seguridad y registros de transacciones en réplicas

Si una instancia principal que se habilitó con la PITR y las copias de seguridad se convierte en una réplica de lectura, se conserva la última política de copia de seguridad y retención de la PITR de su tiempo como instancia principal y se aplica durante su tiempo como réplica. Aunque la instancia principal nueva no realiza copias de seguridad, las copias de seguridad y los registros de transacciones antiguos que se usaron para PITR se borran en la réplica de lectura según la última política configurada.

Por ejemplo, si la instancia está configurada para tener copias de seguridad automáticas diarias y conservar 7 copias de seguridad con 7 días de registros de PITR, cuando esta instancia se convierte en una réplica de lectura, todo lo que tenga más de 7 días se borra una vez al día.

Si necesitas borrar las copias de seguridad antes, puedes quitarlas de forma manual. Para obtener más información, consulta Borra una copia de seguridad.

Limitaciones

  • La DR avanzada no es compatible con las instancias de Cloud SQL que usan Private Service Connect.
  • No puedes designar una instancia de réplica de lectura de Cloud SQL Enterprise Plus como réplica de DR si la instancia principal almacena sus registros de transacciones para la recuperación de un momento determinado (PITR) en el disco. Si quieres verificar dónde almacena una instancia sus registros para la PITR, consulta Verifica la ubicación de almacenamiento de los registros de transacciones que se usan para la PITR.
  • No puedes designar una réplica externa como una réplica de DR.

Solucionar problemas

Problema Soluciona problemas
No se pudo realizar la operación de cambio.
  • Asegúrate de que la instancia cumpla con todos los requisitos de réplica de DR establecidos.
  • Verifica el volumen de transacciones en la base de datos. El cambio protege los registros binarios de la instancia principal en Cloud Storage antes de realizar el cambio. Si el volumen de transacciones es alto, la operación puede agotar el tiempo de espera. Considera volver a intentar realizar la operación cuando la carga de la transacción sea menor.
La operación de cambio falló y la instancia principal está atascada en modo de solo lectura. Realiza un reinicio de la base de datos para que la instancia principal vuelva al modo de escritura.
Se completó la operación de cambio, pero la consola de Google Cloud no muestra los nuevos roles revertidos para las instancias. Actualiza el navegador para mostrar la topología actualizada.
Falló la operación de conmutación por error de réplica.
  • Asegúrate de que se designe una réplica de DR para la instancia principal y que esté en línea.
  • Si falla la conmutación por error de réplica de DR, asciende a una réplica de lectura normal (que no sea de DR).
No se puede saber si no se produce la replicación Conéctate a la réplica y escribe lo siguiente:
show slave status;
  • Si se produce una replicación, la primera columna “Slave_IO_State” muestra “Waiting for master to send event” y el campo “Last_IO_Error” está vacío.
  • Si no ocurre una replicación, la primera columna "Slave_IO_State" muestra "Connecting to master". y el campo "Last_IO_Error" muestra un error similar a "error connecting to master 'cloudsqlreplica@x.x.x.x:3306".

También puedes ver el estado de replicación de las réplicas en el panel de supervisión de Cloud SQL. Para obtener más información, consulta Supervisa instancias de Cloud SQL.

Recibiste el siguiente mensaje de error:

"Instance was converted into a replica between the target PITR time and the last available base backup. PITR logs are not available for the period instance was a replica. Please clone from the instance that was primary at time %s"

No puedes realizar la PITR durante un período en el que una instancia se cambió a una réplica. Los registros de la PITR no están disponibles para el período en el que la instancia era una réplica.

  • Revisa la lista de operaciones de la instancia para determinar si era una réplica en ese momento.
  • Usa la lista de operaciones para determinar qué instancia fue la instancia principal en ese momento.
  • Clonar esa instancia para realizar la PITR.

Recibiste el siguiente mensaje de error:

"You can only designate a disaster recovery (DR) replica for primary instances that are storing their PITR logs in Cloud Storage. PITR logs of the instance %s are not stored in Cloud Storage"

La instancia principal aún no cambió la ubicación de almacenamiento de sus registros de transacciones a Cloud Storage. Puedes volver a intentarlo después de que se cambie la ubicación de almacenamiento de los registros de transacciones o bien puedes intentar designar una réplica de DR para una instancia principal diferente.

Para obtener más información sobre cómo mover la ubicación de almacenamiento de los registros de transacciones que se usan para la PITR, consulta Usa la recuperación de un momento determinado (PITR).

Recibiste el siguiente mensaje de error:

"The specified failover dr replica name REPLICA_NAME must be one of the replicas of the primary instance INSTANCE_NAME."

Para obtener más información sobre cómo designar una réplica de DR y la sintaxis del comando correcta, consulta Designa la réplica de DR para la instancia principal.

¿Qué sigue?