La replicación es la capacidad de crear copias de una instancia de Cloud SQL y derivar trabajo a las copias.
Introducción
El motivo principal para usar la réplica es escalar el uso de los datos en una base de datos sin que el rendimiento se vea afectado.
Otro motivo para usar la réplica es migrar datos entre regiones.
Además, si una instancia original está dañada, se podría ascender una réplica a instancia independiente (en cuyo caso, las réplicas existentes no considerarían esa instancia como 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 se encuentran en Cloud SQL.
Cuando se crea la primera réplica:
- La instancia principal se establece en el modelo de recuperación completa para todas las bases de datos de la instancia principal.
Se crea un disco temporal, se hace una copia de seguridad completa y se almacena en el disco temporal. El disco temporal se elimina una vez que se ha completado el proceso de creación de la réplica.
Si, durante el periodo de creación de la primera réplica, el usuario cambia al modelo de recuperación simple, la creación de la réplica falla.
Lo siguiente se aplica a las bases de datos añadidas a la instancia principal después de crear las réplicas:
- Las bases de datos se añaden automáticamente a los grupos de disponibilidad y se rellenan en las réplicas mediante la inicialización automática.
- Cada vez que se crea una réplica, se invoca una copia de seguridad completa (modelo de recuperación completa) de las bases de datos de la instancia principal. Los inicios de sesión y los objetos de servidor creados después de la creación de la réplica no se replican.
Cloud SQL admite los siguientes tipos de réplicas:
Si usas la aplicación de conectores, puedes obligar a que solo se usen el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL para conectarse a las instancias de Cloud SQL. Con la aplicación de conectores, Cloud SQL rechaza las conexiones directas a la base de datos. No puedes crear réplicas de lectura de una instancia que tenga habilitada la aplicación de conectores. Del mismo modo, si una instancia tiene réplicas de lectura, no puedes habilitar la aplicación de conectores en ella.
Cloud SQL no admite la replicación entre dos servidores externos.
Réplicas de lectura
Usas 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 de 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 escribir en ellas. La réplica de lectura procesa las consultas, las solicitudes de lectura y el tráfico de analíticas, lo que reduce la carga de la instancia principal. Puedes tener hasta 8 réplicas de lectura por instancia principal.
Puedes conectarte a una réplica directamente mediante su nombre de conexión y su dirección IP. Si te conectas a una réplica mediante una dirección IP privada, no es necesario que crees una conexión privada de VPC adicional para la réplica, ya que la conexión se hereda de la instancia principal.
Para obtener información sobre cómo crear una réplica de lectura, consulta el artículo Crear réplicas de lectura. Para obtener información sobre cómo gestionar una réplica de lectura, consulta el artículo Gestionar réplicas de lectura.
Como práctica recomendada, coloca las réplicas de lectura en una zona diferente a la de la instancia principal cuando uses la alta disponibilidad en la instancia principal. De esta forma, las réplicas de lectura siguen funcionando cuando la zona que contiene la instancia principal sufre una interrupción. Consulta la información general sobre la alta disponibilidad para obtener más información.
Seleccionar un tipo de máquina adecuado
Las réplicas de lectura pueden tener un número de vCPUs y una cantidad de memoria diferentes a los de la réplica principal. Debes monitorizar las métricas de tu instancia, como el uso de la CPU y la memoria, para asegurarte de que la instancia réplica tiene el tamaño adecuado para su carga de trabajo, sobre todo si es más pequeña que la instancia principal. Una instancia de réplica que sea demasiado pequeña es más propensa a tener un rendimiento deficiente, como eventos de falta de memoria (OOM) frecuentes.
Capacidad de almacenamiento en réplicas de lectura
Cuando se cambia el tamaño de una instancia principal, también se cambia el tamaño de todas sus réplicas de lectura, si es necesario, para que tengan al menos la misma capacidad de almacenamiento que la instancia principal actualizada.
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. Las réplicas de lectura entre regiones se crean de la misma forma que las réplicas de la misma región.
En el caso de las réplicas de lectura de SQL Server, se presupone que la réplica está en la misma red virtual que la réplica principal o que se comunican mediante una IP pública.Réplicas entre regiones:
- Mejora el rendimiento de lectura haciendo que las réplicas estén disponibles más cerca de la región de tu aplicación.
- Proporciona una función de recuperación tras desastres adicional para protegerte frente a un fallo regional.
- Te permite migrar datos de una región a otra.
Consulta Promocionar réplicas para la migración regional o la recuperación tras fallos para 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 de la misma región o de otra. Las réplicas en cascada se implementan mediante grupos de disponibilidad distribuidos. Estos son algunos casos prácticos de las réplicas en cascada:
- Recuperación tras fallos: puedes usar una jerarquía en 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 se convierte en principal y las réplicas de lectura de la nueva principal siguen replicándose y están listas para usarse. El antiguo dominio principal se convierte en secundario del nuevo cuando esté disponible y puedes volver a cambiar al antiguo una vez que se haya recuperado mediante un cambio. Para obtener más información sobre el uso de réplicas en cascada para la recuperación tras fallos, consulta Información sobre la recuperación tras fallos.
- Mejora del rendimiento: reduce la carga de la instancia principal descargando el trabajo de replicación en varias réplicas de lectura.
- Escalar lecturas: puedes tener más réplicas para compartir la carga de lectura.
- Reducción de costes: puede reducir los costes de red usando una sola réplica en cascada con la replicación entre regiones en otras regiones.
Terminología
- Réplica en cascada: réplica de lectura entre regiones que se puede usar para operaciones de cambio y de conmutación por error de réplica en recuperación tras fallos avanzada con Cloud SQL para SQL Server.
- Réplica en cascada: réplica de lectura que puede tener su propia réplica.
- Niveles: puede crear niveles de réplicas en una jerarquía de réplicas en cascada. Por ejemplo, si añades cuatro réplicas a una instancia, esas cuatro réplicas estarán al mismo nivel.
- Instancias secundarias: varias réplicas que se replican desde la misma instancia principal. Los elementos del mismo nivel están en el mismo nivel de la jerarquía de réplicas. Una réplica puede tener oficialmente hasta ocho réplicas hermanas.
- Réplica hoja: réplica de lectura que no tiene ninguna réplica propia. En una jerarquía de replicación multinivel, la réplica de hoja es el último nivel.
- Promover: 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éplicas en cascada de la réplica.
Configurar réplicas en cascada
Las réplicas en cascada te permiten añadir réplicas de lectura a cualquier réplica que ya tengas. Puedes añadir hasta cuatro niveles de réplicas, incluida la instancia principal. Cuando asciendes la réplica de la parte superior de una jerarquía de réplicas en cascada, se convierte en una instancia principal y sus réplicas en cascada siguen replicándose.
Para obtener más información sobre cómo configurar grupos de disponibilidad distribuidos, consulta el artículo Configurar un grupo de disponibilidad distribuido Always On.
Restricciones
- No puedes eliminar una réplica que tenga réplicas. Para eliminar la réplica, debes empezar por las réplicas de hoja y avanzar hacia arriba en la jerarquía.
- No se admite la dependencia de regiones circulares. Para que la réplica de una réplica en cascada esté 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 en cascada en una región diferente a la de la instancia principal. Después, puedes crear réplicas en cascada en la misma región que la réplica que se puede poner en cascada.
Casos prácticos de replicación
Los siguientes casos prácticos 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 |
|
|
Réplica de lectura entre regiones | Instancia de Cloud SQL | Instancia de Cloud SQL |
|
|
Replicación de SQL Server | Instancia externa a Cloud SQL | Instancia de Cloud SQL para SQL Server |
|
Facturación
- Una réplica de lectura se cobra a la misma tarifa que una instancia estándar de Cloud SQL. No se cobra nada por la replicación de datos.
- El precio de una réplica de lectura interregional es el mismo que el de crear una instancia de Cloud SQL en la región. Consulta los precios de las instancias de Cloud SQL y selecciona la región adecuada. Además del coste habitual asociado a la instancia, una réplica entre regiones incurre en cargos por transferencia de datos entre regiones por los registros de replicación enviados desde la instancia principal a la réplica, tal como se describe en la sección Precios del tráfico de salida de red.
Referencia rápida de 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 un número de núcleos y una cantidad de memoria diferentes a los de la instancia principal. |
Eliminar la instancia principal | Para poder eliminar una instancia principal, debes convertir todas sus réplicas de lectura en instancias independientes o eliminarlas. |
Eliminar la réplica | Cuando eliminas una réplica, no afecta al estado de la instancia principal. |
Eliminar una base de datos replicada | Puedes eliminar una base de datos de SQL Server replicada mediante la consola Google Cloud o el comando gcloud . La eliminación se propaga automáticamente a las réplicas. No puedes eliminar una base de datos de SQL Server replicada mediante comandos de T-SQL. |
Conmutación por error | Una instancia principal solo puede conmutar por error a una réplica si esta es una réplica de recuperación ante desastres. Las réplicas de lectura no pueden conmutar por error de ninguna forma durante una interrupción. |
Balanceo de carga | Cloud SQL no proporciona balanceo de carga entre réplicas. |
Ventanas de mantenimiento | Las réplicas de lectura comparten ventanas de mantenimiento con la instancia principal. Las réplicas siguen la configuración de mantenimiento de la instancia principal, incluida la ventana de mantenimiento, la reprogramación y el periodo de mantenimiento denegado. Durante el mantenimiento, Cloud SQL actualiza primero todas las réplicas de lectura y, después, 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 es necesario que crees una conexión privada de VPC adicional para la réplica, ya que se hereda de la instancia principal. |
Restaurar la instancia principal | No puedes restaurar la instancia principal de una réplica mientras la réplica exista. Antes de restaurar una instancia a partir de una copia de seguridad o de realizar una recuperación a un momento dado en ella, debes promocionar o eliminar todas sus réplicas. |
Ajustes | Los ajustes de la instancia principal se propagan a la réplica, incluidos los cambios en los datos de los usuarios que pueden acceder a la instancia. |
Detener una réplica | No puedes stop una réplica. Puedes restart o
delete , pero no puedes
detenerla como harías con una instancia principal. |
Actualizar una réplica | Las réplicas de lectura pueden experimentar una actualización disruptiva en cualquier momento. |
Tablas de usuarios | No puedes hacer cambios en la réplica. Todos los cambios de usuario deben realizarse 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 inicios de sesión no se propagan a una réplica.
Debes monitorizar tu réplica con T-SQL o SQL Server Management Studio.
Antes de eliminar una base de datos, debes cerrar las conexiones a ella.
Cuando creas una réplica, la instancia principal no puede contener bases de datos en modo de un solo usuario. De lo contrario, no se podrá crear la réplica.
La replicación no se puede configurar en una instancia configurada con replicación externa.
Siguientes pasos
- Aprende a crear una réplica de lectura.
- Consulta cómo configurar una instancia para alta disponibilidad.