Бэкап базы данных: дамп, бинарные логи и восстановление на точку во времени

Файлы сайта можно восстановить из архива, а вот данные — только из базы. При этом «дамп раз в сутки» не всегда спасает: между последней копией и сбоем могут оказаться заказы, заявки и сообщения. Разбираем, как снимать базу правильно и как добавить восстановление на точку во времени.

Дамп: что это и почему файлы не считаются

Дамп — это текстовый файл с командами, которые восстанавливают таблицы, данные и связи. Архив файлов сайта базу не содержит: в файлах лежат только код и загрузки. Поэтому копия «просто папки» при потере базы бесполезна.

Как снимать дамп

Для MySQL основной инструмент — mysqldump. Три опции, которые важно не забыть: —single-transaction (согласованный снимок без блокировки таблиц), —routines —triggers (хранимые процедуры и триггеры) и явная кодировка utf8mb4. Без первой опции дамп может «поймать» полусостояние, без второй — потерять логику, которая живёт в базе.

Опция / приём Зачем Что будет без неё
—single-transaction согласованный снимок без простоя риск неконсистентных таблиц
—routines —triggers процедуры и триггеры часть логики потеряется
—default-character-set=utf8mb4 кириллица и эмодзи кракозябры после импорта
Сжатие (gzip) экономия места и трафика архив в разы больше
Отдельный пользователь с правами на чтение безопасность риск прав и ошибок доступа

Бинарные логи и восстановление на момент

Дамп фиксирует состояние на вчера, а бинарный лог хранит все изменения после него. Связка «дамп + логи» позволяет восстановить базу на конкретную минуту: сначала разворачивается дамп, затем проигрываются изменения до нужного времени. Это единственный способ вернуть данные без потери последних часов.

Способ Что даёт Когда использовать
Логический дамп переносимый архив всей базы регулярные бэкапы, переезд
Дамп + бинарные логи восстановление на точку после ошибочного удаления или сбоя
Копия файлов базы быстро и точно крупные базы, но нужен доступ к серверу

На практике: раз в сутки полный дамп, плюс бинарные логи с ротацией на 7–14 дней. Тогда любая авария откатывается на нужную минуту, а не «на вчера».

Как проверить, что дамп рабочий

  1. Посмотрите размер: подозрительно маленький файл — признак, что дамп прервался.
  2. Проверьте начало и конец файла: он должен заканчиваться строкой завершения, а не обрываться на середине.
  3. Импортируйте дамп в тестовую базу и сравните число записей в основных таблицах с боевыми.
  4. Откройте пару страниц сайта на тестовой копии — данные должны отображаться.
  5. Проверьте, что перенеслись процедуры, триггеры и кодировка.

Хранение и ротация

Дампы сжимайте и шифруйте: внутри могут быть персональные данные и хеши паролей. Храните не менее 7 дневных копий плюс месячные, а самые свежие — вне сервера сайта. Проверяйте место: когда диск заполняется, новые дампы молча перестают создаваться, и вы узнаёте об этом при восстановлении.

Частые ошибки

Ошибка Чем опасна
Дамп без —single-transaction битые и несогласованные данные
Копия только структуры без данных сайт пустой
Забыли процедуры и триггеры часть логики не работает
Неверная кодировка при импорте текст превращается в кракозябры
Хранение только на сервере сайта копия исчезает вместе с сервером
Ни разу не проверяли импорт в момент аварии архив оказывается битым

Частые вопросы

Можно ли восстановить базу без дампа? Иногда — из бинарных логов или файлов базы, но это сложнее и требует доступа к серверу. Дамп надёжнее.

Как часто делать дамп магазина? Каждые 6–12 часов, а перед акциями и обновлениями — вручную.

Хватит ли дампа раз в сутки? Для блога да. Для заказов и заявок — нет, потеря дня может стоить дороже, чем место на диске.

Оцените статью
Пин ми
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии