Usar la recuperación ante desastres (DR) avanzada

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

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

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

Antes de comenzar

Si planeas usar el SDK de Google Cloud, debes usar la versión 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.

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.

Debes habilitar la recuperación de un momento determinado (PITR) en la instancia principal. Para habilitar la PITR, consulta Usa la recuperación de un momento determinado (PITR).

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 la misma versión de la base de datos que la instancia principal que ejecuta PostgreSQL 12, 13, 14, 15 o 16.
  • 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

  • Si se configura con una marca que requiere que la réplica tenga un valor mayor o igual que la instancia principal, la marca se debe configurar con un valor igual a la instancia principal.

  • No se puede configurar la marca cloudsql.logical_decoding. No se pueden configurar ranuras lógicas ni replicación lógica.

  • Debe almacenar los registros de transacciones que se usan para la PITR en Cloud Storage

  • No puede ser una réplica externa

Recomendaciones de réplicas de DR

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

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

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

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

Console

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

    Ir a Instancias de Cloud SQL

  2. Busca la instancia principal.
  3. En la columna Acciones, haz clic en el menú Más acciones.
  4. Selecciona Crear réplica de lectura.
  5. En el campo ID de instancia, ingresa un nombre para la réplica de DR.
  6. En el campo Versión de la base de datos, se selecciona la misma versión principal de la instancia principal.
  7. 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.
  8. 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.
  9. En Formas de máquina, selecciona el mismo tipo de máquina que la instancia principal.
  10. En Marcas, configura las marcas necesarias para tu base de datos.
  11. 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, POSTGRES_16.

    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 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 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 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 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:

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

    Ir a Instancias de Cloud SQL

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

gcloud

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

gcloud 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:

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

    Ir a Instancias de Cloud SQL

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

gcloud

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

REST

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

Visualiza la designación de réplica de DR

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

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

Console

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

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

    Ir a Instancias de Cloud SQL

  2. Busca y selecciona la instancia principal. Aparecerá la página Descripción general de la instancia principal.
  3. En el menú de navegación, haz clic en Réplicas.
  4. En la lista de réplicas de lectura, verifica que PostgreSQL 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:

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

    Ir a Instancias de Cloud SQL

  2. Busca la instancia de réplica.
  3. Verifica que PostgreSQL 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 una respuesta JSON similar a la que se muestra a continuación:

REST v1beta4

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

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

Método HTTP y URL:

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

Para enviar tu solicitud, expande una de estas opciones:

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

Quita la réplica de DR

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

Console

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

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

    Ir a Instancias de Cloud SQL

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

gcloud

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

gcloud 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.
  • Asegúrate de que la PITR esté habilitada en la instancia principal. Para habilitar la PITR, consulta Usa la recuperación de un momento determinado (PITR).
  • 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:

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

    Ir a Instancias de Cloud SQL

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

gcloud

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

gcloud 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:

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

    Ir a Instancias de Cloud SQL

  2. Haz clic en la instancia de réplica de DR. Aparecerá la página Descripción general de la réplica de DR.
  3. Haz clic en el botón Conmutación por error de réplica.
  4. 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.
  5. 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 en false, la API usará el método promoteReplica normal sin conmutación por error de réplica.

Método HTTP y URL:

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

Para enviar tu solicitud, expande una de estas opciones:

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

REST v1beta4

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

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

Método HTTP y URL:

POST https://sqladmin.googleapis.com/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.

  1. Verifica el estado de la primera fase.

    Console

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

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

      Ir a Instancias de Cloud SQL

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

    gcloud

    Para verificar el estado, ejecuta el siguiente comando:

    gcloud sql instances describe DR_REPLICA_NAME

    Reemplaza la siguiente variable:

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

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

    instanceType: CLOUD_SQL_INSTANCE
    

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

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

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

Usa la PITR con DR avanzada

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

  • La configuración de copia de seguridad, incluida cualquier programación de copia de seguridad automática, se copia de la instancia principal anterior a la nueva.
  • 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.

  • La DR avanzada no es compatible con PostgreSQL 17.

Solucionar problemas

Problema Soluciona problemas
No se pudo realizar la operación de cambio.
  • Verifica el volumen de transacciones en la base de datos. Si el volumen de transacciones es alto, la operación puede agotar el tiempo de espera. Considera volver a intentar realizar la operación cuando la carga de la transacción sea menor.
La operación de cambio falló y la instancia principal está atascada en modo de solo lectura. Realiza un reinicio de la base de datos para que la instancia principal vuelva al modo de escritura.
Se completó la operación de cambio, pero la consola de Google Cloud no muestra los nuevos roles revertidos para las instancias. Actualiza el navegador para mostrar la topología actualizada.
Falló la operación de conmutación por error de réplica.
  • Si falla la conmutación por error de réplica de DR, asciende a una réplica de lectura normal (que no sea de DR).

¿Qué sigue?