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 502.0.0 o una posterior. Para verificar la versión del SDK de Google Cloud, ejecuta gcloud --version
. Para actualizar
el SDK de Google Cloud, ejecuta 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 la instancia principal
La instancia principal debe ser una instancia de la edición de Cloud SQL Enterprise Plus y tener una réplica de DR designada.
Si creas tu instancia de Cloud SQL con un extremo de escritura de DNS (versión preliminar), tu instancia principal debe tener la misma configuración de SSL que la réplica de DR designada antes de invocar la operación de cambio o conmutación por error de réplica. Por ejemplo, si configuras tu réplica de DR para que aplique la encriptación SSL, pero la instancia principal permite conexiones sin encriptar, los clientes no podrán conectarse a la nueva instancia principal después de que se complete la operación de cambio o conmutación por error.
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 la edición de Cloud SQL Enterprise Plus
No se puede configurar para Private Service Connect. Sin embargo, la réplica de lectura de la DR se puede configurar para el acceso a servicios privados.
- 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
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Busca la instancia principal.
- En la columna Acciones, haz clic en el menú Más acciones.
- Selecciona Crear réplica de lectura.
- En el campo ID de instancia, ingresa un nombre para la réplica de DR.
- En el campo Versión de la base de datos, se selecciona la misma versión principal de la instancia principal.
- Si usas MySQL 8.0, 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.
- 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.
- 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.
- En Formas de máquina, selecciona el mismo tipo de máquina que la instancia principal.
- En Marcas, configura las marcas necesarias para tu base de datos.
- 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
. La versión de la base de datos debe ser la misma 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 a la 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
. La versión de la base de datos debe ser la misma 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 a la 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:
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Busca y selecciona la instancia principal. Aparecerá la página Descripción general de la instancia principal.
- En el menú de navegación, haz clic en Réplicas.
- En la lista de réplicas de lectura, busca la réplica de lectura entre regiones que deseas designar como réplica de DR.
- Para la réplica, haz clic en el botón more_vert Acciones y selecciona Designar como réplica de DR.
- Haz clic en Confirmar.
gcloud
Para designar una réplica de DR a una instancia principal, usa el siguiente comando:
gcloud 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/sql/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:
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Busca y selecciona la instancia principal. Aparecerá la página Descripción general de la instancia principal.
- En el menú de navegación, haz clic en Réplicas.
- 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.
- 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:
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Busca y selecciona la instancia principal. Aparecerá la página Descripción general de la instancia principal.
- En el menú de navegación, haz clic en Réplicas.
- 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 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:
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Busca la instancia de réplica.
- 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 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 un código de estado exitoso (2xx) y una respuesta vacía.
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/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
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:
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Busca y selecciona la instancia principal. Aparecerá la página Descripción general de la instancia principal.
- En el menú de navegación, haz clic en Réplicas.
- En la lista de réplicas de lectura, busca la réplica de lectura entre regiones que deseas quitar.
- Para la réplica, haz clic en el botón more_vert Acciones y selecciona Quitar como réplica de DR.
- Haz clic en Confirmar.
gcloud
Para quitar la designación de réplica de DR, ejecuta el siguiente comando en la instancia principal:
gcloud 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/sql/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.
Después de que tu instancia principal anterior se vuelva a configurar como una réplica de lectura, el extremo de escritura de DNS, que antes se resolvía en la instancia principal anterior, se resuelve en la instancia principal nueva.
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.
- Si usas un extremo de escritura de DNS, verifica que la configuración de SSL de la instancia principal y la réplica de DR sean las mismas. Por ejemplo, si la réplica de DR está configurada para aplicar la encriptación SSL, pero la instancia principal permite conexiones sin encriptar, los clientes no podrán conectarse a la nueva instancia principal después de que se complete la operación de cambio.
- 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:
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Busca la réplica de DR designada de la instancia principal.
- Haz clic en la instancia de réplica de DR. Aparecerá la página Descripción general de la réplica de DR.
- Haz clic en el botón Cambiar.
- 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.
- Haz clic en Cambio.
gcloud
Para realizar la operación de cambio, ejecuta el siguiente comando:
gcloud 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.
Para obtener más información sobre las consideraciones del uso de la PITR con DR avanzada, consulta Usa la PITR con DR avanzada.
Después de invocar la operación de conmutación por error de réplica, el extremo de escritura de DNS, que antes se resolvía en la instancia principal anterior, se resuelve en 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:
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Busca la réplica de DR designada de la instancia principal.
- Haz clic en la instancia de réplica de DR. Aparecerá la página Descripción general de la réplica de DR.
- Haz clic en el botón Conmutación por error de réplica.
- 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.
- 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 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 enfalse
, la API usará el métodopromoteReplica
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 enfalse
, la API usará el métodopromoteReplica
normal sin conmutación por error de réplica.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/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.
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:
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Busca el nombre de la réplica de DR que promoviste.
- Verifica que MySQL VERSION 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
-
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 y como instancia principal.
Puedes realizar la PITR en un momento anterior al cambio, cuando la instancia era una instancia principal. Para las operaciones de cambio y conmutación por error de réplica, Cloud SQL inicia una copia de seguridad del mejor esfuerzo para la instancia principal nueva en cuanto se asciende. La PITR se habilita en la instancia promocionada solo después de que se completa esta copia de seguridad. Esta copia de seguridad puede tardar entre 5 y 15 minutos en completarse, según el tamaño del disco.
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. La DR avanzada sí admite el acceso privado a servicios.
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.
Terraform no es compatible con las operaciones de cambio o réplica de conmutación por error.
Solucionar problemas
Problema | Soluciona problemas |
---|---|
No se pudo realizar la operación de cambio. |
|
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. |
|
No se puede saber si no se produce la replicación | Conéctate a la réplica y escribe lo siguiente:
show slave status;
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:
|
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.
|
Recibiste el siguiente mensaje de error:
|
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:
|
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?
- Descubre todos los servicios de Google Cloud disponibles en ubicaciones de todo el mundo.
- Lee sobre la observabilidad de la base de datos.
- Supervisa instancias de Cloud SQL