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

восстановление репликации mysql

Нам не хватало дискового пространства на ведомом устройстве из-за файлов relay-bin, поэтому я остановил сервер mysql, удалил файлы relay-bin. изменил файл my.cnf, чтобы указать в журнале реле другое место. В статусе Slave я отметил «Relay_Master_Log_File» и «Exec_Master_Log_Position». Я использовал их, чтобы «Сменить хозяина». Не работает. Я получаю приглашение: «Не удалось открыть журнал реле в старой позиции». Как Mysql по-прежнему просматривает старые файлы и как я могу их изменить?

Спасибо.

Вы должны были изначально удалить журналы, выполнив RESET SLAVE.

Тем не менее, если вы:

  • Довольны согласованностью данных подчиненного устройства на сегодняшний день.
  • У вас есть запись Exec_Master_Log_Position и соответствующее имя файла журнала.
  • У ведущего все еще есть журналы, соответствующие этой позиции журнала и имени файла.

Проблема STOP SLAVE и RESET SLAVE. Это удалит всю информацию, связанную с репликацией, с ведомого устройства, включая relay-log.info что может вызвать появившуюся ошибку.

Использовать CHANGE MASTER .. для перенастройки ведомого устройства с учетом вашей позиции в журнале, хоста, имени пользователя и т. д.

Затем верните его START SLAVE.

Попробуйте перезапустить подчиненный сервер, чтобы очистить кеш.

Чтобы заставить его работать сразу, лучше всего: mysqldump --master-data --databases db_name> snapshot20091124.sql и передать его на подчиненное устройство репликации. Вы можете дважды проверить позицию журнала, пролистывая первые несколько строк дампа mysql. выдать «стоп раб»; выполните импорт «mysql -u root -p <snapshot20091124.sql», затем выполните команду «start slave». Репликация - иногда излишне сложный зверь.