У меня есть 2 идентичных обновленных выделенных сервера MySQL, и я только что настроил двойную первичную репликацию на обоих, все работает, как ожидалось, но проблема в том, что у меня много файлов BIN с очень старыми событиями, которых больше не существует, и начинается репликация, я получаю много ошибок, которые, если я решу пропустить вручную, я буду делать это вечно, и каким-то образом таблица mysql оказывается испорченной, и я больше не могу получить доступ к mysql, так что есть способ сообщить репликации, что вы нормально и полностью синхронизировано сейчас, и все происходит позже, синхронизировать и удалить эти файлы bin на обоих серверах?
После того, как вы синхронизируете оба сервера с приостановленной репликацией, используйте:
PURGE MASTER LOGS BEFORE now()
на обоих серверах. Это сбросит двоичный журнал на обоих серверах (и удалит старые файлы).
Обязательно проверьте имя и позицию файла с помощью:
SHOW MASTER STATUS
Затем вам нужно будет сбросить позицию (на обоих серверах):
CHANGE MASTER TO MASTER_LOG_FILE=mysql-bin.000001,MASTER_LOG_POS=106
Пример статуса мастера шоу:
mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000228 | 359641126 | | |
+------------------+-----------+--------------+------------------+
1 row in set (0.00 sec)