Running this on our replication master (toolkit v2.2.4):
sudo pt-table-sync --print --sync-to-master slave1 --tables=pulse.unsubscribe > /tmp/ptsync.log
results in the error:
Cannot nibble table pulse.unsubscribe because MySQL chose no index instead of the PRIMARY index at /usr/bin/pt-table-sync line 5456. while doing pulse.unsubscribe on slave1
It’s a pretty simple table, holds email addresses for unsubscribers:
CREATE TABLE unsubscribe (
email varchar(320) NOT NULL,
contact_id varchar(50) DEFAULT NULL,
unsubscribed datetime NOT NULL,
PRIMARY KEY (email(255)),
KEY unsubscribe_contact_index (contact_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
I was able to run this command against 2 other tables in the database ‘pulse’ which had diffs found by pt-table-checksum and it worked great. This is the only table I’m having the Nibble error on. Any ideas?