Configuración de la replicación retrasada con MySQL - Amazon Relational Database Service

Configuración de la replicación retrasada con MySQL

Puede utilizar la replicación retrasada como estrategia de recuperación de desastres. Con la replicación retardada, se especifica el tiempo mínimo, en segundos, que se retardará la replicación desde la instancia de origen a la réplica de lectura. En caso de desastre, por ejemplo, si se elimina una tabla involuntariamente, el procedimiento siguiente permite recuperarse rápidamente del desastre:

nota
  • En Amazon RDS para MySQL 8.4, la replicación retrasada es compatible con MySQL 8.4.3 y versiones posteriores. En Amazon RDS para MySQL 8.0, la replicación retrasada es compatible con MySQL 8.0.28 y versiones posteriores. En Amazon RDS para MySQL 5.7, la replicación retardada es compatible con MySQL 5.7.44 y versiones posteriores.

  • Use procedimientos almacenados para configurar la replicación retardada. La reproducción retrasada no se puede configurar con la AWS Management Console, la AWS CLI o la API de Amazon RDS.

  • Puede usar la replicación basada en identificadores de transacciones globales (GTID) en una configuración de replicación retrasada para las versiones siguientes.

    • RDS para MySQL versión 5.7.44 y versiones 5.7 posteriores

    • RDS para MySQL versión 8.0.28 y versiones 8.0 posteriores

    • RDS para MySQL versión 8.4.3 y versiones 8.4 posteriores

    Si usa una replicación basada en GTID, use el procedimiento almacenado mysql.rds_start_replication_until_gtid en lugar del procedimiento almacenado mysql.rds_start_replication_until. Para obtener más información sobre la replicación basada en GTID, consulte Uso de la replicación basada en GTID.

Configuración de la replicación retrasada durante la creación de réplicas de lectura

Para configurar la replicación retardada para cualquier réplica de lectura futura creada a partir de una instancia de base de datos, ejecute el procedimiento almacenado mysql.rds_set_configuration con el parámetro target delay.

Para configurar la replicación retardada durante la creación de réplicas de lectura
  1. Utilice un cliente de MySQL para conectarse como usuario maestro a la instancia de base de datos MySQL que vaya a ser el origen de las réplicas de lectura.

  2. Ejecute el procedimiento almacenado mysql.rds_set_configuration con el parámetro target delay.

    Por ejemplo, ejecute el siguiente procedimiento almacenado para especificar que la replicación se retardará al menos una hora (3600 segundos) para todas las réplicas de lectura creadas desde la instancia de base de datos actual.

    call mysql.rds_set_configuration('target delay', 3600);
    nota

    Después de ejecutar este procedimiento almacenado, todas las réplicas de lectura que cree mediante la AWS CLI o la API de Amazon RDS se configurarán con la reproducción retardada el número de segundos especificado.

Modificación de la replicación retrasada para una réplica de lectura existente

Para modificar la replicación retardada para una réplica de lectura existente, ejecute el procedimiento almacenado mysql.rds_set_source_delay.

Para modificar la replicación retardada de una réplica de lectura existente
  1. Use un cliente de MySQL para conectarse como usuario maestro a la réplica de lectura.

  2. Utilice el procedimiento almacenado mysql.rds_stop_replication para detener la replicación.

  3. Ejecute el procedimiento almacenado mysql.rds_set_source_delay.

    Por ejemplo, ejecute el siguiente procedimiento almacenado para especificar que la replicación en la réplica de lectura se retardará al menos una hora (3600 segundos).

    call mysql.rds_set_source_delay(3600);
  4. Utilice el procedimiento almacenado mysql.rds_start_replication para iniciar la replicación.

Establecimiento de una ubicación para detener la replicación en una réplica de lectura

Después de detener la replicación en la réplica de lectura, puede utilizar el procedimiento almacenado mysql.rds_start_replication_until para iniciar la replicación y volver a detenerla en una ubicación concreta del registro binario.

Para iniciar la replicación en una réplica de lectura y detenerla en una ubicación concreta
  1. Use un cliente de MySQL para conectarse como usuario maestro a la instancia de base de datos MySQL de origen.

  2. Ejecute el procedimiento almacenado mysql.rds_start_replication_until.

    En el ejemplo siguiente se inicia la replicación y se replican los cambios hasta que alcanza la ubicación 120 del archivo registro binario mysql-bin-changelog.000777. En una situación de recuperación de desastres, supongamos que la ubicación 120 es justo anterior al desastre.

    call mysql.rds_start_replication_until( 'mysql-bin-changelog.000777', 120);

La replicación se detiene automáticamente cuando se alcanza el punto de detención. Se genera el siguiente evento de RDS: Replication has been stopped since the replica reached the stop point specified by the rds_start_replication_until stored procedure.

Promoción de una réplica de lectura

Después de que se detenga la replicación, en una situación de recuperación de desastres, puede promocionar una réplica de lectura para que sea la nueva instancia de base de datos de origen. Para obtener información acerca de la promoción de una réplica de lectura, consulte Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente.