Назад | Перейти на главную страницу

Двойная первичная репликация MySQL

У меня есть 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)