Esta página describe cómo usar la recuperación ante desastres (DR) avanzada . La DR avanzada ofrece dos funciones principales:
- La conmutación por error de réplica le permite conmutar por error su instancia principal a la réplica de DR inmediatamente en caso de una falla regional.
- La conmutación permite invertir las funciones de la instancia principal y una réplica de recuperación ante desastres sin pérdida de datos. Puede usar la conmutación para restaurar una implementación a su estado original tras la conmutación por error de la réplica o para probar la recuperación ante desastres.
La recuperación ante desastres avanzada solo se admite en instancias de la edición Cloud SQL Enterprise Plus.
Antes de empezar
Si planea usar el SDK de Google Cloud, debe usar la versión 502.0.0 o posterior. Para comprobar la versión del SDK de Google Cloud, ejecute gcloud --version
. Para actualizar el SDK de Google Cloud, ejecute gcloud components update
.
Para instalar el SDK de Google Cloud, consulte Instalar la CLI de gcloud .
Requisitos de la instancia principal
La instancia principal debe ser una instancia de la edición Cloud SQL Enterprise Plus y tener una réplica de DR designada.
Debe habilitar la recuperación a un punto en el tiempo (PITR) en la instancia principal. Para habilitarla, consulte Usar la recuperación a un punto en el tiempo (PITR) .Si crea su instancia de Cloud SQL con un punto de conexión de escritura DNS ( versión preliminar ), su instancia principal debe tener la misma configuración de SSL que la réplica de recuperación ante desastres designada antes de invocar la conmutación o la conmutación por error de la réplica. Por ejemplo, si configura su réplica de recuperación ante desastres para aplicar el cifrado SSL , pero la instancia principal permite conexiones sin cifrar, los clientes no podrán conectarse a la nueva instancia principal una vez finalizada la conmutación o la conmutación por error.
Requisitos de réplica de DR
La réplica de lectura de DR designada debe cumplir los siguientes requisitos:
- Debe ser una instancia de la edición Cloud SQL Enterprise Plus
- Debe ser la misma versión de base de datos que la instancia principal, ejecutando PostgreSQL 12 o posterior
Debe estar en una región separada de la instancia principal
Debe ser una réplica de lectura directa; no puede ser una réplica en cascada
Si se configura con un indicador que requiere que la réplica tenga un valor mayor o igual que la instancia principal, entonces el indicador debe configurarse con un valor igual al de la instancia principal.
No se puede tener configurada la bandera
cloudsql.logical_decoding
; no se pueden configurar ranuras lógicas ni replicación lógica
Debe almacenar los registros de transacciones utilizados para PITR en el almacenamiento en la nube
No puede ser una réplica externa
Recomendaciones de réplicas de DR
Esta sección ofrece recomendaciones para su réplica de recuperación ante desastres. Las siguientes recomendaciones pueden ayudarle a evitar problemas de rendimiento en su implementación:
- Utilice el mismo tamaño de disco que la instancia principal o habilite el crecimiento automático.
- Utilice una configuración de alta disponibilidad (HA) consistente. Si habilita la HA en la instancia principal, habilítela también en la réplica de recuperación ante desastres.
- Utilice una configuración de caché de datos consistente. Si habilita la caché de datos en la instancia principal, habilítela también en la réplica de recuperación ante desastres.
- Configure los indicadores de base de datos adecuados para su réplica de DR antes y después de cualquier operación de conmutación o conmutación por error de réplica.
Cree 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 réplica de DR, cree una.
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Encuentra la instancia principal.
- En la columna Acciones , haga clic en el menú Más acciones .
- Seleccione Crear réplica de lectura .
- En el campo ID de instancia , ingrese un nombre para la réplica de DR .
- En el campo Versión de la base de datos , se selecciona para usted la misma versión principal de la instancia principal.
- En la sección Elija una región y disponibilidad zonal de la página, haga lo siguiente:
- Seleccione una región _diferente_ a la región de su instancia principal.
- Opcional. Seleccione Varias zonas para la réplica de recuperación ante desastres.
- Opcional. Seleccione las zonas primaria y secundaria para la réplica de recuperación ante desastres.
- En la sección "Personalizar su instancia" de la página, puede actualizar la configuración de su réplica de recuperación ante desastres. Para obtener más información sobre cada configuración, consulte la página " Acerca de la configuración de la instancia" .
- Para Formas de máquina , seleccione el mismo tipo de máquina que su instancia principal.
- Para Banderas , configure cualquier bandera que sea necesaria para su base de datos.
- Haga clic en Crear réplica .
Cloud SQL crea una copia de seguridad de la instancia principal y la réplica. Regresará a la página de la instancia principal.
nube g
Para crear una réplica que cumpla con los requisitos de una réplica de DR, ejecute 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"
Reemplace las siguientes variables:
- REPLICA_NAME : el nombre de la réplica de DR.
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- REPLICA_REGION_NAME : especifica una región que sea diferente a la región de la instancia principal.
- DATABASE_VERSION : especifica la cadena de versión que coincide con la versión principal y secundaria de la base de datos de la instancia principal, por ejemplo,
POSTGRES_16
.Las versiones principales y secundarias de la base de datos deben ser las mismas tanto para la réplica principal como para la réplica de DR.
- MACHINE_TYPE : especifica el mismo tipo de máquina que la instancia principal. Se recomienda que el tipo de máquina coincida con el de la instancia principal.
- AVAILABILITY_TYPE : si la instancia principal está configurada para alta disponibilidad, le recomendamos que especifique
REGIONAL
para habilitar la alta disponibilidad. - EDITION : especificar
ENTERPRISE_PLUS
.
Terraformar
Para crear una réplica de DR, utilice un recurso de Terraform .
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia principal y réplica de DR.
- DATABASE_VERSION: cadena de versión que coincide con la versión de la base de datos de la instancia principal, por ejemplo,
POSTGRES_16
. La versión de la base de datos debe ser la misma para la instancia principal y la réplica de recuperación ante desastres. - REPLICA_NAME : el nombre de la instancia de réplica de DR que está creando.
- 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. Se recomienda seleccionar el mismo tipo de máquina que la instancia principal.
- AVAILABILITY_TYPE : si la instancia principal está configurada para alta disponibilidad, le recomendamos que especifique
REGIONAL
para 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia principal y réplica de DR.
- DATABASE_VERSION: cadena de versión que coincide con la versión de la base de datos de la instancia principal, por ejemplo,
POSTGRES_16
. La versión de la base de datos debe ser la misma para la instancia principal y la réplica de recuperación ante desastres. - REPLICA_NAME : el nombre de la instancia de réplica de DR que está creando.
- 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. Se recomienda que el tamaño del disco coincida con el de la instancia principal.
- AVAILABILITY_TYPE : si la instancia principal está configurada para alta disponibilidad, le recomendamos que especifique
REGIONAL
para 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Designar la réplica de DR para la instancia principal
Los siguientes procedimientos describen cómo designar una de las réplicas entre regiones de una instancia principal como una réplica de DR para conmutación o conmutación por error de réplica.
Consola
Para designar una réplica de DR para una instancia principal, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque y seleccione la instancia principal. Aparecerá la página "Descripción general" de la instancia principal.
- En el menú de navegación, haga clic en Réplicas .
- En la lista de réplicas de lectura, busque la réplica de lectura entre regiones que desea designar como réplica de recuperación ante desastres.
- Para la réplica, haga clic en el botón Acciones more_vert y seleccione Designar como réplica de DR .
- Haga clic en Confirmar .
nube g
Para designar una réplica de DR para una instancia principal, utilice el siguiente comando:
gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --failover-dr-replica-name=REPLICA_NAME
Reemplace las siguientes variables:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- REPLICA_NAME : el nombre de la réplica de DR.
Terraformar
Para designar una réplica de DR para una instancia principal, utilice un recurso de Terraform .
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- REPLICA_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- REPLICA_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Cambiar la designación de la réplica de DR
Si la réplica cumple los requisitos, puede designar otra réplica como réplica de DR. La réplica de DR anterior pierde su designación.
Consola
Para cambiar la réplica de DR de una instancia principal, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque y seleccione la instancia principal. Aparecerá la página "Descripción general" de la instancia principal.
- En el menú de navegación, haga clic en Réplicas .
- En la lista de réplicas de lectura, busque la réplica de lectura entre regiones que desea designar como la nueva réplica de DR.
- Para la réplica, haga clic en el botón Acciones more_vert y seleccione Designar como réplica de DR .
nube g
Para cambiar la réplica de DR, ejecute nuevamente el comando designate y especifique una réplica de DR diferente.
DESCANSAR
Para cambiar la réplica de DR, realice nuevamente la solicitud de API designada y especifique una réplica de DR diferente.
Ver la designación de la réplica DR
Puede comprobar qué réplica de recuperación ante desastres está asignada a la instancia principal mediante la CLI de gcloud o la API de administración de Cloud SQL. También puede comprobar si una réplica es una réplica de recuperación ante desastres designada.
Para saber qué réplica de DR está designada para una instancia principal, utilice el siguiente procedimiento.
Consola
Para saber qué réplica de lectura es la réplica de DR designada para una instancia principal, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque y seleccione la instancia principal. Aparecerá la página "Descripción general" de la instancia principal.
- En el menú de navegación, haga clic en Réplicas .
- En la lista de réplicas de lectura, verifique que
PostgreSQL disaster recovery replica
aparezca en la columna Tipo para la réplica de recuperación ante desastres designada.
nube g
Para saber qué instancia es la réplica DR designada de una instancia principal, utilice el siguiente comando:
gcloud sql instances describe PRIMARY_INSTANCE_NAME
Reemplace la siguiente variable:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal
La salida de este comando contiene el campo denominado failoverDrReplica
que identifica la réplica de DR designada.
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia.
- PRIMARY_INSTANCE_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia.
- PRIMARY_INSTANCE_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Para comprobar si una réplica es una réplica de DR, utilice uno de los siguientes procedimientos.
Consola
Para comprobar si una instancia de réplica es una réplica de DR, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Encuentra la instancia de réplica.
- Verifique que
PostgreSQL disaster recovery replica
aparezca en la columna Tipo para la réplica de recuperación ante desastres designada.
nube g
Para comprobar si una instancia de réplica es una réplica de DR, ejecute el siguiente comando:
gcloud sql instances describe REPLICA_NAME
Reemplace la siguiente variable:
- REPLICA_NAME : el nombre de la réplica de lectura que desea comprobar
Si la réplica es una réplica DR, entonces la salida del comando contiene el campo drReplica=true
.
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia.
- REPLICA_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia.
- REPLICA_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Eliminar la réplica de DR
Puede borrar la designación de réplica de recuperación ante desastres de una instancia principal. Sin embargo, si no hay ninguna réplica de recuperación ante desastres asignada a una instancia principal, no podrá realizar la conmutación ni la conmutación por error de la réplica.
Consola
Para eliminar una réplica de DR designada de una instancia principal, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque y seleccione la instancia principal. Aparecerá la página "Descripción general" de la instancia principal.
- En el menú de navegación, haga clic en Réplicas .
- En la lista de réplicas de lectura, busque la réplica de lectura entre regiones que desea eliminar.
- Para la réplica, haga clic en el botón Acciones more_vert y seleccione Eliminar como réplica de DR .
- Haga clic en Confirmar .
nube g
Para eliminar la designación de réplica de DR, ejecute el siguiente comando en la instancia principal:
gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --clear-failover-dr-replica-name
Reemplace la siguiente variable:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal de la que desea eliminar la réplica de DR designada
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia principal y réplica de DR.
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- Establezca 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia principal y réplica de DR.
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- Establezca 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Realizar un cambio
Tras designar una réplica de recuperación ante desastres, puede realizar la conmutación. Sin embargo, como práctica recomendada, evite realizar la conmutación en las siguientes circunstancias:
- La instancia principal se está utilizando activamente.
- Las operaciones de administración están en curso, como la copia de seguridad automática o la habilitación o deshabilitación de la alta disponibilidad (HA).
Para evitar un tiempo de espera, considere realizar el cambio cuando el volumen de transacciones sea bajo.
Al finalizar la conmutación, la operación realiza una copia de seguridad de la nueva instancia principal (la réplica anterior de recuperación ante desastres) en cuanto se promueve. Una vez completada la copia de seguridad, la recuperación a un punto en el tiempo (PITR) se habilita por completo en la nueva instancia principal. Esta copia de seguridad puede tardar entre 5 y 15 minutos en completarse, según el tamaño del disco. La cobertura de PITR comienza solo después de que se complete la copia de seguridad. Para obtener más información sobre las consideraciones para usar PITR con recuperación ante desastres avanzada, consulte Usar PITR con recuperación ante desastres avanzada .
Una vez completada la operación de cambio, notarás que la dirección de la replicación está invertida.
Una vez que su antigua instancia principal se reconfigura como una réplica de lectura, el punto final de escritura DNS , que anteriormente se resolvía en la antigua instancia principal, se resuelve en la nueva instancia principal.
Antes de empezar
Antes de realizar la operación de cambio, haga lo siguiente:
- Designar una réplica de recuperación ante desastres . Solo se puede realizar una conmutación entre la instancia principal y la réplica de recuperación ante desastres designada.
- Verifique que la instancia principal y la réplica de DR estén en línea.
- Asegúrese de que PITR esté habilitado en la instancia principal. Para habilitar PITR, consulte Usar la recuperación a un punto en el tiempo (PITR) .
- Si utiliza un punto final de escritura DNS , verifique que la configuración de SSL de la instancia principal y la réplica de recuperación ante desastres sea la misma. Por ejemplo, si la réplica de recuperación ante desastres está configurada para aplicar el cifrado SSL , pero la instancia principal permite conexiones sin cifrar, los clientes no podrán conectarse a la nueva instancia principal una vez finalizada la conmutación.
- Realice una copia de seguridad a demanda de la instancia principal. Esta copia de seguridad es una medida de precaución en caso de que necesite recuperarse de cualquier fallo inesperado.
Realizar la operación de conmutación
Consola
Para realizar la operación de cambio, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque la réplica DR designada de la instancia principal.
- Haga clic en la instancia de réplica de recuperación ante desastres. Aparecerá la página Descripción general de la réplica de recuperación ante desastres.
- Haga clic en el botón Cambiar .
- En la página Realizar cambio entre la réplica principal y la réplica de DR , ingrese el nombre de la instancia principal en el campo ID de instancia .
- Haga clic en Cambiar .
nube g
Para realizar la operación de cambio, ejecute el siguiente comando:
gcloud sql instances switchover REPLICA_NAME [--db-timeout=TIMEOUT_DURATION ]
Reemplace las siguientes variables:
- REPLICA_NAME : el nombre de la réplica de DR designada con la que desea que la instancia principal cambie roles.
- TIMEOUT_DURATION : opcional. El período de tiempo de espera para permitir la finalización de las operaciones de base de datos en la instancia.
Si no especifica este parámetro, la operación de cambio incluye un tiempo de espera de 10 minutos.
Puede aumentar el valor de este tiempo de espera especificando el parámetro --db-timeout
. Reemplace TIMEOUT_DURATION con una duración de hasta 24 horas, incluyendo una notación inicial para el formato. Por ejemplo, para 30 segundos, especifique 30s
. Para 24 horas, especifique 24h
. También puede especificar unidades fraccionarias de tiempo utilizando decimales de hasta 9 posiciones. Por ejemplo, para 30,5 minutos, especifique 30.5m
.
Si no tiene ninguna operación pendiente, puede disminuir el valor de este tiempo de espera.
Terraformar
Para iniciar la operación de conmutación, utilice un recurso de Terraform . Para que la réplica de recuperación ante desastres sea la nueva instancia principal, ejecute la primera muestra.
Si el cambio se completa correctamente, cuando ejecute terraform apply
para la segunda muestra, aparecerá un mensaje similar al siguiente:
No changes. Your infrastructure matches the configuration.
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto de la instancia principal y la réplica de DR.
- REPLICA_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto de la instancia principal y la réplica de DR.
- REPLICA_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Realizar DR invocando una conmutación por error de réplica
En caso de un fallo regional o un desastre, puede ejecutar una recuperación ante desastres invocando una conmutación por error de réplica en la réplica de recuperación ante desastres designada. Para realizar una conmutación por error de réplica, debe promover la réplica de recuperación ante desastres designada. A diferencia de la conmutación, la promoción de la réplica de recuperación ante desastres es inmediata.
Dado que la réplica de recuperación ante desastres asume inmediatamente el rol de la instancia principal, es posible que no contenga todos los datos de la instancia principal anterior debido a un retraso en la replicación. Por este motivo, una conmutación por error de la réplica puede provocar la pérdida de datos.
Como parte del proceso de promoción, la conmutación por error de la réplica realiza una copia de seguridad de la nueva instancia principal (la réplica de recuperación ante desastres anterior) justo después de que esta se convierta en la nueva instancia principal. Una vez completada esta copia de seguridad, la recuperación a un punto en el tiempo (PITR) se habilita por completo en la nueva instancia principal. Esta copia de seguridad puede tardar entre 5 y 15 minutos en completarse, dependiendo del tamaño del disco de la nueva (y antigua) instancia principal. 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 crea una copia de seguridad. Tras esta copia, la instancia principal anterior se recrea como una réplica de lectura de la nueva.
Para obtener más información sobre las consideraciones del uso de PITR con DR avanzado, consulte Usar PITR con DR avanzado .
Después de invocar la operación de conmutación por error de réplica, el punto final de escritura DNS , que anteriormente se resolvía en la antigua instancia principal, se resuelve en la nueva instancia principal.
Antes de empezar
Antes de poder realizar una conmutación por error de réplica, haga lo siguiente:
- Si aún no lo ha hecho, designe una réplica de recuperación ante desastres . Solo puede realizar una conmutación por error de réplica entre la instancia principal y la réplica de recuperación ante desastres designada.
- Asegúrese de que la réplica de DR esté en línea y en buen estado.
Realizar la operación de conmutación por error de réplica
Consola
Para realizar la operación de conmutación por error de réplica, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Haga clic en la instancia de réplica de recuperación ante desastres. Aparecerá la página Descripción general de la réplica de recuperación ante desastres.
- Haga clic en el botón Conmutación por error de réplica .
- En la página Realizar conmutación por error de réplica entre la instancia principal y la réplica de recuperación ante desastres , ingrese el nombre de la instancia principal en el campo ID de instancia para confirmar que desea continuar con la operación.
- Para iniciar la conmutación por error de la réplica, haga clic en Conmutación por error de réplica .
nube g
Para invocar una conmutación por error de réplica a la réplica de DR, utilice el siguiente comando:
gcloud sql instances promote-replica \ REPLICA_NAME --failover
Reemplace la siguiente variable:
- REPLICA_NAME : el nombre de la réplica de DR
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia principal y réplica de DR.
- REPLICA_NAME : 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 se establece enfalse
, la API usa 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia principal y réplica de DR.
- REPLICA_NAME : 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 se establece enfalse
, la API usa 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Comprobar el estado de una conmutación por error de réplica
La conmutación por error de la réplica se produce en dos fases. La primera fase consiste en la promoción de la réplica de recuperación ante desastres. La segunda fase consiste en la recreación de la instancia principal anterior como réplica de lectura.
Para comprobar el estado de la conmutación por error de la réplica, verifique el estado de cada fase.
Verifique el estado de la primera fase.
Consola
Para comprobar si la réplica de DR se ha promovido a una instancia independiente, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque el nombre de la réplica de DR que promocionó.
- Verifique que PostgreSQL VERSION aparezca en la columna Tipo para la nueva instancia principal.
nube g
Puede comprobar el estado ejecutando el siguiente comando:gcloud sql instances describe DR_REPLICA_NAME
Reemplace la siguiente variable:
- DR_REPLICA_NAME : el nombre de la réplica de DR promocionada
En la salida, verifique que aparezca el siguiente campo y que la réplica se haya convertido en una instancia principal independiente de Cloud SQL:
instanceType: CLOUD_SQL_INSTANCE
Para verificar la finalización de la segunda fase, verifique el registro de operaciones en la instancia en busca del mensaje
RECONFIGURE_OLD_PRIMARY
.La aparición de este mensaje depende de cuándo la instancia principal antigua vuelva a estar en línea, lo que puede demorar minutos o días en caso de desastre.
Para obtener más información sobre cómo comprobar los registros de operaciones en una instancia, consulte Ver registros de instancias .
Utilice PITR con DR avanzado
Tanto con la conmutación por error como con la conmutación por error de réplica, tan pronto como la réplica de DR se promueve a una instancia principal, se producen los siguientes cambios para admitir la copia de seguridad y PITR:
- La configuración de respaldo, incluida cualquier programación de respaldo automatizada, se copia de la instancia principal anterior a la instancia principal nueva.
Se realiza una nueva copia de seguridad para respaldar PITR en la nueva instancia principal.
La política de retención del registro de transacciones se copia de la instancia principal antigua a la nueva instancia principal.
Tanto para la configuración de la copia de seguridad como para las políticas de retención del registro de transacciones, recomendamos verificar que las configuraciones heredadas de la instancia principal anterior sean correctas para la nueva instancia principal.
Inicio de la cobertura de PITR
Al finalizar la operación de cambio, Cloud SQL programa copias de seguridad automatizadas y realiza la primera copia de seguridad de la nueva instancia principal. Si desea que la cobertura PITR comience lo antes posible, le recomendamos verificar que la primera copia de seguridad se haya realizado correctamente. La instancia principal recién promovida tendrá cobertura PITR solo después de que la primera copia de seguridad automatizada se haya completado correctamente.
Para obtener más información sobre cómo ver las copias de seguridad disponibles para una instancia, consulte Ver una lista de copias de seguridad .
Cobertura PITR para instancias durante la conmutación y la conmutación por error de la réplica
Cuando una instancia participa en una conmutación o en una operación de conmutación por error de réplica, se utiliza como réplica de lectura. Se admiten PITR y la restauración de una copia de seguridad durante el tiempo que la instancia se utiliza como réplica de lectura y como instancia principal.
Puede realizar una copia de seguridad PITR a un momento anterior a la conmutación, cuando la instancia era principal. Tanto para las operaciones de conmutación como para las de conmutación por error de réplica, Cloud SQL inicia una copia de seguridad de máximo esfuerzo para la nueva instancia principal en cuanto se promueve. La copia de seguridad PITR se habilita en la instancia promovida solo después de completarse esta copia de seguridad. Esta copia de seguridad puede tardar entre 5 y 15 minutos en completarse, dependiendo del tamaño del disco.
Cerebro dividido durante la conmutación por error de la réplica
Es posible que se produzca una división de memoria cuando la instancia principal sigue aceptando escrituras mientras se promueve una réplica mediante conmutación por error de réplica. Tras la promoción de la réplica, cuando la instancia principal anterior vuelve a estar disponible, se reconstruye como una réplica de la instancia promocionada y se realiza una copia de seguridad final. Esta copia de seguridad permite recuperar los datos de división de memoria que no se escribieron en la réplica promocionada.
Eliminación de copias de seguridad y registros de transacciones en réplicas
Si una instancia principal habilitada con PITR y copias de seguridad se convierte en una réplica de lectura, la última copia de seguridad y la política de retención de PITR de su tiempo como instancia principal se conservan y aplican durante su tiempo como réplica. Aunque la nueva instancia principal no realice copias de seguridad, las copias de seguridad y los registros de transacciones antiguos utilizados para PITR se eliminan 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 mantener 7 copias de seguridad con 7 días de registros PITR, entonces cuando esta instancia se convierte en una réplica de lectura, todo lo que tenga más de 7 días se elimina una vez al día.
Si necesita eliminar las copias de seguridad antes, puede hacerlo manualmente. Para obtener más información, consulte Eliminar una copia de seguridad .
Limitaciones
- El cambio no es compatible con las instancias de Cloud SQL que usan Private Service Connect y PROJECT_ID:INSTANCE_ID tiene 64 caracteres o más.
No se puede designar una instancia de réplica de lectura de Cloud SQL Enterprise Plus como réplica de recuperación ante desastres si la instancia principal almacena sus registros de transacciones para la recuperación a un punto en el tiempo (PITR) en el disco. Para comprobar dónde almacena una instancia sus registros para PITR, consulte Comprobar la ubicación de almacenamiento de los registros de transacciones utilizados para PITR .
No se puede designar una réplica externa como réplica de DR.
Terraform no es compatible con operaciones de conmutación por error de réplica.
Solucionar problemas
Asunto | Solución de problemas |
---|---|
La operación de conmutación ha fallado. |
|
La operación de cambio ha fallado y la instancia principal está bloqueada en modo de solo lectura. | Realice un reinicio de la base de datos para que la instancia principal vuelva al modo de escritura. |
La operación de conmutación se ha completado, pero el Google Cloud La consola no muestra los nuevos roles invertidos para las instancias. | Actualice su navegador para mostrar la topología actualizada. |
La operación de conmutación por error de réplica ha fallado. |
|
¿Qué sigue?
- Ver todos los Google Cloud Servicios disponibles en ubicaciones en todo el mundo .
- Lea sobre la observabilidad de la base de datos
- Supervisar instancias de Cloud SQL
Esta página describe cómo usar la recuperación ante desastres (DR) avanzada . La DR avanzada ofrece dos funciones principales:
- La conmutación por error de réplica le permite conmutar por error su instancia principal a la réplica de DR inmediatamente en caso de una falla regional.
- La conmutación permite invertir las funciones de la instancia principal y una réplica de recuperación ante desastres sin pérdida de datos. Puede usar la conmutación para restaurar una implementación a su estado original tras la conmutación por error de la réplica o para probar la recuperación ante desastres.
La recuperación ante desastres avanzada solo se admite en instancias de la edición Cloud SQL Enterprise Plus.
Antes de empezar
Si planea usar el SDK de Google Cloud, debe usar la versión 502.0.0 o posterior. Para comprobar la versión del SDK de Google Cloud, ejecute gcloud --version
. Para actualizar el SDK de Google Cloud, ejecute gcloud components update
.
Para instalar el SDK de Google Cloud, consulte Instalar la CLI de gcloud .
Requisitos de la instancia principal
La instancia principal debe ser una instancia de la edición Cloud SQL Enterprise Plus y tener una réplica de DR designada.
Debe habilitar la recuperación a un punto en el tiempo (PITR) en la instancia principal. Para habilitarla, consulte Usar la recuperación a un punto en el tiempo (PITR) .Si crea su instancia de Cloud SQL con un punto de conexión de escritura DNS ( versión preliminar ), su instancia principal debe tener la misma configuración de SSL que la réplica de recuperación ante desastres designada antes de invocar la conmutación o la conmutación por error de la réplica. Por ejemplo, si configura su réplica de recuperación ante desastres para aplicar el cifrado SSL , pero la instancia principal permite conexiones sin cifrar, los clientes no podrán conectarse a la nueva instancia principal una vez finalizada la conmutación o la conmutación por error.
Requisitos de réplica de DR
La réplica de lectura de DR designada debe cumplir los siguientes requisitos:
- Debe ser una instancia de la edición Cloud SQL Enterprise Plus
- Debe ser la misma versión de base de datos que la instancia principal, ejecutando PostgreSQL 12 o posterior
Debe estar en una región separada de la instancia principal
Debe ser una réplica de lectura directa; no puede ser una réplica en cascada
Si se configura con un indicador que requiere que la réplica tenga un valor mayor o igual que la instancia principal, entonces el indicador debe configurarse con un valor igual al de la instancia principal.
No se puede tener configurada la bandera
cloudsql.logical_decoding
; no se pueden configurar ranuras lógicas ni replicación lógica
Debe almacenar los registros de transacciones utilizados para PITR en el almacenamiento en la nube
No puede ser una réplica externa
Recomendaciones de réplicas de DR
Esta sección ofrece recomendaciones para su réplica de recuperación ante desastres. Las siguientes recomendaciones pueden ayudarle a evitar problemas de rendimiento en su implementación:
- Utilice el mismo tamaño de disco que la instancia principal o habilite el crecimiento automático.
- Utilice una configuración de alta disponibilidad (HA) consistente. Si habilita la HA en la instancia principal, habilítela también en la réplica de recuperación ante desastres.
- Utilice una configuración de caché de datos consistente. Si habilita la caché de datos en la instancia principal, habilítela también en la réplica de recuperación ante desastres.
- Configure los indicadores de base de datos adecuados para su réplica de DR antes y después de cualquier operación de conmutación o conmutación por error de réplica.
Cree 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 réplica de DR, cree una.
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Encuentra la instancia principal.
- En la columna Acciones , haga clic en el menú Más acciones .
- Seleccione Crear réplica de lectura .
- En el campo ID de instancia , ingrese un nombre para la réplica de DR .
- En el campo Versión de la base de datos , se selecciona para usted la misma versión principal de la instancia principal.
- En la sección Elija una región y disponibilidad zonal de la página, haga lo siguiente:
- Seleccione una región _diferente_ a la región de su instancia principal.
- Opcional. Seleccione Varias zonas para la réplica de recuperación ante desastres.
- Opcional. Seleccione las zonas primaria y secundaria para la réplica de recuperación ante desastres.
- En la sección "Personalizar su instancia" de la página, puede actualizar la configuración de su réplica de recuperación ante desastres. Para obtener más información sobre cada configuración, consulte la página " Acerca de la configuración de la instancia" .
- Para Formas de máquina , seleccione el mismo tipo de máquina que su instancia principal.
- Para Banderas , configure cualquier bandera que sea necesaria para su base de datos.
- Haga clic en Crear réplica .
Cloud SQL crea una copia de seguridad de la instancia principal y la réplica. Regresará a la página de la instancia principal.
nube g
Para crear una réplica que cumpla con los requisitos de una réplica de DR, ejecute 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"
Reemplace las siguientes variables:
- REPLICA_NAME : el nombre de la réplica de DR.
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- REPLICA_REGION_NAME : especifica una región que sea diferente a la región de la instancia principal.
- DATABASE_VERSION : especifica la cadena de versión que coincide con la versión principal y secundaria de la base de datos de la instancia principal, por ejemplo,
POSTGRES_16
.Las versiones principales y secundarias de la base de datos deben ser las mismas tanto para la réplica principal como para la réplica de DR.
- MACHINE_TYPE : especifica el mismo tipo de máquina que la instancia principal. Se recomienda que el tipo de máquina coincida con el de la instancia principal.
- AVAILABILITY_TYPE : si la instancia principal está configurada para alta disponibilidad, le recomendamos que especifique
REGIONAL
para habilitar la alta disponibilidad. - EDITION : especificar
ENTERPRISE_PLUS
.
Terraformar
Para crear una réplica de DR, utilice un recurso de Terraform .
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia principal y réplica de DR.
- DATABASE_VERSION: cadena de versión que coincide con la versión de la base de datos de la instancia principal, por ejemplo,
POSTGRES_16
. La versión de la base de datos debe ser la misma para la instancia principal y la réplica de recuperación ante desastres. - REPLICA_NAME : el nombre de la instancia de réplica de DR que está creando.
- 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. Se recomienda seleccionar el mismo tipo de máquina que la instancia principal.
- AVAILABILITY_TYPE : si la instancia principal está configurada para alta disponibilidad, le recomendamos que especifique
REGIONAL
para 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia principal y réplica de DR.
- DATABASE_VERSION: cadena de versión que coincide con la versión de la base de datos de la instancia principal, por ejemplo,
POSTGRES_16
. La versión de la base de datos debe ser la misma para la instancia principal y la réplica de recuperación ante desastres. - REPLICA_NAME : el nombre de la instancia de réplica de DR que está creando.
- 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. Se recomienda que el tamaño del disco coincida con el de la instancia principal.
- AVAILABILITY_TYPE : si la instancia principal está configurada para alta disponibilidad, le recomendamos que especifique
REGIONAL
para 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Designar la réplica de DR para la instancia principal
Los siguientes procedimientos describen cómo designar una de las réplicas entre regiones de una instancia principal como una réplica de DR para conmutación o conmutación por error de réplica.
Consola
Para designar una réplica de DR para una instancia primaria, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque y seleccione la instancia primaria. Aparece la página de descripción general para la instancia primaria.
- En el menú de navegación, haga clic en Replicas .
- En la lista de replicas de lectura, encuentre la réplica de lectura de la región cruzada que desea designar como la réplica del Dr.
- Para la réplica, haga clic en el botón More_vert Actions y seleccione Designar como réplica DR .
- Haga clic en Confirmar .
nube g
Para designar una réplica de DR para una instancia primaria, use el siguiente comando:
gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --failover-dr-replica-name=REPLICA_NAME
Reemplace las siguientes variables:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- REPLICA_NAME : el nombre de la réplica DR.
Terraformar
Para designar una réplica de DR para una instancia primaria, use un recurso Terraform .
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- REPLICA_NAME : el nombre de la réplica 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- REPLICA_NAME : el nombre de la réplica 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Cambiar la designación de la réplica del Dr.
Si la réplica cumple con los requisitos, puede designar una réplica diferente como la réplica DR. La antigua réplica del Dr. pierde la designación de réplica DR.
Consola
Para cambiar la réplica del Dr. para una instancia primaria, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque y seleccione la instancia primaria. Aparece la página de descripción general para la instancia primaria.
- En el menú de navegación, haga clic en Replicas .
- En la lista de replicas de lectura, encuentre la réplica de lectura de la región cruzada que desea designar como la nueva réplica de DR.
- Para la réplica, haga clic en el botón More_vert Actions y seleccione Designar como réplica DR .
nube g
Para cambiar la réplica DR, ejecute el comando Designate nuevamente y especifique una réplica de DR diferente.
DESCANSAR
Para cambiar la réplica DR, haga la solicitud de API designada nuevamente y especifique una réplica de DR diferente.
Ver la designación de la réplica del Dr.
Puede verificar qué réplica DR se asigna a la instancia primaria utilizando la CLI GCLOUD o la API de administración SQL de Cloud. También puede verificar si una réplica es una réplica DR designada.
Para averiguar qué réplica DR se designa para una instancia primaria, use el siguiente procedimiento.
Consola
Para averiguar qué réplica de lectura es la réplica de DR designada para una instancia primaria, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque y seleccione la instancia primaria. Aparece la página de descripción general para la instancia primaria.
- En el menú de navegación, haga clic en Replicas .
- En la lista de replicas de lectura, verifique que
PostgreSQL disaster recovery replica
aparezca en la columna Tipo para la réplica DR designada.
nube g
Para saber qué instancia es la réplica DR designada de una instancia primaria, use el siguiente comando:
gcloud sql instances describe PRIMARY_INSTANCE_NAME
Reemplace la siguiente variable:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal
La salida de este comando contiene el campo llamado failoverDrReplica
que identifica la réplica DR designada.
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia.
- PRIMARY_INSTANCE_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia.
- PRIMARY_INSTANCE_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Para verificar si una réplica es una réplica DR, use uno de los siguientes procedimientos.
Consola
Para verificar si una instancia de réplica es una réplica de DR, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Encuentra la instancia de réplica.
- Verifique que
PostgreSQL disaster recovery replica
aparezca en la columna de tipo para la réplica DR designada.
nube g
Para verificar si una instancia de réplica es una réplica DR, ejecute el siguiente comando:
gcloud sql instances describe REPLICA_NAME
Reemplace la siguiente variable:
- REPLICA_NAME : el nombre de la réplica de lectura que desea verificar
Si la réplica es una réplica de DR, entonces la salida del comando contiene el campo drReplica=true
.
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia.
- REPLICA_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia.
- REPLICA_NAME : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Retire la réplica del Dr.
Puede borrar la designación de réplica DR de una instancia primaria. Sin embargo, si no se asigna una réplica de DR a una instancia primaria, entonces no puede realizar conmutación o conmutación por error.
Consola
Para eliminar una réplica de DR designada de una instancia primaria, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque y seleccione la instancia primaria. Aparece la página de descripción general para la instancia primaria.
- En el menú de navegación, haga clic en Replicas .
- En la lista de replicas de lectura, busque la réplica de lectura de región cruzada que desea eliminar.
- Para la réplica, haga clic en el botón More_vert Actions y seleccione Eliminar la réplica de DR .
- Haga clic en Confirmar .
nube g
Para eliminar la designación de réplica DR, ejecute el siguiente comando en la instancia primaria:
gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --clear-failover-dr-replica-name
Reemplace la siguiente variable:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal de la que desea eliminar la réplica de DR designada
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia primaria y la réplica del Dr.
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- Establezca el campo de
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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia primaria y la réplica del Dr.
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- Establezca el campo de
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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Realizar una conmutación
Después de designar una réplica DR, puede realizar la operación de interrupción. Sin embargo, como una mejor práctica, evite realizar la operación de cambio en las siguientes circunstancias:
- La instancia principal se está utilizando activamente.
- Las operaciones de administración están en progreso, como la copia de seguridad automatizada o la habilitación o deshabilitación de alta disponibilidad (HA).
Para evitar un tiempo de espera, considere realizar el cambio cuando el volumen de transacción sea bajo.
Cuando se completa la conmutación, la operación toma una copia de seguridad de la nueva instancia primaria (la antigua réplica del Dr.) tan pronto como se promueve la nueva instancia primaria. Después de completar esta copia de seguridad, luego la recuperación de punto en el tiempo (PITR) está totalmente habilitada en la nueva instancia primaria. Esta copia de seguridad puede tardar entre 5 y 15 minutos en completarse dependiendo del tamaño del disco. La cobertura de PITR comienza solo después de que se haya completado esta copia de seguridad. Para obtener más información sobre las consideraciones de usar PITR con DR avanzado, consulte Use PITR con DR avanzado .
Una vez que se complete la operación de cambio, notará que la dirección de la replicación se invierte.
Después de que su antigua instancia primaria se reconfigure como una réplica de lectura, el DNS escribe el punto final , que anteriormente se resolvió a la antigua instancia primaria, se resuelve en la nueva instancia primaria.
Antes de empezar
Antes de realizar la operación de cambio, haga lo siguiente:
- Designar una réplica del Dr. Solo puede realizar un cambio entre la instancia primaria y la réplica de DR designada.
- Verifique que la instancia primaria y la réplica del Dr. estén en línea.
- Asegúrese de que PITR esté habilitado en la instancia primaria. Para habilitar PITR, consulte la recuperación de punto en el tiempo (PITR) .
- Si está utilizando un punto final de escritura DNS , verifique que la configuración SSL para la instancia primaria y la réplica DR son las mismas. Por ejemplo, si la réplica DR está configurada para hacer cumplir el cifrado SSL , pero la instancia primaria permite conexiones sin cifrar, entonces los clientes no podrán conectarse a la nueva instancia primaria después de que se complete la operación de conmutación.
- Tome una copia de seguridad a pedido de la instancia primaria. Esta copia de seguridad es una precaución en caso de que necesite recuperarse de cualquier falla inesperada.
Realizar la operación de cambio
Consola
Para realizar la operación de interrupción, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Encuentre la réplica DR designada de la instancia primaria.
- Haga clic en la instancia de la réplica DR. Aparece la página de descripción general para la réplica DR.
- Haga clic en el botón de conmutación .
- En el cambio de ejecución entre la página de réplica primaria y DR , ingrese el nombre de la instancia primaria en el campo ID de instancia .
- Haga clic en SwitchOver .
nube g
Para realizar la operación de interrupción, ejecute el siguiente comando:
gcloud sql instances switchover REPLICA_NAME [--db-timeout=TIMEOUT_DURATION ]
Reemplace las siguientes variables:
- REPLICA_NAME : el nombre de la réplica DR designada con la que desea que la instancia principal cambie de roles.
- TIMEOUT_DURATION : opcional. El período de tiempo de espera para permitir la finalización de las operaciones de la base de datos en la instancia.
Si no especifica este parámetro, la operación de cambio incluye un tiempo de espera de 10 minutos.
Puede aumentar el valor de este tiempo de espera especificando el parámetro --db-timeout
. Reemplace TIMEOUT_DURATION con una duración de período de tiempo de hasta 24 horas, incluida una notación inicial para el formato. Por ejemplo, durante 30 segundos, especifique 30s
. Durante 24 horas, especifique 24h
. También puede especificar unidades fraccionales del período de tiempo utilizando decimales de hasta 9 lugares. Por ejemplo, durante 30.5 minutos, especifique 30.5m
.
Si no tiene ninguna operación pendiente, puede disminuir el valor de este tiempo de espera.
Terraformar
Para comenzar la operación de conmutación, use un recurso Terraform . Para hacer de la réplica DR la nueva instancia primaria, ejecute la primera muestra.
Si SwitchOver se completa con éxito, cuando ejecuta terraform apply
la segunda muestra, aparece un mensaje similar al siguiente:
No changes. Your infrastructure matches the configuration.
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia primaria y la réplica DR.
- REPLICA_NAME : el nombre de la réplica DR.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME/switchover
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia primaria y la réplica DR.
- REPLICA_NAME : el nombre de la réplica DR.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME/switchover
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Realizar DR invocando una réplica de conmutación por error
En el caso de una falla regional o un desastre, puede realizar DR invocando una operación de conmutación por error de réplica a su réplica DR designada. Para realizar una conmutación por error de réplica, promueve la réplica del Dr. designada. En contraste con la conmutación, la promoción de la réplica del DR es inmediata.
Dado que la réplica del Dr. asume el papel de la instancia primaria de inmediato, es posible que la réplica no tenga todos los datos de la antigua instancia primaria debido al retraso de la replicación. Por esta razón, una conmutación por error de réplica puede incurrir en pérdida de datos.
Como parte del proceso de promoción, la conmutación por error de réplica toma una copia de seguridad de la nueva instancia primaria (la antigua réplica del Dr.) justo después de que la réplica del Dr. se convierta en la nueva instancia primaria. Después de completar esta copia de seguridad, la recuperación de punto en el tiempo (PITR) está totalmente habilitada en la nueva instancia primaria. Esta copia de seguridad puede tardar entre 5 y 15 minutos en completarse dependiendo del tamaño del disco de la nueva (y antigua) instancia primaria. Durante este período de respaldo, PITR no está disponible.
Cuando la antigua instancia primaria vuelve a estar en línea, el proceso de conmutación por error de réplica toma una copia de seguridad. Después de tomar esta copia de seguridad, la antigua instancia primaria se recrea como una réplica de lectura de la nueva instancia primaria.
Para obtener más información sobre las consideraciones de usar PITR con DR avanzado, consulte Use PITR con DR avanzado .
Después de invocar la operación de conmutación por error de réplica, el DNS escribe el punto final , que se resolvió previamente a la antigua instancia primaria, se resuelve con la nueva instancia primaria.
Antes de empezar
Antes de que pueda realizar una conmutación por error de réplica, haga lo siguiente:
- Si aún no lo ha hecho, designe una réplica DR . Solo puede realizar una conmutación por error de réplica entre la instancia primaria y la réplica de DR designada.
- Asegúrese de que la réplica del Dr. esté en línea y saludable.
Realizar la operación de conmutación por error de réplica
Consola
Para realizar la operación de conmutación por error de réplica, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Haga clic en la instancia de la réplica DR. Aparece la página de descripción general para la réplica DR.
- Haga clic en el botón Réplica de conmutación por error .
- En la conmutación por error de Replica entre la página de réplica primaria y DR , ingrese el nombre de la instancia primaria en el campo ID de instancia para confirmar que desea continuar con la operación.
- Para iniciar la conmutación por error de replica, haga clic en Réplica de conmutación por error .
nube g
Para invocar una réplica de conmutación por error a la réplica de DR, use el siguiente comando:
gcloud sql instances promote-replica \ REPLICA_NAME --failover
Reemplace la siguiente variable:
- REPLICA_NAME : el nombre de la réplica del Dr.
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia primaria y la réplica del Dr.
- REPLICA_NAME : el nombre de la réplica DR.
- ENABLE_REPLICA_FAILOVER : Establezca en
true
para usar la transmisión por error de réplica. Si se establece enfalse
, la API utiliza el métodopromoteReplica
regular 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto de la instancia primaria y la réplica del Dr.
- REPLICA_NAME : el nombre de la réplica DR.
- ENABLE_REPLICA_FAILOVER : Establezca en
true
para usar la transmisión por error de réplica. Si se establece enfalse
, la API utiliza el métodopromoteReplica
regular 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Comprobar el estado de una conmutación por error de réplica
La conmutación por error de réplica ocurre en dos fases. La primera fase es la promoción de la réplica DR. La segunda fase es la recreación de la antigua instancia primaria como una réplica de lectura.
Para verificar el estado de la conmutación por error de réplica, verifique el estado de cada fase.
Verifique el estado de la primera fase.
Consola
Para verificar si la réplica del DR ha sido promovida a una instancia independiente, haga lo siguiente:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Encuentre el nombre de la réplica del Dr. que promovió.
- Verifique que VERSION PostgreSQL aparezca en la columna Tipo para la nueva instancia primaria.
nube g
Puede verificar el estado ejecutando el siguiente comando:gcloud sql instances describe DR_REPLICA_NAME
Reemplace la siguiente variable:
- DR_REPLICA_NAME : el nombre de la réplica de DR promocionada
En la salida, verifique que aparezca el siguiente campo y la réplica se ha convertido en una instancia primaria de SQL de nube independiente:
instanceType: CLOUD_SQL_INSTANCE
Para verificar la finalización de la segunda fase, verifique el registro de operaciones en la instancia para el mensaje
RECONFIGURE_OLD_PRIMARY
.La apariencia de este mensaje depende de cuándo la antigua instancia primaria regresa en línea, que puede llevar minutos o días en caso de un desastre.
Para obtener más información sobre cómo verificar los registros de operaciones en una instancia, consulte Ver registros de instancia .
Use PITR con el Dr. Advanced
Con la conmutación de la conmutación como la conmutación por error, tan pronto como la réplica del DR se promueve a una instancia primaria, los siguientes cambios ocurren para admitir la copia de seguridad y PITR:
- La configuración de copia de seguridad, incluida la programación de copia de seguridad automatizada, se copia de la antigua instancia primaria a la nueva instancia primaria.
Se toma una nueva copia de seguridad para admitir PITR en la nueva instancia primaria.
La política de retención de registro de transacciones se copia de la antigua instancia primaria a la nueva instancia primaria.
Tanto para la configuración de copia de seguridad como para las políticas de retención de registro de transacciones, le recomendamos que verifique que la configuración heredada de la antigua instancia primaria sea correcta para la nueva instancia primaria.
Inicio de la cobertura de PITR
Al final de la operación de interrupción, Cloud SQL programa copias de seguridad automatizadas y toma la primera copia de seguridad de la nueva instancia primaria. Si desea que la cobertura de PITR comience más temprano que tarde, le recomendamos que verifique que la primera copia de seguridad sea exitosa. La instancia primaria recién promocionada tiene cobertura de PITR solo después de que la primera copia de seguridad automatizada se haya completado con éxito.
Para obtener más información sobre cómo ver las copias de seguridad que están disponibles para una instancia, consulte una lista de copias de seguridad .
Cobertura de PITR para instancias durante la conmutación y réplica de conmutación por error
Cuando una instancia participa en una operación de conmutación o una operación de conmutación por error de réplica, la instancia pasa tiempo como una réplica de lectura. PITR y la restauración de una copia de seguridad son compatibles durante el período de tiempo que la instancia gasta como una réplica de lectura y como una instancia primaria.
Puede realizar PITR hasta un momento antes del cambio cuando la instancia fue una instancia primaria. Para las operaciones de conmutación por error de conmutación y réplica, Cloud SQL inicia una copia de seguridad del mejor esfuerzo para la nueva instancia primaria tan pronto como se promueva la nueva instancia primaria. PITR está habilitado en la instancia promocionada solo después de completar esta copia de seguridad. Esta copia de seguridad puede tardar de 5 a 15 minutos en completarse dependiendo del tamaño del disco.
Split-Brain durante la réplica de conmutación por error
Es posible que el cerebro dividido ocurra cuando la instancia primaria continúa aceptando escrituras mientras se promueve una réplica utilizando la conmutación por error de réplica. Después de promover la réplica, cuando la antigua instancia primaria está disponible nuevamente, se reconstruye como una réplica de la instancia promocionada y se realiza una copia de seguridad final. Esta copia de seguridad se puede utilizar para recuperar los datos del cerebro dividido que no se escribió en la réplica promovida.
Eliminación de copias de seguridad y registros de transacciones en réplicas
Si una instancia primaria que se habilitó con PITR y las copias de seguridad se convierte en una réplica de lectura, entonces la última política de copia de seguridad y retención de PITR de su tiempo como instancia primaria se conserva y aplica durante su tiempo como una réplica. A pesar de que la nueva instancia primaria no está tomando copias de seguridad, las copias de seguridad antiguas y los registros de transacciones utilizados para PITR se eliminan en la réplica de lectura de acuerdo con la última política configurada.
Por ejemplo, si la instancia está configurada para tener copias de seguridad automatizadas diarias y mantener 7 copias de seguridad con 7 días de registros de PITR, entonces cuando esta instancia se convierte en una réplica de lectura, cualquier cosa anterior a 7 días se elimina una vez al día.
Si necesita eliminar copias de seguridad antes, puede eliminar las copias de seguridad manualmente. Para obtener más información, consulte Eliminar una copia de seguridad .
Limitaciones
- SwitchOver no es compatible con las instancias de SQL en la nube que usan el servicio privado Connect y PROJECT_ID:INSTANCE_ID es 64 caracteres o más.
No puede designar una instancia de réplica de réplica de lectura de la edición SQL Plus de Cloud SQL Plus si la instancia principal almacena sus registros de transacción para la recuperación de punto en el tiempo (PITR) en el disco. Para verificar dónde almacena una instancia sus registros para PITR, consulte Verifique la ubicación de almacenamiento de los registros de transacción utilizados para PITR .
No puede designar una réplica externa como una réplica DR.
Terraform no es compatible con las operaciones de conmutación por error de réplica.
Solucionar problemas
Asunto | Solución de problemas |
---|---|
La operación de conmutación ha fallado. |
|
La operación de conmutación ha fallado y la instancia principal está atascada en modo de solo lectura. | Realice un reinicio de la base de datos para devolver la instancia principal al modo de escritura. |
La operación de cambio se ha completado, pero el Google Cloud La consola no muestra los nuevos roles invertidos para las instancias. | Actualice su navegador para mostrar la topología actualizada. |
La operación de conmutación por error de réplica ha fallado. |
|
¿Qué sigue?
- Ver todos los Google Cloud Servicios disponibles en ubicaciones en todo el mundo .
- Lea sobre la observabilidad de la base de datos
- Monitorear instancias de SQL en la nube