Dois-je filtrer le tableau Percona.Checksums en réplication pour une utilisation avec Pt-Table-Checksum?

dba.stackexchange https://dba.stackexchange.com/questions/25414

Question

J'ai configuré la réplication MySQL, un maître et un esclave. Maintenant, je commence juste à vérifier les données d'intégrité des deux côtés en utilisant pt-table-checksum. Magnifique outil pour détecter les modifications ou dériver sur l'esclave.

De ce que je comprends de son Documentation, il fonctionne sur le maître, écrit des sommes de contrôle au percona.checksums table et s'exécute de manière similaire sur les esclaves connectés (détectés automatiquement) à l'aide d'une connexion MySQL distante régulière. Cependant, le percona.checksums La table est également reproduite! Si les données diffèrent sur l'esclave, les sommes de contrôle du maître peuvent être écrasées sur l'esclave et ne pas être détectées.

Maintenant, je crains que cela ne soit à l'objet de mon observé faux négatifs pour détecter les changements.

Fait pt-table-checksum faire mettre en place des garanties pour empêcher la réplication sur le percona.checksums table?

  • Si oui, comment cela fonctionne-t-il? (Pour autant que je puisse voir, on ne peut pas modifier des filtres de réplication comme celui-ci) Cela peut m'aider à déterminer une autre raison de mes observations (voir ci-dessous).
  • Sinon, comment puis-je être sûr que le contenu de ce tableau reflète des sommes de contrôle de ce serveur spécifique? Dois-je mettre en place un filtre de réplication? Ceci est en fait découragé par la documentation de la boîte à outils de Percona.

Observations réelles

J'ai vu un événement dans ma configuration de test dans laquelle la course en quelque sorte pt-table-checksum n'a pas détecté le changement délibérément effectué sur l'esclave. L'inspection du contenu du tableau de somme de contrôle a montré les sommes de contrôle du maître. Exécuter l'outil sur l'esclave lui-même a montré que les sommes de contrôle auraient dû être différentes! Cela me fait croire qu'il y a une condition de course en cours et la raison pour laquelle cela est difficile à reproduire.

Une autre hypothèse

Supposons que l'esclave ait dérivé et que la connexion réseau est en panne pendant un court moment pt-table-checksum. Il montrera qu'il n'est pas en mesure de se connecter à l'esclave dans le stderr sortie, mais pas échouer. Peu de temps après, le réseautage est restauré et la réplication reprend, en copie sur le contenu du maître de la table percona.checksums. Puis courir pt-table-checksum --replicate-check-only, fournira de faux négatifs. Suis-je ici? Si oui, comment puis-je empêcher cela dans ce cas?

Il s'agit d'un serveur / client MySQL ordinaire utilisant la boîte à outils de Percona avec.

Versions:

  • PT-Table-Checksum 2.1.4
  • Client MySQL: 5.5.24
  • MySQL Server: 5.5.24-0ubuntu0.12.04.1-log (Ubuntu 12.04)

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top