Conversion d'une instance de base de données existante en cluster actif-actif - 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.

Conversion d'une instance de base de données existante en cluster actif-actif

La version du moteur de base de données de l'SQLinstance de base de données Amazon RDS for My que vous souhaitez migrer vers un cluster actif-actif doit être My SQL 8.0.35 ou une version ultérieure. Si vous devez mettre à niveau la version du moteur, consultezMises à niveau du moteur RDS for My SQL DB.

Si vous configurez un cluster actif-actif avec plusieurs instances de base de donnéesVPC, assurez-vous de remplir les conditions requises dans. Préparation à un cluster à VPC activités croisées

Procédez comme suit pour migrer une instance de base de données existante vers un cluster actif-actif pour RDS for My. SQL

Étape 1 : définir les paramètres du cluster actif-actif dans un ou plusieurs groupes de paramètres personnalisés

Les instances RDS for My SQL DB d'un cluster actif-actif doivent être associées à un groupe de paramètres personnalisé dont le réglage est correct pour les paramètres requis. Pour plus d'informations sur les paramètres et le réglage requis pour chacun d'entre eux, consultezRé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 de paramètres de base de données.

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 RDSAmazon. 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é myactivepg :

Dans Linux, macOS, ou Unix:

aws rds create-db-parameter-group \ --db-parameter-group-name myactivepg \ --db-parameter-group-family mysql8.0 \ --description "Parameter group for active-active clusters"

Dans Windows:

aws rds create-db-parameter-group ^ --db-parameter-group-name myactivepg ^ --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 des paramètres d'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 :

Dans Linux, macOS, ou Unix:

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"

Dans 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 : associer l'instance de base de données à un groupe de paramètres de base de données dont les paramètres de réplication de groupe requis sont définis

Associez l'instance de base de données à un groupe de paramètres que vous avez créé ou modifié à l'étape précédente. Pour obtenir des instructions, consultez Associer un groupe de paramètres de base de données à une instance de base de données dans RDSAmazon.

Redémarrez l'instance de base de données pour que les nouveaux paramètres prennent effet. Pour obtenir des instructions, consultez Redémarrage d'une instance de base de données.

Étape 3 : Création du cluster actif-actif

Dans le groupe de paramètres de base de données associé à l'instance de base de données, définissez le group_replication_group_seeds paramètre sur le point de terminaison de l'instance de base de données que vous convertissez.

Vous pouvez utiliser le AWS Management Console ou le AWS CLI pour définir le paramètre. Il n'est pas nécessaire de redémarrer l'instance de base de données après avoir défini ce paramètre. Pour de plus amples informations sur la définition des paramètres, veuillez consulter Modification des paramètres d'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 :

Dans Linux, macOS, ou Unix:

aws rds modify-db-parameter-group \ --db-parameter-group-name myactivepg \ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306',ApplyMethod=immediate"

Dans Windows:

aws rds modify-db-parameter-group ^ --db-parameter-group-name myactivepg ^ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306',ApplyMethod=immediate"

Étape 4 : créer des instances supplémentaires RDS pour My SQL DB pour le cluster actif-actif

Pour créer des instances de base de données supplémentaires pour le cluster actif-actif, effectuez une point-in-time restauration sur l'instance de base de données que vous convertissez. Pour obtenir des instructions, consultez Ajouter une instance de base de données à un cluster actif-actif à l'aide de la restauration point-in-time.

Un cluster actif-actif peut avoir jusqu'à neuf instances de base de données. Effectuez la point-in-time restauration sur l'instance de base de données jusqu'à ce que vous disposiez du nombre d'instances de base de données que vous souhaitez pour le cluster. Lorsque vous effectuez cette point-in-recovery opération, assurez-vous d'associer l'instance de base de données que vous ajoutez à un groupe de paramètres de base de données rds.group_replication_enabled défini sur1. Sinon, la réplication de groupe ne démarrera pas sur l'instance de base de données nouvellement ajoutée.

Étape 5 : Initialiser le groupe sur l'instance de base de données que vous convertissez

Initialisez le groupe et lancez la réplication :

  1. Connectez-vous à l'instance de base de données que vous êtes en train de convertir en SQL client. Pour plus d'informations sur la connexion à une instance RDS for My SQL DB, consultezConnexion à une instance de base de données exécutant le moteur My SQL database.

  2. Dans le SQL client, exécutez les procédures stockées suivantes et remplacez group_replication_user_password avec le mot de passe de l'rdsgrprepladminutilisateur. L'rdsgrprepladminutilisateur est 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 binlog retention hours valeur sur168, ce qui signifie que les fichiers journaux binaires sont conservés pendant sept jours sur l'instance de base de données. Vous pouvez ajuster cette valeur en fonction de vos besoins.

    Cet exemple indique 1 dans la procédure mysql.rds_group_replication_start stockée d'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, consultezGestion des clusters actifs-actifs.

Étape 6 : 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 SQL client pour vous connecter à l'instance et exécutez les procédures stockées suivantes. Remplacez group_replication_user_password avec 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 binlog retention hours valeur sur168, ce qui signifie que les fichiers journaux binaires sont conservés pendant sept jours sur chaque instance de base de données. Vous pouvez ajuster cette valeur en fonction de vos besoins.

Cet exemple indique 0 dans la procédure mysql.rds_group_replication_start stockée de joindre 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 7 : (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 suivante : SQL

SELECT * FROM performance_schema.replication_group_members;

Votre sortie doit s'afficher ONLINE pour chaque instance MEMBER_STATE 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 MEMBER_STATE valeurs possibles, consultez la section États des serveurs de réplication de groupe dans la section Ma SQL documentation.