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
-
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.
-
(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 :
-
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_consistencydéfini surWARN.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.
-
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.
-
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.
-
-
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.
-
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_mode–ON_PERMISSIVE -
enforce_gtid_consistency–ON
-
-
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.
-
-
Attendez que toutes vos transactions anonymes soient répliquées. Pour vérifier qu’elles ont été répliquées, procédez comme suit :
-
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
FileetPosition. -
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.000031et que sa position est107, 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.
-
-
Réinitialisez les paramètres GTID pour la GTID-based réplication uniquement.
-
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_mode–ON -
enforce_gtid_consistency–ON
-
-
Redémarrez l’instance de base de données et chaque réplica en lecture.
-
-
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);