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 de la réplication GTID sur les réplicas en lecture existants dans RDS for MySQL
Pour une instance de base de données MySQL existante avec des réplicas en lecture qui n'utilise pas la réplication GTID, vous pouvez configurer la réplication GTID entre l'instance de base de données et les réplicas en lecture.
Pour activer la réplication GTID pour des réplicas en lecture existants
-
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 de RDS for MySQL 8.4 et 5.7 prennent en charge la réplication GTID.
Pour plus d’informations, consultez 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 modifiez 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.
-
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 vous recevez des avertissements relatifs à des transactions incompatibles avec les identifiants de transaction globaux, modifiez votre application de sorte qu'elle utilise uniquement des fonctions compatibles avec les identifiants de transaction globaux. Assurez-vous que l'instance de base de données ne génère aucun avertissement relatif à des transactions incompatibles avec les identifiants de transaction globaux avant de passer à l'étape suivante.
-
-
Réinitialisez les paramètres GTID de la réplication basée sur des identifiants de transaction globaux qui autorise les transactions anonymes jusqu'à ce que les réplicas 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 modifiez 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 uniquement pour la réplication GTID.
-
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);