LINUX.ORG.RU
ФорумAdmin

Как бэкапить базы mysql?

 , ,


0

3

Здравствуйте. Подскажите, как бэкапят достаточно большие базы ( >20гб). Попробовал погуглить. Есть вариант использовать mysqldump , но он сохраняет все ввиде sql запроса а для больших баз это как то не комильфо.

Есть предложения?

★★★

Если база активно юзается и нельзя блокировать таблицы, то видится решение

1. Создаём реплику с репликацией в реальном времени
2. на момент бэкапа реплику блокируем на изменение
3. бэкапим
4. накатываем изменения с момента лока
5. продолжаем репликацию в реальном времени

kombrig ★★★
()

Можно просто сбэкапить снапшот файловой системы.

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

Либо вариант kombrig с репликацией, елсли критична скорость восстановления в случае сбоя.

sergv
()
Ответ на: комментарий от sergv

Для MyISAM достаточно файловых бэкапов, да. Желательно только sync'нуться перед снапшотом.

om-nom-nimouse ★★
()
Ответ на: комментарий от madcore

Пусть купит диск на 3Тб, хватит на пару месяцев.

Основная проблема в таких явно текстовых формах базы данных - низкая скорость трансляции text <=> binary. Поэтому есть риск, что пока делается дамп первой таблицы, последняя, от неё зависящая, уже изменится, и данные окажутся неконсистентными. Соответственно, чем больше база и дольше делается её дамп, тем больше риск.

// оффтопом: когда уже в продажу поступят четырёх- и пятитерабайтники?

om-nom-nimouse ★★
()
Ответ на: комментарий от om-nom-nimouse

Поэтому есть риск, что пока делается дамп первой таблицы, последняя, от неё зависящая, уже изменится, и данные окажутся неконсистентными.

Если используются foreign ключи, то mysqldump должен лочить на запись связанные таблицы. Иначе и при репликации ненулевая вероятность иметь побитость.

madcore ★★★★★
()

mylvmbackup - с использованием LVM?

kitar ★★★★★
()
Ответ на: комментарий от kombrig

ну если в случае InnoDB, то можно сделать дамп одной транзакцией, тогда дамп будет консистентным. Записи в базу во время бэкапа забэкапятся в следующий раз :)

Harald ★★★★★
()

Репликация с innobackupex. Или репликация со снапшотами но если есть innodb то опускать сервер mysql перед снапшотом.

zunkree
()

у перконы есть xtrabackup

kelyar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.