La replicación es la capacidad de crear copias de una instancia de Cloud SQL o de una base de datos local y descargar trabajo a las copias.
Introducción
La razón principal para utilizar la replicación es escalar el uso de datos en una base de datos sin degradar el rendimiento.
Otras razones incluyen:
- Migración de datos entre regiones
- Migración de datos entre plataformas
- Migración de datos de una base de datos local a Cloud SQL
Además, se podría promover una réplica si la instancia original se corrompe.
Al referirnos a una instancia de Cloud SQL, la instancia replicada se denomina instancia principal y las copias, réplicas de lectura . La instancia principal y las réplicas de lectura residen en Cloud SQL.
Al referirse a una base de datos local, el escenario de replicación se denomina replicación desde un servidor externo . En este escenario, la base de datos que se replica es el servidor de base de datos de origen . Las copias que residen en Cloud SQL se denominan réplicas de Cloud SQL . También existe una instancia que representa el servidor de base de datos de origen en Cloud SQL, denominada instancia de representación de origen .
En un escenario de recuperación ante desastres, puede promover una réplica para convertirla en una instancia principal. De esta manera, puede usarla en lugar de una instancia que se encuentre en una región con una interrupción. También puede promover una réplica para reemplazar una instancia dañada.
Cloud SQL admite los siguientes tipos de réplicas:
Al usar la aplicación de conectores , puede usar únicamente el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL para conectarse a instancias de Cloud SQL. Con la aplicación de conectores, Cloud SQL rechaza las conexiones directas a la base de datos. No se pueden crear réplicas de lectura para una instancia que tenga habilitada la aplicación de conectores. De igual manera, si una instancia tiene réplicas de lectura, no se puede habilitar la aplicación de conectores para ella.
También puede usar el Servicio de Migración de Bases de Datos para la replicación continua desde un servidor de base de datos de origen a Cloud SQL. Nota: Cloud SQL permite a los usuarios gestionar su propia replicación mediante las funciones de replicación lógica de PostgreSQL.Cloud SQL no admite la replicación entre dos servidores externos.
Leer réplicas
Se utiliza una réplica de lectura para descargar trabajo de una instancia de Cloud SQL. Esta réplica es una copia exacta de la instancia principal. Los datos y otros cambios en la instancia principal se actualizan prácticamente en tiempo real en la réplica de lectura.
Las réplicas de lectura son de solo lectura; no se puede escribir en ellas. La réplica de lectura procesa consultas, solicitudes de lectura y tráfico analítico, lo que reduce la carga en la instancia principal.
Se conecta a una réplica directamente usando su nombre de conexión y dirección IP. Si se conecta a una réplica con una dirección IP privada, no necesita crear 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, consulte Creación de réplicas de lectura . Para obtener información sobre cómo administrar una réplica de lectura, consulte Administración de réplicas de lectura .
Como práctica recomendada, coloque las réplicas de lectura en una zona diferente a la de la instancia principal cuando utilice alta disponibilidad (HA) en esta. Esto garantiza que las réplicas de lectura sigan funcionando cuando la zona que contiene la instancia principal sufra una interrupción. Consulte la sección "Descripción general de la alta disponibilidad" para obtener más información.
Seleccionar un tipo de máquina apropiado
Las réplicas de lectura pueden tener una cantidad de vCPU y memoria diferente a la de la instancia principal. Debe supervisar las métricas de su instancia, como el uso de CPU y memoria, para garantizar que la réplica tenga el tamaño correcto para su carga de trabajo, especialmente si es menor que la instancia principal. Una réplica con un tamaño insuficiente es más propensa a un rendimiento bajo, como frecuentes eventos de falta de memoria (OOM).
Capacidad de almacenamiento en réplicas de lectura
Cuando se redimensiona una instancia principal, también se redimensionan todas sus réplicas de lectura, si es necesario, para que tengan al menos tanta capacidad de almacenamiento como la instancia principal actualizada.
Impacto en el indicador max_connections
cuando la réplica de lectura tiene un tipo de máquina con menos memoria que la principal
En una instancia de PostgreSQL, si no se configura el indicador max_connections
con un valor de su elección, Cloud SQL lo configura automáticamente según la cantidad de memoria de la instancia. Para obtener más información, consulte indicadores compatibles . PostgreSQL requiere que el valor de max_connections
sea siempre al menos tan grande en una réplica de lectura como en su instancia principal. Por lo tanto, si una réplica de lectura tiene menos memoria que su instancia principal y no se ha configurado el indicador max_connections
, podría heredar un valor mayor de max_connections
según el tamaño de la instancia principal. En este caso, si se utiliza el parámetro max_connections
para limitar el número de conexiones a la instancia de réplica, esta podría sobrecargarse debido a que el valor es demasiado alto en relación con el tipo de máquina de la instancia. Para evitar esto, puede realizar cualquiera de las siguientes acciones:
- Cambie el tamaño de la instancia de réplica a un tipo de máquina más grande.
- Configure su aplicación cliente para limitarla a una cantidad de conexiones que sea menor que el valor de
max_connections
. - Establezca el indicador
max_connections
en el servidor principal y en la réplica en un valor apropiado.
Operaciones de índice hash mediante réplicas de lectura
Las operaciones de índice hash no utilizan el registro de escritura anticipada en PostgreSQL 9.6. Cloud SQL solo tiene una versión disponible en PostgreSQL 10. Esto se documenta en el recuadro de precaución amarillo de la página de versiones de PostgreSQL . Esto también aplica a las réplicas de lectura de Cloud SQL.
Dado que las actualizaciones del índice hash no se propagan a la réplica de lectura en PostgreSQL 9.6, esta no puede usarlas. Como solución alternativa, puede evitar tener réplicas de lectura o actualizar a una versión principal de PostgreSQL (10 o superior) .
Réplicas de lectura entre regiones
La replicación entre regiones permite crear una réplica de lectura en una región distinta a la de la instancia principal. Se crea una réplica de lectura entre regiones de la misma manera que una réplica dentro de la región .
Réplicas entre regiones:
- Mejore el rendimiento de lectura haciendo que las réplicas estén disponibles más cerca de la región de su aplicación.
- Proporcionar capacidad adicional de recuperación ante desastres para protegerse contra una falla regional.
- Le permite migrar datos de una región a otra.
Consulte Promoción de réplicas para migración regional o recuperación ante desastres para obtener más información sobre las réplicas entre regiones.
Réplicas de lectura en cascada
La replicación en cascada permite crear una réplica de lectura bajo otra réplica de lectura en la misma región o en una diferente. Los siguientes escenarios son ejemplos de uso de réplicas en cascada:
- Recuperación ante desastres : Puede usar una jerarquía en cascada de réplicas de lectura para simular la topología de su 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 bajo la nueva instancia principal continúan replicándose y están listas para usarse.
- Mejoras de rendimiento : reduzca la carga en la instancia principal al descargar el trabajo de replicación a múltiples réplicas de lectura.
- Lecturas a escala : puedes tener más réplicas para compartir la carga de lectura.
- Reducción de costos : puede reducir los costos de red al utilizar una única réplica en cascada con replicación entre regiones en otras regiones.
Terminología
- Réplica en cascada : una 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 agrega cuatro réplicas a una instancia, estas estarán en el mismo nivel.
- Instancias hermanas : Varias réplicas que se replican desde la misma instancia principal. Las réplicas hermanas se encuentran en el mismo nivel en la jerarquía de réplicas. Una réplica puede tener oficialmente hasta ocho réplicas hermanas.
- Réplica de hoja : Una réplica de lectura que no tiene réplicas propias. En una jerarquía de replicación multinivel, la réplica de hoja es el último nivel.
- Promocionar: Una acción que convierte una réplica, en cualquier nivel de la jerarquía, en una instancia principal. Al promocionarse, se conserva la jerarquía de réplicas en cascada de la réplica.
Configurar réplicas en cascada
Las réplicas en cascada permiten agregar réplicas de lectura a cualquier réplica existente. Se pueden agregar hasta cuatro niveles de réplicas, incluida la instancia principal. Al ascender la réplica en la parte superior de una jerarquía de réplicas en cascada, se convierte en instancia principal y sus réplicas en cascada continúan replicándose.
Para planificar su configuración, debe definir un objetivo para las réplicas de lectura. Las dos siguientes secciones describen las configuraciones para la recuperación ante desastres y la replicación multirregional.
Recuperación ante desastres
Para comprender cómo las réplicas en cascada lo ayudan a recuperarse rápidamente durante una interrupción, considere el siguiente escenario de replicación:
Configuración
Corte
Promoción
Si desea utilizar una instancia en la Región B en una configuración de recuperación ante desastres y tiene:
- Réplicas en la misma región adjunta a la instancia principal (Réplica A)
- Réplicas en otras regiones (réplica en cascada) adjuntas a la principal.
Puede crear réplicas de lectura en la réplica en cascada en la Región B.
En la pestaña "Interrupción" , si se produce una interrupción en la Región A, la réplica en cascada se convierte en instancia principal. Ya cuenta con réplicas de lectura, lo que reduce el objetivo de tiempo de recuperación (RTO).
En la pestaña Promocionar , verá que cuando se promueve una réplica en cascada, sus réplicas también se promueven y continúan replicándose debajo de ella.
Replicación multirregional
Otro caso de uso para las réplicas en cascada es distribuir la capacidad de lectura a una segunda región de forma rentable. Se pueden crear réplicas en cascada C y D que repliquen desde la réplica B. Los clientes pueden distribuir las consultas de lectura entre las réplicas B, C y D para reducir la carga en cada una. El costo del tráfico de red entre regiones se incurre solo una vez, desde la instancia principal hasta la réplica B. La replicación de B a C y D utiliza transferencia de red dentro de la región, que es gratuita.
Puede crear una jerarquía de hasta cuatro instancias utilizando réplicas en cascada para la replicación multirregional:
Primaria A → Réplica B → Réplica C y Réplica D
Restricciones
- No se puede eliminar una réplica que tenga réplicas bajo ella. Para eliminarla, debe comenzar con las réplicas hoja y ascender 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.
Replicación lógica
Cloud SQL le permite configurar sus propias soluciones de replicación mediante las funciones de replicación lógica de PostgreSQL. La replicación lógica es una solución flexible que permite:
- Replicación estándar de una instancia principal a una réplica
- Replicación selectiva de sólo ciertas tablas o filas
- Replicación en las principales versiones de PostgreSQL
- Replicación a bases de datos que no sean PostgreSQL
- Flujos de trabajo de captura de datos de cambio (CDC) donde todos los cambios de la base de datos se transmiten a un consumidor
Para obtener más información, consulte Configuración de la replicación lógica . Esta página incluye información sobre:
- Replicación lógica incorporada
- La extensión pglogical
Casos de uso de replicación
Los siguientes casos de uso se aplican para cada tipo de replicación.
Nombre | Primario | Réplica | Beneficios y casos de uso | Más información |
---|---|---|---|---|
Leer réplica | Instancia de Cloud SQL | Instancia de Cloud SQL |
| |
Réplica de lectura entre regiones | Instancia de Cloud SQL | Instancia de Cloud SQL |
| |
Replicación lógica | Cualquier instancia de PostgreSQL | Cualquier instancia de PostgreSQL o un consumidor externo |
|
Facturación
- Una réplica de lectura se cobra al mismo precio que una instancia estándar de Cloud SQL. La replicación de datos es gratuita.
- El precio de una réplica de lectura entre regiones es el mismo que el de la creación de una nueva instancia de Cloud SQL en la región. Consulte los precios de las instancias de Cloud SQL y seleccione la región correspondiente. Además del coste habitual de la instancia, una réplica entre regiones genera cargos por transferencia de datos entre regiones por los registros de replicación enviados desde la instancia principal a la instancia de réplica, como se describe en Precios de salida de red .
Referencia rápida para réplicas de lectura de Cloud SQL
Tema | Discusión |
---|---|
Copias de seguridad | No se pueden configurar copias de seguridad en la réplica. |
Núcleos y memoria | Las réplicas de lectura pueden utilizar una cantidad de núcleos y de memoria diferentes a las de la instancia principal. |
Eliminar la instancia principal | Antes de poder eliminar una instancia principal, debe promover todas sus réplicas de lectura a instancias independientes o eliminar las réplicas de lectura. |
Eliminar la réplica | Cuando se elimina una réplica, no hay ningún impacto en el estado de la instancia principal. |
Deshabilitar el registro de escritura anticipada | Antes de poder deshabilitar los registros de escritura anticipada en una instancia principal, debe promover o eliminar todas sus réplicas de lectura. |
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 durante una interrupción. |
Alta disponibilidad | Las réplicas de lectura le permiten habilitar alta disponibilidad en las réplicas. |
Equilibrio de carga | Cloud SQL no ofrece equilibrio de carga entre réplicas. Puede implementarlo en su instancia de Cloud SQL. También puede usar la agrupación de conexiones para distribuir las consultas entre réplicas con su configuración de equilibrio de carga y así obtener un mejor rendimiento. |
Ventanas de mantenimiento | Las réplicas de lectura comparten ventanas de mantenimiento con la instancia principal. Siguen la configuración de mantenimiento de la instancia principal, incluyendo la ventana de mantenimiento, la reprogramación y el periodo de denegación de mantenimiento. Durante el mantenimiento, Cloud SQL actualiza primero todas las réplicas de lectura antes de actualizar la instancia principal. |
Múltiples réplicas de lectura | Cloud SQL admite réplicas en cascada . Por lo tanto, puede crear hasta 10 réplicas para una sola instancia principal y crear réplicas de esas réplicas, hasta en cuatro niveles, incluida la instancia principal. |
IP privada | Si se conecta a una réplica mediante una dirección IP privada, no necesita crear una conexión privada de VPC adicional para la réplica, ya que se hereda de la instancia principal. |
Restaurar la instancia principal | No se puede restaurar la instancia principal de una réplica mientras esta exista. Antes de restaurar una instancia desde una copia de seguridad o de realizar una recuperación a un momento dado, debe promover o eliminar todas sus réplicas. |
Ajustes | Las configuraciones de la instancia principal se propagan a la réplica, incluida la contraseña del usuario postgres y los cambios en la tabla de usuarios. |
Detener una réplica | No se puede stop una réplica. Se puede restart , delete o disable replication , pero no se puede detener como ocurre con una instancia principal. |
Actualizar una réplica | Las réplicas de lectura pueden experimentar una actualización disruptiva en cualquier momento. |
Tablas de usuario | No se pueden realizar cambios en la réplica. Todos los cambios de usuario deben realizarse en la instancia principal. |
¿Qué sigue?
- Aprenda a crear una réplica de lectura .
- Aprenda a configurar una instancia para alta disponibilidad .