@VMCLOUD

Перенос MySQL c InnoDB на другой сервер без длительно остановки?

Собственно сабж. Есть база, около 200Gb.

Нужно перетянуть ее с сервера на сервер без длительных остановок. Видится вариант с rsync с работающей базой источником, после rsync остановки базы источника и последующего "догона" разницы опять же тем же rsync.

Что-то типа rsync -az root@hostname:/var/lib/mysql/ /var/lib/mysql/

Имеет ли данный способ право на жизнь, или есть подводные камни?! С postgres такое проходит на ура!

Или может быть проще поднять на сервере получателе последний дам, и настроить с сервером источником репликацию master master и потом тупо переключит фронтенды после полной консистентности данных?!
  • Вопрос задан
  • 3211 просмотров
Пригласить эксперта
Ответы на вопрос 3
Melkij
@Melkij
PostgreSQL DBA
Раз небольшая остановка сервиса допустима (времени около пары минут), то никакого мастер-мастер!
0) Поднимаете реплику мастер-слейв (имеющийся сервер мастер, новый - слейв)
1) когда слейв догнал мастера, останавливаете сервис (если сайт - вешаете заглушку "зайдите через пару минут")
2) разбираете реплику
3) правите конфиги сервиса, чтобы тот обращался к новому серверу
4) включаете сервис.

Пару лет назад на работе с нашим сисадмином именно так мигрировали. Без проблем с первой попытки и простой пара минут суммарно.
Ответ написан
RicoX
@RicoX
Ушел на http://ru.stackoverflow.com/
Оба варианта работоспособные, rsync просто быстрее.
Ответ написан
Комментировать
kuroneco
@kuroneco
Системный администратор
Снимаете бинарный дамп с помощью innobackupex с мастера.
Заводите его на вашем другом сервере в виде slave.
Запихиваете слейв в read only через глобальную переменную.
Когда слейв догонит мастера, переключаетесь на слейв (не сломается, так как ничего писаться не будет).
Выключаете реплицирование, выключаете read only.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы