Comment 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 ?
Je souhaite répliquer une instance de base de données Amazon Relational Database Service (Amazon RDS) for MySQL sur un serveur de secours sur site.
Brève description
Pour migrer les données d'une instance de base de données Amazon RDS for MySQL vers un serveur sur site, créez un réplica en lecture sur AWS. Puis, basculez 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 l’identifiant de transaction globale (GTID), consultez la section Configuration de la réplication de la position du fichier journal binaire avec une instance source externe.
Résolution
Créer un réplica en lecture de l'instance de base de données active
Procédez comme suit :
-
Vérifiez que vous avez activé les sauvegardes automatiques pour l'instance de base de données active que vous souhaitez répliquer.
Remarque : La durée minimale de rétention des sauvegardes est d'un jour. Lorsque vous sauvegardez vos données, vous encourez des frais supplémentaires. Pour en savoir plus, consultez la section Tarification d’Amazon RDS. -
Créez un réplica en lecture de l'instance de base de données active avec la même configuration.
-
Connectez-vous à l'instance de base de données de réplicas en lecture.
-
Exécutez la commande suivante pour confirmer que l'instance de base de données de réplicas en lecture correspond à votre instance de base de données active.
Pour MySQL version 8.0.23 et versions ultérieures :mysql> show replica status \GPour les versions de MySQL antérieures à 8.0.23 :
mysql> show slave status \GRemarque : Lorsque l'instance de réplication n'est pas en retard par rapport à votre instance de base de données, le paramètre Seconds_Behind_Master apparaît comme 0.
-
Exécutez la commande suivante pour arrêter la réplication sur l'instance de base de données de réplicas en lecture :
mysql> call mysql.rds_stop_replication; -
Pour enregistrer les paramètres -log_file et -log_position, exécutez la commande suivante sur l'instance de base de données de réplicas en lecture.
Pour MySQL version 8.0.23 et versions ultérieures :mysql> show replica status \GPour les versions de MySQL antérieures à 8.0.23 :
mysql> show slave status \GRemarque : Le paramètre -log_file est la valeur de relay_source_log_file et le paramètre -log_position est la valeur de exec_source_log_pos.
Créer un fichier de vidage de l'instance de base de données de réplicas en lecture
Procédez comme suit :
-
Exécutez la commande suivante dans le client mysqldump ou dans un utilitaire similaire pour créer une sauvegarde de l'instance de base de données de réplicas en lecture :
mysqldump -h hostname -u username -p dbname > backup_file_name.sql -
Connectez-vous à votre serveur local, puis transférez le fichier de vidage sur le serveur.
Restaurer le fichier de vidage sur la nouvelle instance de base de données
Procédez comme suit :
-
Créez une nouvelle instance de base de données externe sur le serveur local.
-
Exécutez la commande suivante pour restaurer le fichier de vidage sur la nouvelle instance de base de données externe :
mysql -h hostname -u username -p dbname < backup_file_name.sql -
Connectez-vous à votre instance de base de données active.
-
Exécutez la commande suivante pour configurer un utilisateur de réplication et lui accorder les autorisations nécessaires :
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 : Remplacez repl_user par votre nom d'utilisateur de réplication.
-
Connectez-vous à la nouvelle instance de base de données externe, puis arrêtez le serveur local.
-
Modifiez les paramètres du fichier my.cnf afin qu'ils pointent vers l'ID de serveur et le nom de base de données uniques que vous souhaitez répliquer. Par exemple, server_id=2 et replicate-do-db=test.
-
Enregistrez le fichier.
-
Redémarrez le serveur sur site.
Vérifier que la nouvelle instance de base de données externe peut se connecter à l'instance de base de données active
Si vous utilisez Amazon Elastic Compute Cloud (Amazon EC2) comme instance MySQL externe, mettez à jour votre instance pour autoriser les connexions depuis le groupe de sécurité. Vous pouvez également autoriser les connexions à partir de l'adresse IP du groupe de sécurité de votre instance de base de données active. Si vous utilisez un serveur MySQL externe, exécutez telnet pour tester la connectivité. Pour plus d'informations, consultez la section Pourquoi ne puis-je pas me connecter à mon instance de base de données Amazon RDS ?
Procédez comme suit :
- Pour modifier les paramètres utilisés par le serveur de réplication pour se connecter à la source, exécutez la commande suivante sur la nouvelle instance de base de données externe.
Pour MySQL version 8.0.23 et versions ultérieures :
Pour les versions de MySQL antérieures à 8.0.23 :mysql> change replication source to source_host='rds-endpoint', source_user='repl_user', source_password='password', source_log_file='mysql-bin.000001', source_log_pos=107;
Remarque : Remplacez rds-endpoint par le point de terminaison de votre instance de base de données active. Utilisez le nom d'utilisateur et le mot de passe que vous avez créés lors de la restauration du fichier de vidage dans la nouvelle base de données. Remplacez les valeurs de relay_source_file et exec_source_log_pos par les valeurs de -log_file et de -log_position du réplica en lecture.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; - Vérifiez que le serveur local peut se connecter à votre instance de base de données active.
Démarrer la réplication
Procédez comme suit :
-
Connectez-vous au serveur sur site.
-
Exécutez la commande suivante pour démarrer la réplication :
Pour MySQL version 8.0.23 et versions ultérieures :mysql> start replica;Pour les versions de MySQL antérieures à 8.0.23 :
mysql> start slave; -
Exécutez la commande suivante pour vérifier que la réplication est synchronisée entre votre instance de base de données active et le serveur sur site :
Pour MySQL version 8.0.23 et versions ultérieures :mysql> show replica status\GPour les versions de MySQL antérieures à 8.0.23 :
mysql> show slave status\G -
Lorsque le paramètre Seconds_Behind_Master est égal à 0, supprimez l'instance de base de données de réplicas en lecture.
Informations connexes
Comment migrer vers une instance de base de données Amazon RDS ou Amazon Aurora à l'aide d'AWS DMS ?
Exportation de données depuis une instance de base de données MySQL à l'aide de la réplication
- Langue
- Français

Contenus pertinents
demandé il y a 2 ans
demandé il y a 2 ans
demandé il y a 2 ans
demandé il y a un an