Восстановление очищенных файлов mysql binlog

У меня настроена репликация на пару серверов. Один хозяин, а второй раб.

Недавно на master файлы binlog были очищены слишком рано (по имени файла, так что mysql не помешал слишком раннему удалению файла).

Теперь РАБ имеет статус:

Получил фатальную ошибку 1236 от мастера при чтении данных из двоичного журнала: "Не удалось найти первое имя файла журнала в двоичном файле индекса журнала"

Я не хочу восстанавливать отсутствующие binlog-файлы, чтобы ведомое устройство возобновляло чтение с того места, где оно закончилось.

Файлы уже на месте, но как я могу заставить master "очистить" его список журналов (чтобы они были видны в SHOW BINARY LOGS)?

1 ответ

Решение

Хорошо, я сделал это. Однако это решение не идеально /100% безопасно.

Я ввел все имена файлов в мой mysql-bin.index

find /var/log/mysql/ -wholename '/var/log/mysql/mysql-bin.0*' | sort > mysql-bin.index

(если вы будете использовать его, сначала проверьте формат имени файла в файле mysql-bin.index и отрегулируйте его под свои нужды)

Затем перезапустите mysql, и mysql перезагрузит этот файл при запуске.

МАСТЕР готов.

Теперь достаточно сделать

SLAVE STOP;

а также

SLAVE START;

на раб, и он продолжит свою работу.

Другие вопросы по тегам