Задать вопрос
vitek
@vitek
Программист, сисадмин, вот это всё

MySQL репликация: как проще всего дважды поменять master и slave местами?

Есть два сервера MariaDB 10.0.21, между которыми настроена обычная Master->Slave репликация.
Оба сервера нужно перевезти в другой город без остановки работы сервиса, поэтому мне необходимо в какой-то момент выключить мастер, перевести пользователей на работу со слейвом, после этого включить мастер в другом месте, заставить его забрать всё свеженькое со слейва, перекинуть сервис обратно, выключить и перевезти слейв, включить его в новом месте и опять таки заставить забрать актуальную информацию с мастера.
Как правильно это сделать, чтобы не пришлось разворачивать репликацию с нуля на каждом этапе?
  • Вопрос задан
  • 1241 просмотр
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
martin74ua
@martin74ua Куратор тега MySQL
Linux administrator
Начните переезд со слейва.
Слейв переезжает на новое место, включается, догоняет мастера.
Теперь слейв настраиваете как мастер для репликации, мастер подключаете к нему слейвом.
Получаете master-master репликацию.
Только обратите внимание на параметры

auto_increment_increment=2
auto_increment_offset=1

на обоих серверах offset должен быть разным. На одном 1, на втором 0 -
Это защитит от дубликата ключей при вставке записей на разных серверах одновременно.

Ну а теперь переключаете клиентов на перевезенный сервер, старый мастер останавливаете и перевозите его. После переезда включаете - он синхронизируется.... Ну и все, я бы так и оставил, в режиме master-master....
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:12
10000 руб./за проект
22 дек. 2024, в 19:47
3000 руб./за проект
22 дек. 2024, в 19:03
60000 руб./за проект