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 d’un cluster actif-actif avec de nouvelles instances de base de données
Procédez comme suit pour configurer un cluster actif-actif à l’aide de nouvelles instances de base de données Amazon RDS for MySQL.
Si vous configurez un cluster actif-actif avec des instances de base de données dans plusieurs VPC, assurez-vous de remplir les conditions requises dans Préparation à un cluster actif-actif inter-VPC.
Rubriques
Étape 2 : Créer des instances de base de données RDS for MySQL pour le cluster actif-actif
Étape 3 : Spécifier les instances de base de données dans le cluster actif-actif
Étape 4 : Initialiser le groupe sur une instance de base de données et démarrer la réplication
Étape 5 : Démarrer la réplication sur les autres instances de base de données du cluster actif-actif
Étape 6 : (Recommandé) Vérifiez l’état du cluster actif-actif
Étape 1 : Définir les paramètres du cluster actif-actif dans un ou plusieurs groupes de paramètres personnalisés
Les instances de base de données RDS for MySQL d’un cluster actif-actif doivent être associées à un groupe de paramètres personnalisé dont les paramètres requis sont correctement définis. Pour en savoir plus sur les paramètres et le réglage requis pour chacun, consultez Réglages de paramètres requis pour les clusters actifs-actifs.
Vous pouvez définir ces paramètres dans de nouveaux groupes de paramètres ou dans des groupes de paramètres existants. Toutefois, pour éviter d’affecter accidentellement les instances de base de données qui ne font pas partie du cluster actif-actif, nous vous recommandons vivement de créer un nouveau groupe de paramètres personnalisé. Les instances de base de données d’un cluster actif-actif peuvent être associées au même groupe de paramètres de base de données ou à différents groupes.
Vous pouvez utiliser le AWS Management Console ou le AWS CLI pour créer un nouveau groupe de paramètres personnalisés. Pour de plus amples informations, veuillez consulter Création d’un groupe de paramètres de base de données dans Amazon RDS. L'exemple suivant exécute la create-db-parameter-group AWS CLI commande pour créer un groupe de paramètres de base de données personnalisé nommé d'après RDS pour MySQL 8.0 :myactivepg
Pour Linux, macOS ou Unix :
aws rds create-db-parameter-group \ --db-parameter-group-namemyactivepg\ --db-parameter-group-family mysql8.0 \ --description "Parameter group for active-active clusters"
Pour Windows :
aws rds create-db-parameter-group ^ --db-parameter-group-namemyactivepg^ --db-parameter-group-family mysql8.0 ^ --description "Parameter group for active-active clusters"
Vous pouvez également utiliser le AWS Management Console ou le AWS CLI pour définir les paramètres du groupe de paramètres personnalisés. Pour de plus amples informations, veuillez consulter Modification de paramètres dans un groupe de paramètres de base de données dans Amazon RDS.
L'exemple suivant exécute la modify-db-parameter-group AWS CLI commande pour définir les paramètres de RDS pour MySQL 8.0. Pour utiliser cet exemple avec RDS for MySQL 8.4, remplacez slave_preserve_commit_order par replica_preserve_commit_order.
Pour Linux, macOS ou Unix :
aws rds modify-db-parameter-group \ --db-parameter-group-namemyactivepg\ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" \ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" \ "ParameterName='group_replication_group_name',ParameterValue='11111111-2222-3333-4444-555555555555',ApplyMethod=pending-reboot"
Pour Windows :
aws rds modify-db-parameter-group ^ --db-parameter-group-name myactivepg ^ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" ^ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" ^ "ParameterName='group_replication_group_name',ParameterValue='11111111-2222-3333-4444-555555555555',ApplyMethod=pending-reboot"
Étape 2 : Créer des instances de base de données RDS for MySQL pour le cluster actif-actif
Les clusters actifs-actifs sont pris en charge pour les versions suivantes des instances de base de données RDS for MySQL :
-
Toutes les versions 8.4 de MySQL
-
MySQL 8.0.35 et versions mineures ultérieures
Vous pouvez créer jusqu’à neuf nouvelles instances de bases de données pour le cluster.
Vous pouvez utiliser le AWS Management Console ou le AWS CLI pour créer de nouvelles instances de base de données. Pour plus d’informations sur la création d’une instance de base de données, consultez Création d'une instance de base de données Amazon RDS. Lorsque vous créez l’instance de base de données, associez-la à un groupe de paramètres de base de données que vous avez créé ou modifié à l’étape précédente.
Étape 3 : Spécifier les instances de base de données dans le cluster actif-actif
Dans le groupe de paramètres de base de données associé à chaque instance de base de données, définissez le paramètre group_replication_group_seeds sur les points de terminaison des instances de base de données que vous souhaitez inclure dans le cluster.
Vous pouvez utiliser le AWS Management Console ou le AWS CLI pour définir le paramètre. Vous n’avez pas besoin de redémarrer l’instance de base de données après avoir défini ce paramètre. Pour plus d’informations sur la définition des paramètres, consultez Modification de paramètres dans un groupe de paramètres de base de données dans Amazon RDS.
L'exemple suivant exécute la modify-db-parameter-group AWS CLI commande pour définir les paramètres :
Pour Linux, macOS ou Unix :
aws rds modify-db-parameter-group \ --db-parameter-group-namemyactivepg\ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb2.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb3.123456789012.us-east-1.rds.amazonaws.com:3306',ApplyMethod=immediate"
Pour Windows :
aws rds modify-db-parameter-group ^ --db-parameter-group-namemyactivepg^ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb2.123456789012.us-east-1.rds.amazonaws.com:3306,myactivedb3.123456789012.us-east-1.rds.amazonaws.com:3306',ApplyMethod=immediate"
Astuce
Assurez-vous de définir le paramètre group_replication_group_seeds dans chaque groupe de paramètres de base de données associé à une instance de base de données dans le cluster actif-actif.
Étape 4 : Initialiser le groupe sur une instance de base de données et démarrer la réplication
Vous pouvez choisir n’importe quelle nouvelle base de données pour initialiser le groupe et démarrer la réplication. Pour ce faire, exécutez les étapes suivantes :
-
Choisissez une instance de base de données dans le cluster actif-actif et connectez-vous à cette instance de base de données dans un client SQL. Pour plus d’informations sur la connexion à une instance de base de données RDS for MySQL, consultez Connexion à votre instance de base de données MySQL.
-
Dans le client SQL, exécutez les procédures stockées suivantes et remplacez-les
group_replication_user_passwordpar le mot de passe de l'rdsgrprepladminutilisateur. L’utilisateurrdsgrprepladminest réservé aux connexions de réplication de groupe dans un cluster actif-actif. Le mot de passe de cet utilisateur doit être le même sur toutes les instances de base de données d’un cluster actif-actif.call mysql.rds_set_configuration('binlog retention hours',168); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password'); call mysql.rds_group_replication_start(1);Cet exemple définit la valeur
binlog retention hourssur168, ce qui signifie que les fichiers journaux binaires sont retenus pendant sept jours sur l’instance de base de données. Vous pouvez ajuster cette valeur en fonction des exigences.Cet exemple indique
1dans la procédure stockéemysql.rds_group_replication_startd’initialiser un nouveau groupe avec l’instance de base de données actuelle.Pour plus d’informations sur les procédures stockées appelées dans l’exemple, consultez Gestion des clusters actifs-actifs.
Étape 5 : Démarrer la réplication sur les autres instances de base de données du cluster actif-actif
Pour chacune des instances de base de données du cluster actif-actif, utilisez un client SQL pour vous connecter à l’instance et exécutez les procédures stockées suivantes. group_replication_user_passwordRemplacez-le par le mot de passe de l'rdsgrprepladminutilisateur.
call mysql.rds_set_configuration('binlog retention hours',168); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password'); call mysql.rds_group_replication_start(0);
Cet exemple définit la valeur binlog retention hours sur 168, ce qui signifie que les fichiers journaux binaires sont retenus pendant sept jours sur chaque instance de base de données. Vous pouvez ajuster cette valeur en fonction des exigences.
Cet exemple indique 0 dans la procédure stockée mysql.rds_group_replication_start pour associer l’instance de base de données actuelle à un groupe existant.
Astuce
Assurez-vous d’exécuter ces procédures stockées sur toutes les autres instances de base de données du cluster actif-actif.
Étape 6 : (Recommandé) Vérifiez l’état du cluster actif-actif
Pour vous assurer que chaque membre du cluster est correctement configuré, vérifiez l’état du cluster en vous connectant à une instance de base de données du cluster actif-actif et en exécutant la commande SQL suivante :
SELECT * FROM performance_schema.replication_group_members;
Votre sortie doit afficher ONLINE pour le MEMBER_STATE de chaque instance de base de données, comme dans l’exemple de sortie suivant :
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 9854d4a2-5d7f-11ee-b8ec-0ec88c43c251 | ip-10-15-3-137 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
| group_replication_applier | 9e2e9c28-5d7f-11ee-8039-0e5d58f05fef | ip-10-15-3-225 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
| group_replication_applier | a6ba332d-5d7f-11ee-a025-0a5c6971197d | ip-10-15-1-83 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.00 sec)
Pour plus d’informations sur les valeurs possibles de MEMBER_STATE, consultez États de serveur de réplication de groupe
Étape 7 : (Facultatif) Importer des données dans une instance de base de données du cluster actif-actif
Vous pouvez importer des données d’une base de données MySQL vers une instance de base de données du cluster actif-actif. Une fois les données importées, la Réplication de groupe les réplique sur les autres instances de base de données du cluster.
Pour en savoir plus sur l’importation de données, consultez Importation de données vers une base de données Amazon RDS for MySQL avec une durée d’indisponibilité réduite.