Восстановление очищенных файлов mysql binlog - PullRequest
3 голосов
/ 05 декабря 2011

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

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

ТеперьSLAVE имеет статус:

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

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

Файлы уже на месте, но как я могу заставить master «очистить» свой список журналов (чтобы онивидно в ШОУ БИНАРНЫХ ЖУРНАЛАХ)?

1 Ответ

3 голосов
/ 05 декабря 2011

Хорошо, я сделал это. Однако это решение не идеально / 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;

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

...