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

Как восстановиться после неудачного обновления схемы Mysql с репликацией?

У меня есть два сервера MySQL, настроенных с репликацией главный-подчиненный.

Перед развертыванием новой версии приложения мы:

1) ОСТАНОВИТЬ РАБОТУ

2) Возьмите дамп MySQL ведомого.

Однако, если во время развертывания новой версии схемы была сделана ошибка (например, по ошибке была отброшена таблица), то сохранение ведомого устройства не помогает. Наш сервис требует большого количества операций записи, поэтому мы не можем снова включить его, пока у нас не будет работать мастер.

Если мы теперь загрузим дамп mysql обратно в мастер, это займет много времени, в течение которого наша служба не будет работать.

Как лучше всего исправить такую ​​ошибку? Как мне настроить систему так, чтобы я мог легко продвигать подчиненное устройство, включать нашу службу и только после этого обрабатывать сломанную базу данных? В основном меня беспокоит повторная синхронизация ведомого и ведущего после того, как на ведомом будут сделаны изменения.

Метод, который вы используете, безусловно, самый безопасный, но есть способы обмануть, чтобы сделать процесс более прозрачным.

  • Не выключайте синхронизацию, пока будете выполнять следующие несколько шагов.
  • Сделайте подчиненное устройство главным (проще, если у вас есть репликация главный / главный вместо главного / подчиненного) и переключите ваше приложение на него.
  • Восстановите старый мастер из файла дампа.
  • Повторно включите синхронизацию.
  • Убедитесь, что старый мастер синхронизируется с бывшим подчиненным.
  • При желании переключите приложение обратно.