Hi,
I have setup an XtraDB cluster across 4 VMs which appear to be behaving correctly. I have installed percona xtradb and percona-toolkit from the percona apt repository and am using the latest versions of those packages.
root@build-server:~# pt-table-checksum --version
pt-table-checksum 3.0.2
root@build-server:~# mysqld --version
mysqld Ver 5.7.17-13-57 for debian-linux-gnu on x86_64 (Percona XtraDB Cluster (GPL), Release rel13, Revision f46c657, WSREP version 29.20, wsrep_29.20)
I created the table percona.dsns and populated with DSNs for each node in my cluster but I am unable to get pt-table-checksum past the binlog_format issue.
Here is the command I am using.
$ pt-table-checksum h=192.168.32.11,u=root,p=password --recursion-method dsn=h=192.168.32.11,u=root,p=password,D=percona,t=dsns
I have attempted the command above with and without
--nocheck-binlog-format
The command is repeated, along with the error message received at runtime near the end of this message.
I found an article authored just over a year ago
which recommended an older article to me which I tried to follow:
In the comments section of the latter article, there is a complaint from 2014 that the mechanism is broken which refers to the bug report at
The bug purports to describe the exact problem I am having and is marked as 'fix-released' on 2014-09-03, and apparently released as part of PXC 5.6.20. I experimented with the option --pxc56 (and --pxc) as suggested in the bug tracker but they are not valid flags.
I am currently out of ideas as to what to try next.
mysql> show create table percona.dsns;
+-------+--------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------------------------------------------+
| dsns | CREATE TABLE `dsns` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` int(11) DEFAULT NULL,
`dsn` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 |
+-------+---------------------------------------------------------------------------------------------+
mysql> select * from percona.dsns;
+----+-----------+-----------------------------------+
| id | parent_id | dsn |
+----+-----------+-----------------------------------+
| 1 | NULL | h=192.168.32.10,u=root,p=password |
| 2 | NULL | h=192.168.32.11,u=root,p=password |
| 3 | NULL | h=192.168.32.12,u=root,p=password |
| 4 | NULL | h=192.168.32.13,u=root,p=password |
+----+-----------+-----------------------------------+
4 rows in set (0.00 sec)
root@build-server:~# pt-table-checksum h=192.168.32.11,u=root,p=password --recursion-method dsn=h=192.168.32.11,u=root,p=password,D=percona,t=dsns
04-25T16:19:34 Failed to /*!50108 SET @@binlog_format := 'STATEMENT'*/: DBD::mysql::db do failed: Percona-XtraDB-Cluster prohibits setting binlog_format to STATEMENT or MIXED with pxc_strict_mode = ENFORCING or MASTER [for Statement "/*!50108 SET @@binlog_format := 'STATEMENT'*/"] at /usr/bin/pt-table-checksum line 9312.
This tool requires binlog_format=STATEMENT, but the current binlog_format is set to ROW and an error occurred while attempting to change it. If running MySQL 5.1.29 or newer, setting binlog_format requires the SUPER privilege. You will need to manually set binlog_format to 'STATEMENT' before running this tool.