

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configuration de la réplication retardée avec MySQL
<a name="USER_MySQL.Replication.ReadReplicas.DelayReplication"></a>

Vous pouvez utiliser la réplication retardée comme stratégie pour la reprise après sinistre. Avec la réplication retardée, vous spécifiez la durée minimale, en secondes, pour retarder la réplication de la source vers la réplique de lecture. En cas de sinistre, par exemple la suppression accidentelle d'une table, vous appliquez la procédure suivante pour reprendre rapidement après le sinistre :
+ Arrêtez la réplication vers le réplica en lecture avant que lui soit envoyée la modification qui a provoqué le sinistre.

  Utilisez la procédure stockée [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication) pour arrêter la réplication.
+ Arrêtez la réplication et précisez qu'elle doit s'arrêter automatiquement à une position donnée dans un fichier journal.

  Vous indiquez une position juste avant le sinistre grâce à la procédure stockée [](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until).
+ Effectuez la promotion du réplica en lecture pour qu'il devienne la nouvelle instance de base de données source, en suivant les instructions figurant dans [Promotion d'un réplica en lecture en instance de bases de données autonome](USER_ReadRepl.Promote.md).

**Note**  
Sur RDS for MySQL 8.4, la réplication retardée est prise en charge pour MySQL 8.4.3 et versions ultérieures. Sur RDS for MySQL 8.0, la réplication retardée est prise en charge pour MySQL 8.0.28 et versions ultérieures. Sur RDS for MySQL 5.7, la réplication retardée est prise en charge pour MySQL 5.7.44 et versions ultérieures.
Utilisez des procédures stockées pour configurer la réplication retardée. Vous ne pouvez pas configurer la réplication différée avec AWS Management Console AWS CLI, l'API ou l'API Amazon RDS.
Vous pouvez utiliser la réplication basée sur les identificateurs de transaction globaux (GTIDs) dans une configuration de réplication différée pour les versions suivantes :  
RDS for MySQL version 5.7.44 et versions 5.7 ultérieures
RDS for MySQL version 8.0.28 et versions 8.0 ultérieures
RDS for MySQL version 8.4.3 et versions 8.4 ultérieures
Si vous utilisez une réplication basée sur des identifiants de transaction globaux (GTID), utilisez la procédure stockée [](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) au lieu de la procédure stockée [](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until). Pour en savoir plus sur les réplications basées sur des identifiants de transaction globaux (GTID), consultez [Utilisation de la réplication basée sur des identifiants de transaction globaux (GTID)](mysql-replication-gtid.md).

**Topics**
+ [Configuration de la réplication retardée pendant la création du réplica en lecture](#USER_MySQL.Replication.ReadReplicas.DelayReplication.ReplicaCreation)
+ [Modification de la réplication retardée pour un réplica en lecture existant](#USER_MySQL.Replication.ReadReplicas.DelayReplication.ExistingReplica)
+ [Définition d'une position où arrêter la réplication vers un réplica en lecture](#USER_MySQL.Replication.ReadReplicas.DelayReplication.StartUntil)
+ [Promotion d’un réplica en lecture](#USER_MySQL.Replication.ReadReplicas.DelayReplication.Promote)

## Configuration de la réplication retardée pendant la création du réplica en lecture
<a name="USER_MySQL.Replication.ReadReplicas.DelayReplication.ReplicaCreation"></a>

Pour configurer la réplication retardée pour tout réplica en lecture à venir créé à partir d'une instance de base de données, exécutez la procédure stockée [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) avec le paramètre `target delay`.

**Pour configurer la réplication retardée pendant la création du réplica en lecture**

1. À l'aide d'un client MySQL, connectez-vous à l'instance de base de données MySQL qui constituera la source des réplicas en lecture en tant qu'utilisateur principal.

1. Exécutez la procédure stockée [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) avec le paramètre `target delay`.

   Par exemple, exécutez la procédure stockée suivante pour indiquer que la réplication est retardée d'au moins une heure (3 600 secondes) pour tout réplica en lecture créé à partir de l'instance de base de données actuelle.

   ```
   call mysql.rds_set_configuration('target delay', 3600);
   ```
**Note**  
Après avoir exécuté cette procédure stockée, toute réplique de lecture que vous créez à l' AWS CLI aide de l'API Amazon RDS est configurée avec un délai de réplication du nombre de secondes spécifié.

## Modification de la réplication retardée pour un réplica en lecture existant
<a name="USER_MySQL.Replication.ReadReplicas.DelayReplication.ExistingReplica"></a>

Pour modifier la réplication retardée pour un réplica en lecture existant, exécutez la procédure stockée [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay).

**Pour modifier la réplication retardée pour un réplica en lecture existant**

1. En utilisant un client MySQL, connectez-vous au réplica en lecture en tant qu'utilisateur principal.

1. Utilisez la procédure stockée [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication) pour arrêter la réplication.

1. Exécutez la procédure stockée [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay).

   Par exemple, exécutez la procédure stockée suivante pour indiquer que la réplication vers le réplica en lecture est retardée d'au moins une heure (3 600 secondes).

   ```
   call mysql.rds_set_source_delay(3600);
   ```

1. Utilisez la procédure stockée [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) pour lancer la réplication.

## Définition d'une position où arrêter la réplication vers un réplica en lecture
<a name="USER_MySQL.Replication.ReadReplicas.DelayReplication.StartUntil"></a>

Après avoir arrêté la réplication vers le réplica en lecture, vous pouvez démarrer la réplication, puis l'arrêter à la position spécifiée dans le fichier journal binaire en utilisant la procédure stockée [](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until).

**Pour démarrer la réplication vers un réplica en lecture et l'arrêter à une position donnée**

1. En utilisant un client MySQL, connectez-vous à l'instance de base de données MySQL source en tant qu'utilisateur principal.

1. Exécutez la procédure stockée [](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until).

   L’exemple suivant lance la réplication et réplique les modifications jusqu’à ce qu’il atteigne la position `120` dans le fichier journal binaire `mysql-bin-changelog.000777`. Dans un scénario de reprise après sinistre, nous supposons que cette position `120` est juste avant le sinistre.

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

La réplication s’arrête automatiquement lorsque le point d’arrêt est atteint. L’événement RDS suivant est généré: `Replication has been stopped since the replica reached the stop point specified by the rds_start_replication_until stored procedure`.

## Promotion d’un réplica en lecture
<a name="USER_MySQL.Replication.ReadReplicas.DelayReplication.Promote"></a>

Après l'arrêt de la réplication, dans un scénario de reprise après sinistre, vous pouvez promouvoir un réplica en lecture comme nouvelle instance de base de données source. Pour de plus amples informations sur la promotion d'un réplica en lecture, veuillez consulter [Promotion d'un réplica en lecture en instance de bases de données autonome](USER_ReadRepl.Promote.md).