Comment puis-je utiliser les journaux binaires d'une instance de base de données active Amazon RDS for MySQL pour les répliquer sur une instance de secours sur site ?

Lecture de 4 minute(s)
0

Je souhaite copier une instance de base de données Amazon Relational Database Service (Amazon RDS) for MySQL sur un serveur sur site.

Brève description

Pour migrer des données d'Amazon RDS for MySQL vers un serveur de base de données sur site, commencez par créer un réplica en lecture sur AWS. Basculez ensuite d'Amazon RDS for MySQL vers le serveur sur site la cible de réplication du réplica en lecture.

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

Résolution

1.    Vérifiez que les sauvegardes automatiques sont activées pour l'instance de base de données à répliquer. Dans cet exemple, l'instance de base de données est active sur RDS.
Remarque : la durée minimale de conservation des sauvegardes est d'un jour.

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 est RDS-standby.

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

mysql> show slave status \G

Remarque : la valeur seconds_behind_master doit être 0, ce qui signifie qu'il n'y a aucun retard 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 est la valeur de Relay_Master_Log_File, et -log_position est 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 est MySQL-target.

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

7.    Après avoir créé la sauvegarde, 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 base de données sur la nouvelle instance de base de données externe à l'aide de dumpfile :

$ 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-lui les privilèges nécessaires. 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 en savoir plus, consultez la page Réplication entre Aurora et MySQL ou entre Aurora et un autre cluster de base de données Aurora (réplication de journaux binaires).

10.    Connectez-vous à l'instance de base de données cible, puis arrêtez le serveur MySQL.

11.    Modifiez les paramètres du fichier my.cnf pour qu'ils pointent vers votre ID de serveur unique, ainsi que le nom de la base de données que vous souhaitez 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 avec l'instance de base de données RDS-active. Pour ce faire, exécutez la commande suivante sur MySQL-target :

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) comme instance MySQL externe, autorisez les connexions depuis le groupe de sécurité ou l'adresse IP du 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 en savoir plus, consultez la page 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 les mêmes que ceux que vous avez créés à l'étape 9. Les valeurs MASTER_LOG_FILE et MASTER_LOG_POS sont celles indiquées à l'étape 5.

16.    Connectez-vous à MySQL-target et lancez la réplication :

mysql> start slave;

Vérifiez que la réplication est synchronisée entre RDS-active et MySQL-target :

mysql> Show slave status\G

17.    Lorsque la valeur Seconds Behind Master est égale à zéro, vous pouvez supprimer l'instance de base de données RDS-standby.

Informations connexes

Comment migrer vers une instance de base de données Amazon RDS ou Aurora MySQL Edition compatible avec AWS DMS ?

Exportation de données depuis une instance de base de données MySQL à l'aide de la réplication