Frage

Der Versuch, Pt-table-Checkum auszuführen, um die Sklavendrift in der MySQL-Replikation zu erkennen. Meine Sklaven verwenden jedoch nicht den Standard -TCP -Höranschluss, und wenn ich das Tool ausführe, erhalte ich einen Fehler:

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

Es überprüft immer noch die Tische des Masters, ohne jedoch in der Lage zu sein, sich mit den Sklaven zu verbinden, ist es nicht sehr nützlich. Ich kann nicht herausfinden, wie Sie alternative Ports für die Sklaven beim Ausführen des Befehls angeben. Mein aktueller Befehl sieht aus wie

pt-table-checksum -h  -P 3388 -p 
War es hilfreich?

Lösung

Das Problem ist, dass die Repliken ihre Ports nicht dem Master melden. Standardmäßig versucht Pt-Table-Checksum eine Verbindung herzustellen, indem Unbekannte mit Standardeinstellungen gefüllt wird. Wenn die Unbekannten keine Standardeinstellungen verwenden, schlägt dies fehl. In diesem Fall gibt es zwei Optionen:

1) Verwenden Sie die Option-Recursion-Methode-Option, um die Inspektion von Show-Processlist zum Inspektieren von Slave-Hosts zu ändern und Sklaven zu konfigurieren, um ihren Host zu melden. Ich empfehle das nicht.

2) Ich empfehle stattdessen, dass Sie-Recursion-Methode = DSN verwenden, und erstellen Sie eine Tabelle voller DSN-Anweisungen (Datenquellenname), mit denen das Tool eine Verbindung zu jedem Replikat herstellt. Wenn diese Tabelle foo.bar ist, verwenden Sie-Recursion-Methode = dsn = d = foo, t = bar.

Dies ist nur in der 2.0-Serie des Toolkits erhältlich, aber Sie sollten das trotzdem verwenden, da Pt-Tisch-Checksum in 2.0 erheblich verbessert wird.

Andere Tipps

Die Percona -Tools nehmen die Standardargumente von MySQL Client nicht ein. Sie müssen ein DSN in ihrem Format angeben. Sehen http://www.percona.com/doc/percona-toolkit/2.0/pt-table-checksum.html#dsn-options

Du wirst so etwas wollen wie

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

Persönlich mag ich es nicht, Anmeldeinformationen in etwas zu setzen, das in der Prozesslist angezeigt wird, damit Sie dies tun können

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

wo das my.cnf aussieht

[client]
user=usernameXYZ
password=asdf234JKL

Wenn Sie möchten, dass dies bis zu Ihren Sklaven repliziert, müssen Sie a angeben -Replikate Option, die ihm mitteilt, dass die Tabelle die Prüfsummen einfügt (und folglich die Sklavenwerte auf jeden jeweiligen Sklaven einfügen). Wenn dies Sie zum ersten Mal sind, möchten Sie möglicherweise diese Tabelle für Sie erstellen -Replikat-Tabelle.

Es muss nicht direkt eine Verbindung zu den Sklaven herstellen, es sei denn, Sie möchten, dass die Sklaven zum Rückfallen überwacht werden. Es gibt im Grunde Fragen wie Abfragen wie

In Prüfsummenstable ersetzen ... (Masterv1, Masterv2, (Wählen Sie Blah ...))

wobei die wörtlichen Masterwerte in den Binlog entlang des SELECT -Teils des Ersatzes geschrieben werden. Wenn dies auf den Sklaven ausgeführt wird, wird der Select That Messit to the Sklaves -Prüfsummen gedacht.

Ich habe in letzter Zeit viel Zeit mit diesem Tool verbracht. Beginnen Sie damit damit und antworten Sie mit spezifischeren Problemen, bei denen Sie Hilfe benötigen, damit ich nicht nur das gesamte Handbuch und alles mögliche Sache umschreibe, was schief gehen kann.

Hinweis: Wenn Sie laufen

export PTDEBUG=1

Vor einem Percona -Skript erhalten Sie unzählige Debug -Informationen, mit denen Sie in die Richtung hinweisen können, was schief geht. Denken Sie auch daran, dass dies alles Perl -Skript sind, damit Sie die Quelle selbst untersuchen können, um zu sehen, was schief geht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top