#mysql #database-replication
#mysql #база данных-репликация
Вопрос:
У меня есть главный сервер, который реплицируется пятью подчиненными устройствами. Мне нужно восстановить базу данных на главном сервере, и я планирую сделать это с помощью mysql db_name < db_name.dump. Мой вопрос в том, нужно ли мне останавливать mysql на главном сервере, прежде чем я сделаю это, чтобы подчиненные устройства автоматически получали изменения? Если да, то какие команды я должен выполнить перед выполнением mysql db_name < db_name.dump?
Комментарии:
1. Или было бы просто проще сделать то же самое mysql db_name < db_name.dump на каждом подчиненном устройстве?
Ответ №1:
Вот что происходит:
- Мастер выполняет все изменения в файле дампа (в основном инструкции CREATE TABLE и INSERT).
- Мастер регистрирует все эти изменения в своем двоичном журнале.
- Каждая реплика загружает двоичный журнал с главного сервера.
- Каждая реплика воспроизводит одни и те же изменения.
Вам не нужно ничего останавливать. Все реплики будут реплицировать изменения, если вы правильно настроили репликацию.
Комментарии:
1. Я не смог проверить ваш ответ, потому что потерял терпение и написал скрипт на perl, который обновлял поврежденную таблицу в главном сервере запись за записью. Однако я добросовестно отмечу это как правильное. Спасибо за ответ.