Question

Essayer de faire fonctionner pt-table-somme de contrôle pour détecter la dérive de l'esclave dans la réplication MySQL. Mes esclaves n'utilisent pas le port standard TCP d'écoute cependant, et quand je lance l'outil je reçois une erreur:

Cannot connect to P=3306,h=,p=...

Il Checksums encore des tableaux du maître, mais sans pouvoir se connecter aux esclaves, il est pas très utile. Je ne peux pas comprendre comment spécifier d'autres ports pour les esclaves lors de l'exécution de la commande. Mon apparence de commande actuelle comme

pt-table-checksum -h  -P 3388 -p 
Était-ce utile?

La solution

Le problème est que les répliques ne signalent pas leurs ports au maître. Par défaut tente pt table-checksum pour se connecter en remplissant inconnues avec les valeurs par défaut; si les inconnues n'utilisent pas par défaut, cela ne fonctionne pas. Dans ce cas, il y a deux options:

1) Utilisez l'option méthode --recursion Explore pour passer de l'inspection SHOW PROCESSLIST pour inspecter SLAVE HOSTS SHOW, et les esclaves de configure pour signaler leur hôte. Je ne recommande pas.

2) Je recommande, au contraire, que vous utilisez-method = --recursion Explore dsn et de créer une table complète des instructions de DSN (nom de source de données) qui indiquent l'outil comment se connecter à chaque réplique. Si ce tableau est foo.bar, vous utiliserez---recursion Explore method = dsn = D = toto, t = bar.

Ceci est uniquement disponible dans la version 2.0 série de la boîte à outils, mais vous devriez utiliser que de toute façon, parce que pt-table de contrôle est extrêmement améliorée dans la version 2.0.

Autres conseils

Les outils de Percona ne prennent pas les arguments standards du client MySQL. Vous devez spécifier une source de données dans leur format. Voir http: //www.percona. com / doc / Percona-boîte à outils / 2.0 / pt table-checksum.html # dsn-options

Vous voulez quelque chose comme

pt-table-checksum h=myhost,u=user,p=pass,P=port

Personnellement, je ne aime pas mettre des pouvoirs en quelque chose qui va apparaître dans le processlist vous pouvez donc faire

pt-table-checksum --defaults-file=/path/to/my.cnf h=myhost,P=port

où les regards my.cnf comme

[client]
user=usernameXYZ
password=asdf234JKL

Si vous voulez que cela répliquent par vos esclaves, vous devez spécifier un -. create-replicate table

Il n'a pas besoin de se connecter directement aux esclaves, sauf si vous voulez surveiller les esclaves pour tomber derrière. Il interroge essentiellement des questions telles que

remplacer dans checksumsTables ... (masterV1, masterV2, (select bla ...))

où les valeurs de base littérales sont écrites dans le binlog le long w / la partie de sélection de la remplacer. Lorsque qui exécute sur les esclaves select faut-il Réfléchissons pour obtenir les checksums esclaves.

J'ai passé beaucoup de temps avec cet outil récemment alors commencez avec cela et répondre avec plus de problèmes de spécifiques que vous avez besoin d'aide, donc je ne fais pas réécrire tout le manuel et toutes les choses possibles qui peuvent mal tourner.

Remarque: si vous exécutez

export PTDEBUG=1

Avant tout script Percona il vous donnera TONNES de debug info ce point d'aide peut vous dans le sens de ce qui se passe mal. Rappelez-vous aussi ce sont tous les scripts Perl afin que vous puissiez vérifier la source vous-même (peut-être) voir ce qui se passe mal.

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