Ich habe eine einfache Master-> Slave-Betrieb mit MariaDB:pt-table-Prüfsumme nicht Erkennung diffs
Master: Ubuntu 16.04 LTS mit MariaDB 10.2.8 und Percona-Toolkit 3.0.4
Slave: Ubuntu 16.04 LTS mit MariaDB 10.2.7
Replikation läuft gut und jetzt möchte ich überprüfen, ob die Daten zwischen Master und Slave identisch sind.
Ich installierte Percona-Toolkit auf dem Master und erstellt eine Prüfsumme Benutzer:
MariaDB> GRANT REPLICATION SLAVE,PROCESS,SUPER, SELECT ON *.* TO `pt_checksum`@'%' IDENTIFIED BY 'password';
MariaDB> GRANT ALL PRIVILEGES ON percona.* TO `pt_checksum`@'%';
MariaDB> FLUSH PRIVILEGES;
ich auch hinzugefügt report_host in der Slave-conf, so dass es präsentiert sich dem Master:
MariaDB [(none)]> show slave hosts;
+-----------+-----------+------+-----------+
| Server_id | Host | Port | Master_id |
+-----------+-----------+------+-----------+
| 2 | 10.0.0.49 | 3306 | 1 |
+-----------+-----------+------+-----------+
1 row in set (0.00 sec)
Um pt-table-checksum zu testen, entfernte ich eine Zeile aus der Tickets
Tabelle in meiner Test-Datenbank auf dem Slave. Ich habe überprüft, dass diese Zeile tatsächlich fehlt, aber immer noch auf dem Master vorhanden ist.
Aber pt-table-Prüfsumme berichten nicht über diese Differenz:
# pt-table-checksum --databases=shop_test --tables=Tickets --host=localhost --user=pt_checksum --password=... --no-check-binlog-format --no-check-replication-filters
TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE
09-07T16:15:02 0 0 14 1 0 0.013 shop_test.Tickets
Also habe ich PTDEBUG = 1 in meiner Umgebung, aber es scheint, dass der Master zum Slave fein verbindet. Ich habe versucht, die entsprechenden Bits aus dem Ausgang herausgreifen:
# MasterSlave:5175 9725 Connected to h=localhost,p=...,u=pt_checksum
# MasterSlave:5184 9725 SELECT @@SERVER_ID
# MasterSlave:5186 9725 Working on server ID 1
# MasterSlave:5219 9725 Looking for slaves on h=localhost,p=...,u=pt_checksum using methods processlist hosts
# MasterSlave:5226 9725 Finding slaves with _find_slaves_by_processlist
# MasterSlave:5288 9725 DBI::db=HASH(0x31c5190) SHOW GRANTS FOR CURRENT_USER()
# MasterSlave:5318 9725 DBI::db=HASH(0x31c5190) SHOW FULL PROCESSLIST
# DSNParser:1417 9725 Parsing h=10.0.0.49
[...]
# MasterSlave:5231 9725 Found 1 slaves
# MasterSlave:5208 9725 Recursing from h=localhost,p=...,u=pt_checksum to h=10.0.0.49,p=...,u=pt_checksum
# MasterSlave:5155 9725 Recursion methods: processlist hosts
[...]
# MasterSlave:5175 9725 Connected to h=10.0.0.49,p=...,u=pt_checksum
# MasterSlave:5184 9725 SELECT @@SERVER_ID
# MasterSlave:5186 9725 Working on server ID 2
# MasterSlave:5097 9725 Found slave: h=10.0.0.49,p=...,u=pt_checksum
[...]
# pt_table_checksum:9793 9725 Exit status 0 oktorun 1
# Cxn:3764 9725 Destroying cxn
# Cxn:3774 9725 DBI::db=HASH(0x31cd218) Disconnecting dbh on slaveserver h=10.0.0.49
# Cxn:3764 9725 Destroying cxn
# Cxn:3774 9725 DBI::db=HASH(0x31c5190) Disconnecting dbh on masterserver h=localhost
ich aus Ideen bin, wie, warum die fehlende Zeile nicht erkannt wird?