I issued the following command:
pt-table-sync --verbose --databases medics --execute h=10.11.22.77,u=root,p=secret h=127.0.0.1,u=root,p=secret
... (as well as a similar command specifying D=/t=
on the DSN to process only one table) ...
and, after a few minutes, got a promising-looking output like this:
# DELETE REPLACE INSERT UPDATE ALGORITHM START END EXIT DATABASE.TABLE
# 25 0 3380 437 Nibble 14:50:49 15:09:05 2 medics.address_book
... but when I looked at the table in the target database, it had not changed at all! Re-running the command produced identical output, apparently because the command was seeing the same (unchanged) situation each time, and it never actually synchronized anything.
Why not?
(This is using the Percora Toolkit distro that is currently available on Ubuntu LTS. Furthermore, both systems are running the same version of Ubuntu LTS and the same (current) version of MySQL. I can see that the software thinks it knows what it's doing because (e.g.) it correctly recognized when one table didn't exist.)
(The source database is a replication slave. The target is an unrelated (identical) development-only database which does not participate in any replication relationships. I do not see how the source's "replication slave" status could be relevant, but I wanted to disclose this fact. I would prefer not to run against the master as the source, and have not yet tried to do so.)
This SO post, Percona's pt-table-sync: how to run on more than one table?, shows the user issuing a very-similar command (to the second one I tried, not shown in this post ...), and the OP said that "this will successfully update table1." Uh huh, as I would expect. But I tried to do the selfsame thing and it didn't. So, why isn't it working for me? :-)
No error messages – no clues. No obvious indications of anything out of the ordinary.