Отказ мастера и подчиненных из моментального снимка ведомого - PullRequest
1 голос
/ 15 августа 2010

Я планирую использовать настройку MySQL с одним главным сервером и несколькими подчиненными серверами.Я выполняю регулярное согласованное резервное копирование данных EBS на одном из подчиненных серверов (я всегда буду останавливать базу данных раньше и перезапускать ее после ее завершения).

Отработка отказа подчиненных устройств
Iотказ одного из ведомых, я запустил новый экземпляр и установил EBS на основе последнего снимка ведомого в качестве нового диска с данными.В этой ситуации мастер доступен постоянно.Вот что я должен сделать:

0) убедитесь, что сервер использует уникальный server_id 1) SLAVE STOP;
2) RESET SLAVE;
3) START SLAVE;
4)restart mysql?

Этого достаточно?

Отработка отказа мастера Из соображений простоты и согласованности я не хочу повышать квалификацию одного из рабов.Я предпочитаю создавать новый мастер с нуля.Проблема в том, что снимок сделан от ведомого устройства, и я хочу использовать его как мастер.Вот что я должен сделать после создания нового экземпляра с диском на основе снимка подчиненного устройства:

1) STOP SLAVE;
2) RESET MASTER;
3) перезапустить mysql
4) связать эластичный IP с новым ведущим БД (тот же IP был использован отказавшим ведущим), чтобы подчиненные смогли снова подключиться.

Правильна ли эта процедура?Что мне теперь делать с рабами?Рабы могут быть впереди мастера, потому что мастер был восстановлен из снимка, которому может быть несколько часов.Это проблема?Существует также возможность воссоздать все ведомые устройства из одного и того же снимка, который использовался для восстановления мастера.Тогда они будут на той же позиции, что и мастер.Но это может быть сложно и невозможно без простоя.Есть ли лучший способ, как это сделать?

Заранее большое спасибо!

Примечания: Я не против потерянных транзакций со времени последнего снимка.Я использую Mysql 5.1.41.

1 Ответ

0 голосов
/ 30 ноября 2010

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

  • повторный импорт дампа с «хорошего» сервера на «плохой» сервер.В вашем случае это будет импортировать дамп из хорошего ведомого на плохого мастера.
  • Запустите программу, такую ​​как Navicat, на затронутых серверах.Navicat имеет функцию, которая позволяет синхронизировать данные между двумя таблицами (в одну сторону, в две стороны и т. Д.) Для повторного добавления любых отсутствующих записей.

В обоих методах вам необходимо остановить мастерсбросить мастер.Сброс рабов также поможет.

...