Перезапуск MySQL репликации

Перезапуск MySQL репликации

В это статье «Перезапуск MySQL репликации» пойдет реч о том как можно перезапустить MySQL с репликацией и так же я расскажу как можно пересинхронизировать все данные между серверами.

Cбросить (Re-Sync) MySQL репликации (Master-Slave).

Иногда, MySQL репликации создают проблемы и slave не может синхронизировать данные от мастера.

Внимание: После того, как воспользуетесь данной статьей, все ваши bin-log файлы будут удалены, поэтому если вы хотите, вы можете сделать резервную копию этих всех файлов.

На Slave сервере:

Сначала нам нужно остановить lave на slave сервере. Подключитесь на сервер MySQL и выполнить следующую команду:

mysql> STOP SLAVE;

На Master сервере:

После остановки slave, перейдите к master серверу. На нем необходимо сбросить master состояния, используя следующую команду:

mysql> RESET MASTER;
mysql> FLUSH TABLES WITH READ LOCK;

Больше о ЛОКАХ: http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

Создаем дамп базы данных:

# mysqldump -u root -p your_data_base > /home/captain/mysqldump-your_data_base.sql

После того как создали резервную копию БД, разблокируйтеь таблицы на master сервере:

mysql> UNLOCK TABLES;

На Slave сервере:

Восстанавливаем резервные копи баз данных на slave сервере, используя следующую команду:

# mysql -u root -p your_data_base < /home/captain/mysqldump-your_data_base.sql

Входим в MySQL и выполнить следующие команды для сброса slave состояний:

mysql> RESET SLAVE;
mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1;

После сброса состояний на slave сервере, запускаем slave репликацию:

mysql> START SLAVE;

Теперь ваша репликация была повторно синхронизирована. Можно проверить состояние с помощью следующей команды:

mysql> SHOW SLAVE STATUS\G

Команда для восстановления репликации в одну строку:

# (echo "STOP SLAVE;" && mysqldump --single-transaction --master-data -A && echo "START SLAVE;") | ssh -C YOUR_SSH_USER@YOUR_SERVER_or_IP sudo mysql
  • YOUR_SSH_USER- Пользователь к удаленному серверу ( по SSH).
  • YOUR_SERVER_or_IP- ИП адрес удаленного сервера ( по SSH).

Полезные команды

На мастере, вы можете проверить состояние подключенных slave с помощью  команды «SHOW PROCESSLIST» и посмотреть список запущенных процессов. Slave соединения имеют Binlog дамп в поле «Command»:

mysql> SHOW PROCESSLIST \G;

Для slaves, которые были запущены с опцией «—report-host» и подключенных к master серверу, команда «SHOW SLAVE HOSTS» на master-е покажет основную информацию о слейвах:

mysql> SHOW SLAVE HOSTS;

Cбросить (Re-Sync) MySQL репликации (Master-Master).

Пока не было нужды)

А на этом у меня все, тема «Перезапуск MySQL репликации» завершена.

One thought on “Перезапуск MySQL репликации

  1. Спасибо большое! Очень помогли быстро понять как правильно перезапустить эту связку, с учетом того, что я ранее не работал с этим.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.