Типы бэкапов MySQL
Сегодня я хотел бы вам рассказать про резервное копирование (бэкап) MySQL. Очень часто возникают вопросы: «Как правильно делать бэкап MySQL?», «Что такое физически и логический бэкапы?», «Что делать с большими базами?» и т.п.
В рамках одной статьи просто невозможно охватить весь информационный спектр данной темы, поэтому в данном случае мы акцентируем внимание на типах бэкапа.
Логический бэкап
Данный вид резервного копирования в первую очередь подразумевает использование команды MySQL-данных. Он несет в себе как плюсы, так и минусы.
Плюсы:
• полученный дамп может быть восстановлен на любой системе;
• возможны Backup’ы удаленного MySQL-севера и любых табличным движков, в том числе и Memory;
• бэкап создается на работающем сервере, не останавливая его работу. При этом во время бэкапа происходит лом таблиц. Как этого избежать? Можно сделать репликацию выбранной для бэкапа базы на другой сервер и уже на нем выполнить поставленную задачу.
Минусы:
• он значительно медленнее физического. Причина кроется в том, что все данные нужно преобразовать в типовые SQL-запросы;
• большой размер готового бэкапа из-за текстового формата.
Физически бэкап
Физический бэкап представляет собой простое копирование файла.
Плюсы:
• максимальная скорость бекапа, так как файлы просто копируются и не требуют от серверов выполнения каких-либо сопутствующих действий;
• небольшой размер файла (используется бинарный формат);
• можно бэкапить лог-файлы сервера – копировать их можно, как на «горячую», так и на «холодную», естественно, последний вариант является более предпочтительным.
Минусы:
• бекап только локального сервера;
• могут быть сложности с переносом бэкапа на другую машину/систему;
• нельзя создавать бекапы таблиц Memory, так как таблицы лежат в памяти и физических файлов попросту нет.
• не всегда можно восстановить отдельные таблицы - например, таблицы в InnoDB, которые храняться в одном файле.
В заключение расскажу еще про два типа бэкапов: снимок и репликация:
1. Можно сделать снимок файловой системы можно сделать, например, в LVM и копировать его.
2. Можно сделать репликацию базы данных и уже на «холодном» сервере снимать бэкапы.
Подготовлено по материалам статьи «Резервное копирование MySQL. Бэкап базы MySQL»: https://www.backup-solutions.ru/rezervnoe-kopirovanie-mysql/.