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 de la réplication basée sur les répliques de lecture existantes pour RDS for My SQL
Pour une instance My SQL DB existante avec des répliques en lecture qui n'utilisent pas de réplication GTID basée, vous pouvez configurer la réplication GTID basée entre l'instance de base de données et les répliques en lecture.
Pour activer la réplication GTID basée sur les répliques de lecture existantes
-
Si l'instance de base de données ou toute réplique de lecture utilise une version 8.0 de RDS for My inférieure à 8.0.26, mettez à niveau l'instance de base de données ou la réplique de lecture vers la SQL version 8.0.26 ou une version ultérieure de My 8.0. SQL Toutes les versions RDS de My SQL 5.7 prennent en charge la réplication GTID basée sur la réplication.
Pour de plus amples informations, veuillez consulter Mises à niveau du moteur RDS for My SQL DB.
-
(Facultatif) Réinitialisez les GTID paramètres, testez le comportement de l'instance de base de données et lisez les répliques :
-
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 surWARN
.Pour plus d'informations sur la définition des paramètres de configuration à l'aide de groupes de paramètres, veuillez consulter 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 concernant des transactions GTID incompatibles, ajustez votre application afin qu'elle n'utilise que des fonctionnalités GTID compatibles. Assurez-vous que l'instance de base de données ne génère aucun avertissement concernant les transactions GTID incompatibles avant de passer à l'étape suivante.
-
-
Réinitialisez les GTID paramètres de la réplication GTID basée qui autorise 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 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.
SHOW MASTER STATUS;
Notez les valeurs dans les colonnes
File
etPosition
. -
Sur chaque réplica en lecture, utilisez les informations de fichier et de position de 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 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 GTID paramètres pour la réplication GTID basée 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.
CALL mysql.rds_set_master_auto_position(1);