# pt-table-checksum writes statements to binlog, creating storm of slave errors

**URL:** <https://forums.percona.com/t/pt-table-checksum-writes-statements-to-binlog-creating-storm-of-slave-errors/6511>\
**Category:** Percona Toolkit\
**Created:** [August 15, 2018, 10:00am UTC](https://forums.percona.com/t/pt-table-checksum-writes-statements-to-binlog-creating-storm-of-slave-errors/6511 "2018-08-15T10:00:01Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![erick](https://avatars.discourse-cdn.com/v4/letter/e/bbce88/32.png) [@erick](https://forums.percona.com/u/erick)\
**Post date:** [August 15, 2018, 10:00am UTC](https://forums.percona.com/t/pt-table-checksum-writes-statements-to-binlog-creating-storm-of-slave-errors/6511/1 "2018-08-15T10:00:01Z")

</div>

I’m curious why pt-table-checksum does not set  
SET sql\_log\_bin = 0; I just ran pt-table-checksum on a machine, and it wrote a massive amount of `percona` database REPLACE statements to the binlog. Those statements do not necessarily execute successfully on the slave server. By default I have the slave replicating all databases, and the replica is inundated with slave errors due to this. I can skip slaving of the `percona` database to catch up my slave server, but I have to restart MySQL service to do so… I don’t have that luxury in our production environment; I don’t feel it is safe to run this utility on any other machine we have here. Is there an option I have missed? It seems odd the default behavior of the utility isn’t safe. Is there a benefit to allowing the percona.checksums information slave to another server when running the utility? thanks!

---

<div class="post-metadata">

**Author:** ![przemek](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/przemek/32/3_2.png) [@przemek](https://forums.percona.com/u/przemek)\
**Post date:** [December 21, 2018, 9:19am UTC](https://forums.percona.com/t/pt-table-checksum-writes-statements-to-binlog-creating-storm-of-slave-errors/6511/2 "2018-12-21T09:19:13Z")

</div>

Hi Erick,

The tool in order to identify data differences on the slave has to execute the checksum statements on the slave. This is why it logs them in STATEMENT format, which may raise those errors in certain log verbosity mode.  
This does not mean the tool is not safe, it just has to make independent calculations on the slave, otherwise it would be unable to do the job.  
And, the tool does the comparison via replication channel to be consistent.
