Maison >base de données >tutoriel mysql >Comment resynchroniser des bases de données incompatibles dans la réplication MySQL ?

Comment resynchroniser des bases de données incompatibles dans la réplication MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-05 06:05:02399parcourir

How to Resync Mismatched Databases in MySQL Replication?

Résoudre les bases de données incompatibles dans la réplication MySQL

Dans le domaine de la réplication MySQL, le maintien de l'intégrité des données entre les serveurs maître et esclave est primordial. Cependant, des circonstances telles que des pannes de réseau peuvent perturber cet équilibre délicat, entraînant des divergences dans les bases de données. Ce guide fournit une procédure détaillée pour resynchroniser vos bases de données maître et esclave à partir de zéro, garantissant à nouveau une réplication transparente.

Procédure :

Sur le serveur maître :

  • Réinitialiser le statut du maître : Utilisez RESET MASTER ; pour effacer les informations de réplication du maître.
  • Opération de lecture de verrouillage : Exécuter FLUSH TABLES AVEC READ LOCK ; pour empêcher les modifications de données lors du dumping.
  • Afficher l'état du maître : Exécutez SHOW MASTER STATUS ; et enregistrez les valeurs du résultat.

Générez un vidage principal :

  • Créez un vidage complet de la base de données en utilisant mysqldump -u root -p - -toutes les bases de données > /a/path/mysqldump.sql.
    Opération de lecture de déverrouillage :
  • Exécuter UNLOCK TABLES ; pour libérer le verrou de lecture.

Copier le fichier de vidage sur l'esclave :

  • Transférer le fichier vidé vers le serveur esclave à l'aide de scp ou de tout autre fichier approprié méthode de transfert.

Chez l'Esclave Serveur :

  • Arrêtez la réplication esclave : Exécutez STOP SLAVE ; pour arrêter le processus de réplication.
  • Charger les données de base : Utilisez mysql -uroot -p < mysqldump.sql pour remplir l'esclave avec les données du maître.
  • Réinitialiser et synchroniser les journaux :

    • Exécuter RESET SLAVE ; pour effacer les paramètres de réplication de l'esclave.
    • Remplacez MASTER_LOG_FILE et MASTER_LOG_POS par les valeurs que vous avez enregistrées à partir du SHOW MASTER STATUS du maître ; sortir. Utilisez CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=98;.
  • Démarrez la réplication esclave : Exécutez START SLAVE ; pour reprendre le flux de données du maître.

Vérification :

  • Vérifiez l'état de la réplication avec SHOW SLAVE STATUS ;.
  • Attendu sortie : Slave_IO_Running : Oui et Slave_SQL_Running : Oui, indiquant le succès synchronisation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn