Найти шаблоны различий репликации mysql
Я использую pt-table-checkum и pt-table-sync, чтобы проверить различия в моих репликах. Когда я использую pt-table-sync с опцией -print, я вижу только основные значения.
Как я могу показать конфликтующие значения рабов? Я хочу посмотреть, смогу ли я найти шаблон, по которому происходят эти различия.
1 ответ
Использование pt-table-sync с этими параметрами
--print
--sync-to-master
сообщит об изменениях SQL для выполнения на подчиненном устройстве, чтобы подчиненное устройство соответствовало главному.
Мастер просто связан для целей сравнения.
В документации Percona по --print указано:
Распечатайте запросы, которые разрешат различия.
Если вы не доверяете pt-table-sync или просто хотите посмотреть, что он будет делать, это хороший способ быть в безопасности. Эти запросы являются действительными SQL, и вы можете запустить их самостоятельно, если вы хотите синхронизировать таблицы вручную.
Для акцента: не выполнять вывод --print
А ТАКЖЕ --sync-to-master
на мастера. Выполните это только на Рабе.
Если вы используете круговую репликацию, сделайте это
echo "SET SQL_LOG_BIN = 0;" > ChangesToSlave.sql
pt-table-sync --print --sync-to-master ... >> ChangesToSlave.sql
тогда вы можете запустить ChangesToSlave.sql
на Рабе.