Comment effectuer une réplication à l'aide des journaux binaires d'une instance active Amazon RDS for MySQL vers une instance en attente sur site ?

Lecture de 4 minute(s)
0

Comment répliquer un Amazon Relational Database Service (Amazon RDS) pour une instance de base de données MySQL à l'aide des journaux binaires dans un environnement externe sur site ?

Brève description

Pour migrer les données d'Amazon RDS for MySQL vers un serveur de base de données sur site, créez d'abord un réplica en lecture sur AWS. Ensuite, changez la cible de réplication du réplica en lecture Amazon RDS for MySQL vers le serveur sur site.

Si vous utilisez la réplication basée sur GTID, consultez Configuration d'une réplication de position de fichier journal binaire avec une instance source externe.

Solution

1.    Vérifiez que les sauvegardes automatiques sont activées pour l’instance de base de données que vous voulez répliquer. Dans cet exemple, l'instance de base de données est RDS-active.

Remarque : la période de conservation minimale des sauvegardes doit être d'une journée.

2.    Créez un réplica en lecture de l'instance de base de données en utilisant la même configuration. Dans cet exemple, le réplica s'appelle RDS-standby.

3.    Connectez-vous à l'instance de base de données RDS-standby et vérifiez que le réplica est mis à niveau avec RDS-active :

mysql> show slave status \G

Remarque : seconds_behind_master doit avoir la valeur 0, ce qui signifie qu’il n’existe pas de décalage de réplica.

4.    Arrêtez la réplication sur RDS-standby :

mysql> call mysql.rds_stop_replication;

5.    Enregistrez les données du réplica, puis notez les paramètres -log_file et -log_position :

mysql> show slave status \G

Remarque : -log_file correspond à la valeur de Relay_Master_Log_File, et -log_position à la valeur de Exec_Master_Log_Pos.

6.    Quittez le terminal et utilisez mysqldump (ou un utilitaire similaire) pour créer une sauvegarde de RDS-standby qui sera répliquée sur le serveur cible. Dans cet exemple, le serveur sur site cible s'appelle MySQL-target.

$ mysqldump -h hostname -u username -p dbname > backup_file_name.sql

7.    Une fois la sauvegarde créée, transférez le fichier de sauvegarde vers le serveur sur site cible en vous connectant à MySQL-target.

8.    Créez une nouvelle base de données, puis restaurez-la à l'aide d'un dumpfile sur la nouvelle instance de base de données externe :

$ mysql -h hostname -u username -p dbname < backup_file_name.sql

9.    Connectez-vous à l'instance de base de données RDS-active, configurez un utilisateur de réplication, puis accordez les privilèges nécessaires à l'utilisateur : Veillez à remplacer repl_user par votre propre nom d'utilisateur de réplication.

mysql> create user repl_user@'%' identified by 'repl_user';
   mysql>grant replication slave, replication client on *.* to repl_user@'%';
   mysql>show grants for repl_user@'%';

Remarque : pour plus d'informations, consultez Réplication entre Amazon Aurora et MySQL ou réplication entre Aurora et un autre cluster de bases de données Aurora.

10.    Connectez-vous à l'instance cible, puis arrêtez le serveur MySQL.

11.    Modifiez les paramètres du fichier my.cnf afin d'indiquer votre ID de serveur unique et le nom de la base de données que vous voulez répliquer à partir de l'instance de base de données. Par exemple, server_id=2 et replicate-do-db=test.

12.    Enregistrez le fichier.

13.    Redémarrez le serveur MySQL sur MySQL-target.

14.    Établissez une connexion à l'instance de base de données RDS-active :

mysql> change master to master_host='rds-endpoint',master_user='repl_user', master_password='password', master_log_file='mysql-bin.000001', master_log_pos= 107;

15.    Vérifiez que MySQL-target peut se connecter à RDS-active.

Remarque : si vous utilisez Amazon Elastic Compute Cloud (Amazon EC2) en tant qu'instance MySQL externe, autorisez les connexions en provenance du groupe de sécurité ou de l'adresse IP dans le groupe de sécurité de l'instance de base de données RDS-active. Si vous utilisez un serveur MySQL externe, exécutez telnet pour tester la connectivité. Pour plus d'informations, consultez Comment résoudre les problèmes de connexion à mon instance de base de données Amazon RDS ?

RDS-Endpoint est le point de terminaison de l’instance de base de données RDS-active. Le nom d'utilisateur et le mot de passe sont identiques à ceux que vous avez créés à l'étape 9. MASTER_LOG_FILE et MASTER_LOG**_POS** correspondent aux valeurs notées à l'étape 5.

16.    Connectez-vous MySQL-target, et démarrez la réplication :

mysql> start slave;

17.    Vérifiez que la réplication est en cours de synchronisation entre RDS-active et MySQL-target :

mysql> Show slave status\G

18.    Si les secondes sur l’instance principale sont égales à zéro, vous pouvez supprimer l'instance RDS-standby.


Informations connexes

Comment migrer vers une instance de base de données Amazon RDS ou Aurora MySQL-Compatible Edition à l'aide d'AWS DMS ?

Exportation de données à partir d'une instance de base de données MySQL grâce à la réplication