Задать вопрос
Ответы пользователя по тегу MySQL
  • Как перенести контейнер Docker на другую машину?

    gohdan
    @gohdan
    Системный администратор
    Если нужно перенести прямо контейнер как есть, то есть команда docker save, она позволяет сохранить текущую файловую систему хранилища в tar-архив. Потом на другой машине можно сделать docker load этого архива, он подгрузится как docker image. На базе этого docker image можно запустить другой контейнер. Параметры запуска можно взять из docker inspect старого контейнера.

    Но, как уже написали выше, это плохое решение для плохой ситуации. Не надо держать в контейнерах базы данных и конфиги, они должны лежать отдельно на файловой системе хоста, тогда можно просто остановить контейнер, всё это скопировать на другую машину и там запустить контейнер аналогично старому.
    Ответ написан
    Комментировать
  • MySQL смена ролей master-slave-master. Как?

    gohdan
    @gohdan
    Системный администратор
    1. В приложении перекидываете запросы на слейв.
    2. Перезагружаете мастер.
    3. Переводите слейв в рид-онли.
    4. Копируете всю БД со слейва на мастер (файлами, дампами будет дольше). Чтобы этот этап проходил быстро (да и вообще чтобы всё быстрее крутилось), помогает держать на мастере БД в ОЗУ, у меня при этом 7 Гб с реплики копируются буквально пару секунд.
    5. Делаете ресет мастера, запоминаете лог и позицию.
    6. В приложении перекидываете запросы на мастер.
    7. Делаете ресет слейва, заново включаете репликацию с запомненными на 5-м шаге параметрами, снимаете рид-онли.

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