Replicación en Cloud SQL

La replicación es la capacidad de crear copias de una instancia de Cloud SQL o una base de datos local y dejar que las copias hagan el trabajo.

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 incluyen los siguientes:

  • Migrar datos entre regiones
  • Migrar datos entre plataformas
  • Migrar datos desde una base de datos local a Cloud SQL

Además, una réplica podría ascender si la instancia original se daña.

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 hace referencia a una base de datos local, la situación de replicación se denomina replicación desde un servidor externo. En esta situación, la base de datos que se replica es el servidor de base de datos de origen. Las copias que residen en Cloud SQL se llaman réplicas de Cloud SQL. También hay una instancia que representa el servidor de base de datos de origen en Cloud SQL que se denomina instancia de representación de origen.

Cloud SQL admite los siguientes tipos de réplicas:

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.

Las réplicas de lectura pueden tener más CPU y memoria que la instancia principal, pero no pueden tener menos. Puedes tener hasta 10 réplicas de lectura por instancia principal.

Te conectas a una réplica directamente con su nombre y dirección IP de conexión.

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 la sección sobre cómo administrar réplicas de lectura.

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.

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 con un tiempo de inactividad mínimo.

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 externas

Las réplicas de lectura externas son instancias de MySQL externas que se replican desde la instancia principal de Cloud SQL. Por ejemplo, una instancia de MySQL que se ejecuta en Compute Engine se considera una instancia externa.

Las réplicas de lectura externas tienen las siguientes restricciones:

  • Tal vez no sea posible replicar a una instancia de MySQL alojada en otra plataforma en la nube. Consulta la documentación del otro proveedor. Por ejemplo, establecer el campo de configuración replicate-ignore-db es obligatorio, y no se admiten los proveedores de servicios en la nube que no lo permiten. Consulta Configura réplicas externas para obtener otros campos de configuración obligatorios.
  • Si la replicación se interrumpe por unas pocas horas, por ejemplo, debido a una interrupción de la red o del servidor, la réplica se retrasa en relación con la instancia principal. Una vez que se vuelva a conectar a la principal y comience a replicar de nuevo, la réplica debería recuperar el tiempo perdido. Sin embargo, si la replicación se interrumpe durante más tiempo del que se conservan los registros de replicación de Cloud SQL (siete copias de seguridad), debes borrar la réplica y crear una nueva.
  • Los datos que fluyen de la instancia principal a la réplica externa se cobran como salida de red. Consulta la página de precios a fin de conocer los precios de salida de red para el tipo de instancia de Cloud SQL.

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
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
Réplica de lectura externa Instancia de Cloud SQL Instancia de MySQL externa a Cloud SQL
  • Menor latencia para las conexiones externas
  • Objetivo de estadísticas
  • Ruta de migración hacia otras plataformas
Replicación desde un servidor externo Instancia de MySQL externa a Cloud SQL Instancia de Cloud SQL para MySQL
  • Ruta de acceso de migración a Cloud SQL
  • Replicación de datos hacia Google Cloud Platform
  • Objetivo de estadísticas

Requisitos previos para crear una réplica de lectura

Para poder crear una réplica de lectura de una instancia de Cloud SQL, la instancia debe cumplir con los siguientes requisitos:

  • Debes tener habilitadas las copias de seguridad automáticas.
  • El registro binario debe estar habilitado, lo que requiere que se habilite la recuperación de un momento determinado. Obtén más información sobre el impacto de estos registros.
  • Se debe haber creado al menos una copia de seguridad después de que se habilitó el registro binario.

Requisitos adicionales para la réplica externa:

  • La versión de MySQL de la réplica debe ser igual o superior a la versión de MySQL de la instancia principal. Más información
  • Por razones de seguridad, debes configurar SSL/TLS en tu instancia principal. Más información

Consecuencias de habilitar el registro binario

Debes habilitar la recuperación de un momento determinado para habilitar el registro binario en la instancia principal a fin de que admita réplicas de lectura. Esto implica las siguientes consecuencias:

  • Sobrecarga de rendimiento

    Cloud SQL usa la replicación basada en filas con las marcas sync_binlog=1 y innodb_support_xa=true de MySQL. Por lo tanto, se requiere un disco fsync adicional para cada operación de escritura, lo que reduce el rendimiento.

  • Sobrecarga de almacenamiento

    El almacenamiento de los registros binarios se cobra a la misma tarifa que los datos regulares. Los registros binarios se truncan de manera automática a la edad de la copia de seguridad automática más antigua. Cloud SQL, en la actualidad, conserva las siete copias de seguridad automáticas más recientes y todas las copias de seguridad a pedido. El tamaño de los registros binarios y, por lo tanto, el importe cobrado, dependen de la carga de trabajo. Por ejemplo, una carga de trabajo con mucha carga de escritura consume más espacio de registro binario que una carga de trabajo con mucha carga de lectura.

    Puedes consultar el tamaño de los registros binarios mediante el comando SHOW BINARY LOGS de MySQL.

    Cuando se realizan copias de seguridad, los registros se almacenan en la copia de seguridad junto con los datos.

  • Reinicio de la instancia

    Cuando se habilita o inhabilita el registro binario, la instancia se reinicia. Las conexiones de base de datos existentes se pierden y se deben volver a establecer.

Registro binario en réplicas de lectura

  • El registro binario es compatible con las instancias de réplica de lectura (solo MySQL 5.7 y 8.0). Puedes habilitar el registro binario en una réplica con los mismos comandos de API que en la instancia principal, mediante el nombre de instancia de la réplica en lugar del nombre de la instancia principal.

    La durabilidad del registro binario en la instancia de réplica (pero no en la instancia principal) se puede establecer con la marca sync_binlog, que controla la frecuencia con la que el servidor MySQL sincroniza el registro binario en el disco.

    El registro binario se puede habilitar en una réplica incluso cuando la copia de seguridad está inhabilitada en la instancia principal.

    Si una réplica que tiene este conjunto de valores se promueve a un servidor independiente, la configuración se restablece al valor seguro 1 en el servidor independiente.

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.
  • Debido a que una réplica siempre mantiene una conexión con su instancia principal, la instancia principal nunca se desactiva. Esta situación podría aumentar la facturación de la instancia principal. Más información
  • En el caso de las réplicas externas, los datos que fluyen de la instancia principal a la réplica externa se cobran como salida de red. Consulta la página de precios a fin de conocer los precios de salida de red para el tipo de instancia de Cloud SQL.
  • Además del costo normal asociado con cualquier instancia de Cloud SQL, una réplica entre regiones genera cargos de salida de red entre regiones por los registros de replicación enviados desde la instancia principal hacia la réplica, como se describe en Precios de salida de red.
  • El precio de una réplica de lectura entre regiones es el mismo que el de la creación de una instancia nueva en la región. Consulta los precios de las instancias de Cloud SQL y selecciona la región adecuada.

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

Tema Debate
Alta disponibilidad Las réplicas de lectura no proporcionan alta disponibilidad ni la ofrecen.
Conmutación por error Una instancia principal no puede conmutar por error a una réplica de lectura, y las réplicas de lectura no pueden conmutar por error de ninguna manera durante una interrupción.
Períodos de mantenimiento Los períodos de mantenimiento no se pueden establecer en réplicas de lectura y no comparten períodos de mantenimiento con la instancia principal. En la réplica de lectura, el mantenimiento puede ocurrir en cualquier momento. El mantenimiento de las réplicas de lectura ocurre en una hora diferente a la de la instancia principal.
Actualizaciones perjudiciales Las réplicas de lectura pueden experimentar una actualización perjudicial en cualquier momento.
Rendimiento Cuando creas una réplica de lectura, no afecta el rendimiento ni la disponibilidad de la instancia principal.
Varias réplicas de lectura Puedes crear hasta 10 réplicas de lectura para una sola instancia principal.
Balanceo de cargas Cloud SQL no proporciona balanceo de cargas entre las réplicas. Usa la agrupación de conexiones y distribuye las consultas en las réplicas.
Configuración La configuración de MySQL de la instancia principal se propaga a la réplica, incluidas la contraseña raíz y las modificaciones de la tabla de usuario. Los cambios en el nivel no se propagan a la réplica.
Replicación paralela Si quieres obtener información sobre cómo usar la replicación paralela para mejorar el rendimiento, consulta Cómo configurar la replicación paralela.
Tipos de máquina Las réplicas de lectura pueden ser de un tipo de máquina o un nivel diferentes de los de la instancia principal. Las réplicas de lectura pueden tener más CPU y memoria que la instancia principal, pero no pueden tener menos.
Tablas de usuarios No puedes realizar cambios en la tabla de usuario de la réplica. Todas las modificaciones de usuario se deben realizar en la instancia principal.
Copias de seguridad No puedes configurar copias de seguridad en la réplica.
Restablece la instancia principal No puedes restablecer la réplica principal mientras exista. 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.
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.
Inhabilitar el registro binario Para inhabilitar los registros binarios en una instancia principal, debes ascender o borrar todas sus réplicas de lectura.
Crea una réplica de una réplica No puedes crear una réplica de una réplica.
Detener una réplica No puedes stop una réplica. Puedes aplicar restart, delete o disable replication en ella, pero no puedes detenerla como lo haces con una instancia principal.

Próximos pasos