

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
<a name="mysql-active-active-clusters-converting"></a>

La version du moteur de base de données de l’instance de base de données que vous souhaitez migrer vers un cluster actif-actif doit être l’une des versions suivantes :
+ Toutes les versions 8.4 de MySQL
+ MySQL 8.0.35 et versions mineures ultérieures

Si vous devez mettre à niveau la version du moteur, consultez [Mises à niveau du moteur de base de données RDS for MySQL](USER_UpgradeDBInstance.MySQL.md).

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](mysql-active-active-clusters-cross-vpc-prerequisites.md).

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

**Topics**
+ [Étape 1 : Définir les paramètres du cluster actif-actif dans un ou plusieurs groupes de paramètres personnalisés](#mysql-active-active-clusters-converting-parameter-group)
+ [É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](#mysql-active-active-clusters-converting-associate-parameter-group)
+ [Étape 3 : Créer le cluster actif-actif](#mysql-active-active-clusters-converting-associate-parameter-groups)
+ [Étape 4 : Créer des instances de base de données RDS for MySQL supplémentaires pour le cluster actif-actif](#mysql-active-active-clusters-converting-add-db-instances)
+ [Étape 5 : Initialiser le groupe sur l’instance de base de données que vous convertissez](#mysql-active-active-clusters-converting-start-replication-first)
+ [Étape 6 : Démarrer la réplication sur les autres instances de base de données du cluster actif-actif](#mysql-active-active-clusters-converting-start-replication-other)
+ [Étape 7 : (Recommandé) Vérifiez l’état du cluster actif-actif](#mysql-active-active-clusters-converting-view)

## Étape 1 : Définir les paramètres du cluster actif-actif dans un ou plusieurs groupes de paramètres personnalisés
<a name="mysql-active-active-clusters-converting-parameter-group"></a>

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](mysql-active-active-clusters-parameters.md).

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](USER_WorkingWithParamGroups.Creating.md). L'exemple suivant exécute la [create-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html) AWS CLI commande pour créer un groupe de paramètres de base de données personnalisé nommé `myactivepg` d'après RDS pour MySQL 8.0 :

Pour 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"
```

Pour 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 de paramètres dans un groupe de paramètres de base de données dans Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

L'exemple suivant exécute la [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) 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-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"
```

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 : 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
<a name="mysql-active-active-clusters-converting-associate-parameter-group"></a>

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 [Association d’un groupe de paramètres de base de données à une instance de base de données dans Amazon RDS](USER_WorkingWithParamGroups.Associating.md).

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 cluster de base de données](USER_RebootInstance.md).

## Étape 3 : Créer le cluster actif-actif
<a name="mysql-active-active-clusters-converting-associate-parameter-groups"></a>

Dans le groupe de paramètres de base de données associé à l’instance de base de données, définissez le paramètre `group_replication_group_seeds` 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. 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](USER_WorkingWithParamGroups.Modifying.md).

L'exemple suivant exécute la [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) AWS CLI commande pour définir les paramètres :

Pour 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"
```

Pour 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 de base de données RDS for MySQL supplémentaires pour le cluster actif-actif
<a name="mysql-active-active-clusters-converting-add-db-instances"></a>

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, veuillez consulter [Ajout d’une instance de base de données à un cluster actif-actif à l’aide de la reprise ponctuelle](mysql-active-active-clusters-adding.md#mysql-active-active-clusters-adding-pitr).

Un cluster actif-actif peut inclure 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 sur`1`. Sinon, la réplication de groupe ne démarrera pas sur l’instance de base de données ajoutée récemment.

## Étape 5 : Initialiser le groupe sur l’instance de base de données que vous convertissez
<a name="mysql-active-active-clusters-converting-start-replication-first"></a>

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 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](USER_ConnectToInstance.md).

1. Dans le client SQL, exécutez les procédures stockées suivantes et remplacez-les *group\$1replication\$1user\$1password* par le mot de passe de l'`rdsgrprepladmin`utilisateur. L’utilisateur `rdsgrprepladmin` 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 valeur `binlog retention hours` sur `168`, 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 `1` dans la procédure stockée `mysql.rds_group_replication_start` 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, consultez [Gestion des clusters actifs-actifs](mysql-stored-proc-active-active-clusters.md).

## Étape 6 : Démarrer la réplication sur les autres instances de base de données du cluster actif-actif
<a name="mysql-active-active-clusters-converting-start-replication-other"></a>

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\$1replication\$1user\$1password*Remplacez-le par le mot de passe de l'`rdsgrprepladmin`utilisateur.

```
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 7 : (Recommandé) Vérifiez l’état du cluster actif-actif
<a name="mysql-active-active-clusters-converting-view"></a>

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](https://dev.mysql.com/doc/refman/8.0/en/group-replication-server-states.html) dans la documentation MySQL.