Configuration de la réplication différée avec My SQL - Amazon Relational Database Service

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 différée avec My SQL

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_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 .

  • 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.

Note
  • Sur RDS My SQL 8.0, la réplication différée est prise en charge pour My SQL 8.0.28 et versions ultérieures. Sur RDS My SQL 5.7, la réplication différée est prise en charge pour My SQL 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, le AWS CLI, ou l'Amazon RDSAPI.

  • RDSPour les versions My SQL 5.7.44 et supérieures de My SQL 5.7 et RDS pour les versions de My SQL 8.0.28 et supérieures 8.0, vous pouvez utiliser la réplication basée sur des identificateurs de transaction globaux (GTIDs) dans une configuration de réplication différée. Si vous utilisez la réplication GTID basée, utilisez la procédure stockée au lieu de la procédure stockée. Pour plus d'informations sur la réplication GTID basée, consultezUtilisation de GTID la réplication basée.

Configuration de la réplication retardée pendant la création du réplica en lecture

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_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 SQL client My, connectez-vous à l'instance My SQL DB pour être la source des répliques de lecture en tant qu'utilisateur principal.

  2. Exécutez la procédure stockée 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'aide du AWS CLI ou Amazon RDS API est configuré 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

Pour modifier la réplication retardée pour un réplica en lecture existant, exécutez la procédure stockée mysql.rds_set_source_delay.

Pour modifier la réplication retardée pour un réplica en lecture existant
  1. À l'aide d'un SQL client My, connectez-vous à la réplique lue en tant qu'utilisateur principal.

  2. Utilisez la procédure stockée mysql.rds_stop_replication pour arrêter la réplication.

  3. Exécutez la procédure stockée 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);
  4. Utilisez la procédure stockée 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

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 .

Pour démarrer la réplication vers un réplica en lecture et l'arrêter à une position donnée
  1. À l'aide d'un SQL client My, connectez-vous à l'instance My SQL DB source en tant qu'utilisateur principal.

  2. Exécutez la procédure stockée .

    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'RDSévénement 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

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.