Not the answer you need?
Register and ask your own question!

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

krishmysqldbakrishmysqldba EntrantCurrent User Role Beginner
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 ..


  • krishmysqldbakrishmysqldba Entrant Current User Role Beginner
    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
  • krishmysqldbakrishmysqldba Entrant Current User Role Beginner
    Any Update ?
  • psongpsong Contributor Inactive User Role Beginner
    Hi there,

    The --recursion-method option takes a string as its argument. Please refer to the documentation:

    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.
  • krishmysqldbakrishmysqldba Entrant Current User Role Beginner
    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
  • krishmysqldbakrishmysqldba Entrant Current User Role Beginner
    Any update ?
Sign In or Register to comment.

MySQL, InnoDB, MariaDB and MongoDB are trademarks of their respective owners.
Copyright ©2005 - 2020 Percona LLC. All rights reserved.