I’m happy to announce that we’ve released Percona Toolkit 2.0.1, a major new version of our essential DBA toolkit, as well as a minor bugfix update to the old 1.0.x series. You can download it from the project homepage, or install it through our RPM and DEB repositories.

Documentation is online (and the 1.0 docs are here), and you can come learn more in-person at the Washington DC Percona Live event next week. Use the code PLDC-MPB to save 20% off registration.

Percona Toolkit 2.0 represents the first major step forward in our plans to create excellent free tools for MySQL administrators. There is one really big thing to talk about in this release: version 2.0 of pt-table-checksum.

You know how you have to choose a chunk size, and set up offsets and modulos and set sleep times and throttle the tool and be careful in case your table is growing quickly because then there will be a huge chunk of new rows at the end that will get put into one big chunk that will cause too much load and run it off-hours and restart it when there is a failure and fuss around with manually trying to get that one last table checksummed when there is a lot of load and set up pt-kill to kill the queries if they happen to run too long and schedule downtime in your Nagios so you don’t get alerts about replication lagging and restart the tool because you killed it with pt-kill and … ??? And then afterwards, you have to read the documentation on 99 command-line options to learn how to run the tool again in “show me the differences” mode, and if you want to run this from cron and trigger Nagios if anything’s wrong you have to set up two cron jobs and synchronize them so one doesn’t run while the other one is in progress and… ok I’m out of breath, but you know all that stuff you have to do to use pt-table-checksum?

You don’t have to do any of that now.

It just works. It’s so magical, you don’t even have to give it any command-line options in a lot of cases.

I won’t restate all of the documentation. You can go read it to see how awesome the new version of pt-table-checksum is. Here’s the TL;DR version: it is completely rewritten from the ground up. It works no matter how large and heavily loaded the server is, and it doesn’t cause problems. It also does everything in one run: it checksums and reports on differences at the same time. And finally, you can kick the stuffing out of it with query failures, deadlocks, high/changing load, replication delay, servers shutting down and restarting, and so on — and it politely waits until all’s clear, and then continues to Just Work. With progress reports, of course. And if you want to stop it for any reason, it’s graceful about that, and then it’s easy to resume.

Many thanks to Daniel Nichter for his diligent coding as we spec’ed, revised, tested, spec’ed again, and tried the tool in some extremely demanding production cases, then started all over again.

Finally, a few odds and ends to wrap this up. If you’re interested, you can read the full details of the 2.0.1 release, and 1.0.2 is released with a few minor bug fixes. For the next release, we’re completely redesigning and rewriting several other tools, which will be equally as awesome as pt-table-checksum 2.0. We’ve hired another fulltime developer, Brian Fraser, who’s a Perl internals guru and has already made a ton of great improvements to our testing and development process, as well as rewriting pt-diskstats from awk to Perl (that’ll be included in the next release). Stay tuned, and remember to tell your friends to upgrade to the newest version of Percona Toolkit 🙂

5 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Sheeri Cabral

huzzah! I know I will be downloading this and using it straight away, I do have a few checksum projects I’m working on, so….thanx!

Andrew moore

Sweet. Top job guys.

Shenglin

it seems there is a bug in ./pt-table-checksum line 5919, it’s easy to fix
change from $sql = ‘SHOW SESSION VARIABLES LIKE “innodb_lock_wait_timeout”‘;
to $sql = “SHOW SESSION VARIABLES LIKE ‘innodb_lock_wait_timeout”?

i am not sure if it’s only have issue with my platform