Maison > base de données > tutoriel mysql > le corps du texte

Analyse du problème de synchronisation maître-esclave Mysql

PHP中文网
Libérer: 2018-05-10 17:14:37
original
2207 Les gens l'ont consulté

Afficher l'état de la bibliothèque du cluster afficher l'état de l'esclaveG

Conseil original de la bibliothèque : Last_Error : le coordinateur s'est arrêté car il y avait des erreurs dans le(s) travailleur(s) L'échec le plus récent est : l'exécution du travailleur 1 a échoué. transaction '864e6992-0a34-11e7-a98a-7cd30ac6c9ec:148408' dans le journal principal mysql-bin.000010, end_log_pos 920578920. Voir le journal des erreurs et/ou la table performance_schema.replication_applier_status_by_worker pour plus de détails sur cet échec ou d'autres, le cas échéant.

1. Suivez les invites de Congku pour trouver la raison, entrez la commande

select * from performance_schema.replication_applier_status_by_worker\G
Copier après la connexion

pour obtenir

Cette transaction s'est produite sur la table r_com_patent, et la table a été localisée, mais je ne sais pas quel enregistrement.

2. Que s'est-il passé lorsque je suis allé à la bibliothèque principale pour trouver le fichier binaire. Entrez la commande

Mysqlbinlog --no-defaults –v –v --base64-output=decode-rows /usr/local/mysql/data/master-bin.000010 | grep –A ‘10’ 920578920
Copier après la connexion


pour enfin localiser l'enregistrement.

La bibliothèque principale a mis à jour la table r_com_patent, mais la bibliothèque du cluster ne trouve pas l'enregistrement mis à jour.

Plus précisément, la base de données principale a modifié l'enregistrement avec patent_id 45 dans la table r_com_patent, et le champ cid a été modifié de NULL à 3253026. L'enregistrement avec patent_id 45 dans la table de base de données du cluster r_com_patent, le champ cid était à l'origine 3253026, car le mécanisme de réplication doit trouver l'enregistrement avec l'ID brevet 45 et l'ID NULL dans la table de base de données r_com_patent, il n'a donc pas été trouvé. . .

3. Solution

1) Afficher l'enregistrement dans le master.

Select * from r_com_patent where patent_id = 45;
Copier après la connexion

2) Sur l'esclave, cherchez l'enregistrement mis à jour, il ne devrait pas exister.

  Select * from r_com_patent where patent_id = 45;
Copier après la connexion

3) Remplissez ou modifiez les données perdues sur l'Esclave. ​

  Insert into r_com_patent values(3253026,45);
Copier après la connexion

4) Ignorer la transaction signalée par une erreur sur l'esclave.

Stop slave;
Set @@SESSION.GTID_NEXT=’ 864e6992-0a34-11e7-a98a-7cd30ac6c9ec:148408’
Begin;
Commit;
Set @@SESSION.GTID_NEXT = AUTOMATIC;
Start slave;
Copier après la connexion

Ensuite, vérifiez à nouveau

Show slave status\G
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal