Pull to refresh

Comments 5

Работает. Только обратите внимание на следующие строчки:
Перед тем, как начать восстановление резервной копии на целевом сервере необходимо:

Остановить MySQL сервер.

Очистить папку datadir или перенести её содержимое в другое место. Каталог datadir обязательно должен быть пустым.


Т.е. по сути — это снепшот. Нельзя вытащить и поправить одну таблицу, только всё сразу. Ну и с gallera cluster бывают проблемы: дело в том что во время приготовления данного снепшота приходится останавливать репликацию — при продакшн-нагрузке создание снепшота постоянно начинается заново. А за время создания снепшота буфер может переполниться, и тогда вы будете обречены на FST вместо IST…
> дело в том что во время приготовления данного снепшота приходится останавливать репликацию
Ээээ. Не приходится, емнип. Я достаточно часто переналиваю бэкапную реплику напрямую с одной из галеронод без всяких остановок.

innobackupex --no-lock --stream=xbstream ./ | ssh root@host «xbstream -x -C /mnt/mysql/»
Прям так. Ну понятное дело, что всякие cd/chmod за кадром.

Нагрузка при этом приличная. Правда, пишем мы в один активный «мастер» всегда, чтобы не тормозило, а innobackupex я запускаю на другой ноде.

Что таблицу достать нельзя — действительно, но там прикол в консистентности бэкапа суммарного — сначала делается снапшот, к нему кладется бинлог (в своём формате что ли, но неважно). В итоге снапшот копируется, лог применяется и база остаётся в состоянии на момент транзакции с определенным номером.
Как получить консистентный бэкап полуторатеррабайтной базы с mysqldump-ом — пойди ещё придумай =)

Но самим xtrabackup можно делать дамп отдельных таблиц и его потом восстанавливать.

А чем/как бэкапить и восстанавливать отдельные базы MySQL?
Точнее, стоит вопрос копирования отдельных баз между серверами чем-то более удобным, чем mysqldump

Sign up to leave a comment.

Articles