pt-table-checksum (Percona-toolkit-2.2.7-1) Not able to find the slaves.

Hi ,

I’m trying to run checksum on my replication setup(Master1(Active),Master2(Passive),Slave1(slave of M2) and Slave2(slave of M2) ) but while running i’m getting below error.

pt-table-checksum – user xxxx --password xxxx --replicate-check --databases xxxxx --replicate percona.checksum P=xxxx,h= hostname

Diffs can’t be detected because no slaves were found. please read the --recursion-method documentation for more details.

Even though i used – recursion-method i’m getting the same error.

MySQL Version : 5.6.10 GPL

Same command is working fine on other environment (5.6.11).

Could you please let me know the issue …

Please refer to below posts. Hope this will help to resolve the problem.

http://www.percona.com/forums/questions-discussions/percona-toolkit/13172-pt-table-checksum-how-to-restrict-checks-to-specific-slaves
http://www.percona.com/forums/questions-discussions/percona-toolkit/9613-pt-table-checksum-cannot-connect-to-slave

Yes, i tried with recursion-method now its working but i’m not able to find the difference.
Manually i see the rows count difference between master and slaves.i’m using below command.

pt-table-checksum – user xxxx --password xxxx --no-check-binlog-format --no-check-replication-filters --replicate-check --recursion-method --databases xxxxx --replicate percona.checksum P=xxxx,dsn=h= hostname

Any Update ?

Hi there,

The --recursion-method option takes a string as its argument. Please refer to the documentation: http://www.percona.com/doc/percona-t…cursion-method

It looks like that “show processlist” and “show slave hosts” are not sufficient in your case.

The best bet is using dsn method which will enable you to include all the servers in the topology for the checksum. You will need to create a dsn table as defined in the document, and populate it with M2, S1 and S2’s dsn. Then you could invoke the tool from M1:


pt-table-checksum --no-check-binlog-format --no-check-replication-filters --recursion-method dsn=h=<host>,P=<port>,D=<db>,t=<dsn_table> --databases xxxxx h=M1,u=user,p=passwd

If you only want to check consistency between directly related master and slaves, like M1 and M2, or M2 to S1 and S2. It is possible to use the host method by setting report_host and report_ports for the slave servers. These changes would require server restart though. If you do this, then you could leave out --recursion-method option, and the tool will discover slaves automatically.

Are you using statement-based replication? Please check the LIMITATIONS section of the document. If you use row-based replication, you can check consistency more than one level.

I’m using mixed based replication.

And i’m using below command but its not finding the data difference between Master and Slave. Manually i’m able to see the data difference between the tables.

/usr/bin/pt-table-checksum --user=xxxx --password=xxxx --no-check-binlog-format --no-check-replication-filters --replicate-check --recursion-method dsn=h=xxxxx,D=percona,t=dsns --databases=xxxx -P 3306

Even i tried normal command also but that also not working.

usr/bin/pt-table-checksum --user=xxxxx --password=xxxx --replicate=percona.checksum --create-replicate-table --no-check-binlog-format --no-check-replication-filters --replicate-check --databases=xxxxx -P 3306

Any update ?