Acerca de la replicación en Cloud SQL

La replicación es la capacidad de crear copias de una instancia de Cloud SQL y derivar trabajo a las copias.

Introducción

La razón principal para usar la replicación es escalar el uso de datos en una base de datos sin degradar el rendimiento.

Otros motivos de replicación son la migración de datos entre regiones.

Además, si se daña una instancia original, una réplica podría ascender a una instancia independiente (en cuyo caso, las réplicas existentes no la considerarían como una instancia principal).

Cuando se hace referencia a una instancia de Cloud SQL, la instancia que se replica se denomina instancia principal y las copias se denominan réplicas de lectura. La instancia principal y las réplicas de lectura residen en Cloud SQL.

Cuando se crea la primera réplica, sucede lo siguiente:

  • La instancia principal se configura como el modelo de recuperación completo para todas las bases de datos que se encuentran en la instancia principal.
  • Se crea un disco temporal y se realiza una copia de seguridad completa y se almacena en el disco temporal. El disco temporal se borra después de que se completa el proceso de creación de la réplica.

Si, en el período de creación de la primera réplica, el usuario cambia al modelo de recuperación simple, la creación de la réplica fallará.

Lo siguiente se aplica a las bases de datos agregadas a la instancia principal después de que se crean las réplicas:

  • Las bases de datos se agregan automáticamente a los grupos de disponibilidad y se propagan en las réplicas con la propagación automática.
  • Cada creación de una réplica invoca una copia de seguridad completa (modelo de recuperación completa) de las bases de datos en la instancia principal. Los accesos y los objetos del servidor creados después de la réplica no se replicarán.

Cloud SQL admite los siguientes tipos de réplicas:

Con la aplicación forzosa de conectores, puedes aplicar el uso exclusivo del proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL para conectarte a instancias de Cloud SQL. Con la aplicación del conector, Cloud SQL rechaza las conexiones directas a la base de datos. No puedes crear réplicas de lectura para una instancia que tenga habilitada la aplicación forzosa de conectores. Del mismo modo, si una instancia tiene réplicas de lectura, no puedes habilitar la aplicación forzosa de conectores para ella.

Cloud SQL no admite la replicación entre dos servidores externos.

Réplicas de lectura

Se usa una réplica de lectura para descargar el trabajo de una instancia de Cloud SQL. La réplica de lectura es una copia exacta de la instancia principal. Los datos y otros cambios que se realizan en la instancia principal se actualizan casi en tiempo real en la réplica de lectura.

Las réplicas de lectura son de solo lectura, por lo que no puedes realizar operaciones de escritura en ellas. La réplica de lectura procesa consultas, solicitudes de lectura y tráfico de estadísticas, lo que reduce la carga en la instancia principal. Puedes tener hasta 8 réplicas de lectura por instancia principal.

Te conectas a una réplica directamente con su nombre y dirección IP de conexión. Si te conectas a una réplica mediante una dirección IP privada, no necesitas crear una conexión privada de VPC adicional para la réplica, porque la conexión se hereda de la instancia principal.

Para obtener más información sobre cómo crear una réplica de lectura, consulta Crea réplicas de lectura. Para obtener más información sobre cómo administrar una réplica de lectura, consulta Administra réplicas de lectura.

Como práctica recomendada, coloca réplicas de lectura en una zona diferente a la instancia principal cuando usas la alta disponibilidad en tu instancia principal. Esta práctica garantiza que las réplicas de lectura sigan funcionando cuando la zona que contiene la instancia principal tenga una interrupción. Consulta la Descripción general de la alta disponibilidad para obtener más información.

Selecciona un tipo de máquina adecuado

Las réplicas de lectura pueden tener un tipo de máquina diferente al de la instancia principal. Debes supervisar las métricas en tu instancia, como el uso de memoria y CPU, para asegurarte de que la instancia de réplica tenga el tamaño adecuado para su carga de trabajo, en especial si es más pequeña que la instancia principal. Una instancia de réplica que tiene un tamaño insuficiente es más propensa a un rendimiento deficiente, como eventos frecuentes de memoria insuficiente (OOM).

Réplicas de lectura entre regiones

La replicación entre regiones te permite crear una réplica de lectura en una región diferente a la de la instancia principal. Una réplica de lectura entre regiones se crea de la misma manera en la que se creas una réplica dentro de una región.

En el caso de las réplicas de lectura de SQL Server, se supone que la réplica está en la misma red virtual que la réplica principal o que se comunican con una IP pública.

Las réplicas entre regiones realizan las siguientes acciones:

  • Mejoran el rendimiento de lectura, ya que pueden hacer que las réplicas estén disponibles más cerca de la región de la aplicación.
  • Proporcionan una capacidad de recuperación ante desastres adicional para protegerte contra fallas regionales.
  • Te permiten migrar datos de una región a otra.

Consulta la sección sobre cómo ascender réplicas para la migración regional o la recuperación ante desastres a fin de obtener más información sobre las réplicas entre regiones.

Réplicas de lectura en cascada

La replicación en cascada te permite crear una réplica de lectura en otra réplica de lectura en la misma región o en una diferente. Las réplicas en cascada se implementan con grupos de disponibilidad distribuidos. Estos son algunos casos de uso de las réplicas en cascada:

  • Recuperación ante desastres: Puedes usar una jerarquía de cascada de réplicas de lectura para simular la topología de tu instancia principal y sus réplicas de lectura. Durante una interrupción, la réplica de lectura seleccionada asciende a principal y las réplicas de lectura en la nueva instancia principal se siguen replicando y están listas para usarse. La instancia principal anterior se convierte en una instancia secundaria de la instancia principal nueva cuando está disponible, y puedes volver a la instancia principal anterior una vez que se recupere con un cambio. Si deseas obtener más información acerca del uso de réplicas en cascada para la recuperación ante desastres, consulta Información sobre la recuperación ante desastres.
  • Mejora de rendimiento: Reduce la carga en la instancia principal a través de la transferencia del trabajo de replicación en varias réplicas de lectura.
  • Escala las lecturas: Puedes tener más réplicas para compartir la carga de lectura.
  • Reducción de costos: puedes reducir los costos de las herramientas de redes mediante una sola réplica en cascada con replicación entre regiones en otras regiones.

Terminología

  • Réplica con capacidad de cascada: Es una réplica de lectura entre regiones que se puede usar para operaciones de cambio y conmutación por error de réplica en la recuperación ante desastres (DR) avanzada con Cloud SQL para SQL Server.
  • Réplica de cascada: una réplica de lectura que puede tener su propia réplica.
  • Niveles: Puedes crear niveles de réplicas en una jerarquía de réplica en cascada. Por ejemplo, si agregas cuatro réplicas a una instancia, esas cuatro réplicas estarán en el mismo nivel.
  • Instancias del mismo nivel: Varias réplicas que se replican desde la misma instancia principal. Los grupos del mismo nivel se encuentran en el mismo nivel de la jerarquía de réplica. Una réplica puede tener hasta ocho grupos del mismo nivel.
  • Réplica de hoja: una réplica de lectura que no tiene ninguna réplica propia. En una jerarquía de replicación de varios niveles, la réplica de hoja es el último nivel.
  • Ascender: Una acción que convierte una réplica, en cualquier nivel de la jerarquía, en una instancia principal. Cuando se asciende, se conserva la jerarquía de réplica en cascada de la réplica.

Configura réplicas en cascada

Las réplicas en cascada te permiten agregar réplicas de lectura a cualquier réplica existente. Puedes agregar hasta cuatro niveles de réplicas, incluida la instancia principal. Cuando asciendes la réplica en la parte superior de una jerarquía de réplica en cascada, esta se convierte en una instancia principal y sus réplicas en cascada se siguen replicando.

Para obtener más información acerca de la configuración de grupos de disponibilidad distribuidos, consulta Configura un grupo de disponibilidad distribuido siempre activo.

Restricciones

  • No puedes borrar una réplica que tenga réplicas. Para borrar la réplica, debes comenzar con las réplicas de hoja y avanzar en la jerarquía.
  • No se admite la dependencia de la región circular. Para tener la réplica de una réplica en cascada en la misma región que la instancia principal, la réplica en cascada también debe estar en la misma región.
  • Debes crear réplicas con capacidad de cascada en una región diferente a la de la región de la instancia principal. Luego, puedes crear réplicas en cascada en la misma región que la réplica con capacidad de cascada.

Casos de uso de replicación

Los siguientes casos de uso se aplican a cada tipo de replicación.

Nombre Principal Réplica Beneficios y casos prácticos Más información
Réplica de lectura Instancia de Cloud SQL Instancia de Cloud SQL
  • Capacidad de lectura adicional
  • Objetivo de estadísticas
  • Mejora en el rendimiento de lectura
  • Exporta desde réplicas
Réplica de lectura entre regiones Instancia de Cloud SQL Instancia de Cloud SQL
  • Capacidad de lectura adicional
  • Objetivo de estadísticas
  • Función adicional de recuperación ante desastres
  • Mejora en el rendimiento de lectura
  • Migra datos entre regiones
Replicación de SQL Server Instancia externa a Cloud SQL Instancia de Cloud SQL para SQL Server
  • Ruta de acceso de migración a Cloud SQL
  • Replicación de un servidor externo a Cloud SQL
  • Replicación de Cloud SQL a un servidor externo
  • Replicación entre instancias de Cloud SQL
  • Replicación de datos en Google Cloud
  • Objetivo de estadísticas

Facturación

  • Una réplica de lectura se cobra a la misma tarifa que una instancia de Cloud SQL estándar. No se aplican cargos por la replicación de datos.
  • El precio de una réplica de lectura entre regiones es el mismo que el de la creación de una instancia de Cloud SQL nueva en la región. Consulta los precios de las instancias de Cloud SQL y selecciona la región adecuada. Además del costo normal asociado a la instancia, una réplica entre regiones genera cargos de salida de red entre regiones por los registros de replicación enviados desde la instancia principal hasta la instancia de la réplica, como se describe en Precios de salida de la red

Referencia rápida para las réplicas de lectura de Cloud SQL

Tema Debate
Copias de seguridad No puedes configurar copias de seguridad en la réplica.
Núcleos y memoria Las réplicas de lectura pueden usar una cantidad diferente de núcleos y de memoria de las de la instancia principal.
Borra la instancia principal Antes de borrar una instancia principal, debes promover todas sus réplicas de lectura a instancias independientes o borrar las réplicas de lectura.
Borra la réplica Cuando borras una réplica, el estado de la instancia principal no se ve afectado.
Borra una base de datos replicada Puedes borrar una base de datos replicada de SQL Server mediante la consola de Google Cloud o el comando gcloud, y la eliminación se propaga automáticamente a las réplicas. No puedes borrar una base de datos replicada de SQL Server mediante comandos de T-SQL.
Conmutación por error Una instancia principal puede conmutar por error a una réplica solo si la réplica es de DR. Las réplicas de lectura no pueden conmutar por error de ninguna manera durante una interrupción.
Balanceo de cargas Cloud SQL no proporciona balanceo de cargas entre las réplicas.
Períodos de mantenimiento Las réplicas de lectura comparten períodos de mantenimiento con la instancia principal. Las réplicas siguen la configuración de mantenimiento de la instancia principal, incluido el período de mantenimiento, la reprogramación y el período de rechazo del mantenimiento. Durante el mantenimiento, Cloud SQL actualiza todas las réplicas de lectura antes de actualizar la instancia principal.
Varias réplicas de lectura Puedes crear hasta 8 réplicas de lectura para una sola instancia principal.
IP privada Si te conectas a una réplica mediante una dirección IP privada, no necesitas crear una conexión privada de VPC adicional para la réplica, ya que se hereda de la instancia principal.
Restablece la instancia principal No puedes restablecer la instancia principal de una réplica mientras exista dicha réplica. Para restablecer una instancia desde una copia de seguridad o realizar una recuperación de un momento determinado, debes ascender o borrar todas sus réplicas.
Configuración La configuración de la instancia principal se propaga a la réplica, incluidos los cambios realizados en los datos sobre los usuarios que pueden acceder a la instancia.
Detener una réplica No puedes stop una réplica. Puedes aplicar restart o delete en ella, pero no puedes detenerla como lo haces con una instancia principal.
Actualiza una réplica Las réplicas de lectura pueden experimentar una actualización perjudicial en cualquier momento.
Tablas de usuarios No puedes realizar cambios en la réplica. Todas las modificaciones de usuario se deben realizar en la instancia principal.

Limitaciones

  • Esta función solo se aplica a las siguientes versiones de Cloud SQL para SQL Server:

    • SQL Server 2017 Enterprise
    • SQL Server 2019 Enterprise
    • SQL Server 2022 Enterprise
  • Los accesos no se propagan a una réplica.

  • Debes supervisar la réplica mediante T-SQL o SQL Server Management Studio.

  • Antes de borrar una base de datos, debes cerrar las conexiones de base de datos.

  • Cuando creas una réplica, la instancia principal no puede contener bases de datos en modo de usuario único. De lo contrario, la creación de la réplica fallará.

¿Qué sigue?