View a markdown version of this page

Activation GTID-based de la réplication pour les répliques de lecture existantes pour RDS for MySQL - 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.

Activation GTID-based de la réplication pour les répliques de lecture existantes pour RDS for MySQL

Pour une instance de base de données MySQL existante avec des répliques en lecture qui n'utilisent pas la GTID-based réplication, vous pouvez configurer la GTID-based réplication entre l'instance de base de données et les répliques en lecture.

Pour activer GTID-based la réplication pour les répliques de lecture existantes
  1. Si l’instance de base de données ou un réplica en lecture utilise une version 8.0 de RDS for MySQL inférieure à la version 8.0.26, mettez à niveau l’instance de base de données ou le réplica en lecture vers la version 8.0.26 ou une version supérieure de MySQL 8.0. Toutes les versions 8.4 et 5.7 de RDS for MySQL prennent en charge GTID-based la réplication.

    Pour de plus amples informations, veuillez consulter Mises à niveau du moteur de base de données RDS for MySQL.

  2. (Facultatif) Réinitialisez les paramètres GTID et testez le comportement de l’instance de base de données et des réplicas en lecture :

    1. Assurez-vous que le groupe de paramètres associé à l’instance de base de données et à chaque réplica en lecture contient le paramètre enforce_gtid_consistency défini sur WARN.

      Pour plus d’informations sur la définition des paramètres de configuration à l’aide de groupes de paramètres, consultez Groupes de paramètres pour Amazon RDS.

    2. Si vous avez modifié le groupe de paramètres de l’instance de base de données, redémarrez celle-ci. Si vous modifiez le groupe de paramètres pour un réplica en lecture, redémarrez celui-ci.

      Pour plus d’informations, consultez Redémarrage d'une instance de base de données cluster de base de données.

    3. Exécutez votre instance de base de données et vos réplicas en lecture avec votre charge de travail normale et surveillez les fichiers journaux.

      Si des avertissements concernant des GTID-incompatible transactions s'affichent, ajustez votre application pour qu'elle n'utilise que des GTID-compatible fonctionnalités. Assurez-vous que l'instance de base de données ne génère aucun avertissement concernant GTID-incompatible les transactions avant de passer à l'étape suivante.

  3. Réinitialisez les paramètres GTID pour la GTID-based réplication afin d'autoriser les transactions anonymes jusqu'à ce que les répliques en lecture les aient toutes traitées.

    1. Assurez-vous que le groupe de paramètres associé à l’instance de base de données et à chaque réplica en lecture contient la configuration de paramètres suivante :

      • gtid_modeON_PERMISSIVE

      • enforce_gtid_consistencyON

    2. Si vous avez modifié le groupe de paramètres de l’instance de base de données, redémarrez celle-ci. Si vous modifiez le groupe de paramètres pour un réplica en lecture, redémarrez celui-ci.

  4. Attendez que toutes vos transactions anonymes soient répliquées. Pour vérifier qu’elles ont été répliquées, procédez comme suit :

    1. Exécutez l’instruction suivante sur votre instance de base de données source.

      MySQL 8.4

      SHOW BINARY LOG STATUS;

      MySQL 5.7 et 8.0

      SHOW MASTER STATUS;

      Notez les valeurs dans les colonnes File et Position.

    2. Sur chaque réplica en lecture, utilisez les informations de fichier et de position de l’instance source lors de l’étape précédente pour exécuter la requête suivante.

      SELECT MASTER_POS_WAIT('file', position);

      Par exemple, si votre fichier se nomme mysql-bin-changelog.000031 et que sa position est 107, exécutez l’instruction suivante.

      SELECT MASTER_POS_WAIT('mysql-bin-changelog.000031', 107);

      Si le réplica en lecture a dépassé la position spécifiée, la requête renvoie immédiatement un résultat. Sinon, la fonction attend. Passez à l’étape suivante lorsque la requête a renvoyé un résultat pour tous les réplicas en lecture.

  5. Réinitialisez les paramètres GTID pour la GTID-based réplication uniquement.

    1. Assurez-vous que le groupe de paramètres associé à l’instance de base de données et à chaque réplica en lecture contient la configuration de paramètres suivante :

      • gtid_modeON

      • enforce_gtid_consistencyON

    2. Redémarrez l’instance de base de données et chaque réplica en lecture.

  6. Sur chaque réplica en lecture, exécutez la procédure suivante.

    Versions majeures MySQL 8.4 et ultérieures

    CALL mysql.rds_set_source_auto_position(1);

    Versions majeures MySQL 8.0 et antérieures

    CALL mysql.rds_set_master_auto_position(1);