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?