0Pricing
Linux Server Deployment & SSH Mastery · Урок

Стратегии резервного копирования и восстановления баз данных

Защитите данные надёжными резервными копиями: создавайте дампы и восстанавливайте базы данных PostgreSQL и MySQL, автоматизируйте резервное копирование с помощью cron и разберитесь с восстановлением на момент времени, чтобы пережить сбои дисков и ошибки.

«Стратегии резервного копирования и восстановления баз данных» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

Резервные копии — часть безопасности

Вы установили базу данных, ограничили доступ и защитили соединения. Но даже защищённый сервер по-прежнему уязвим к отказу диска, случайному выполнению DROP TABLE или атаке с требованием выкупа.

Резервные копии — последняя линия защиты. База данных настолько безопасна, насколько надёжна её последняя проверенная резервная копия.

Логические и физические резервные копии

Есть два основных подхода:

  • Логический — экспорт инструкций SQL и данных (например, pg_dump, mysqldump). Переносимый, понятный для человека, но медленнее восстанавливается.
  • Физический — копирование необработанных файлов данных. Быстро для огромных баз данных, но зависит от версии сервера.

Большинство конфигураций начинают с логических резервных копий.

Создание копии базы данных PostgreSQL

pg_dump экспортирует одну базу данных. Пользовательский формат (-Fc) сжат и поддерживает выборочное восстановление.

pg_dump -U appuser -Fc mydb > mydb_$(date +%F).dump

Восстановление PostgreSQL

Восстановите копию в пользовательском формате с помощью pg_restore. Копию в виде обычного SQL вместо этого передайте в psql через конвейер.

createdb -U appuser mydb_restored
pg_restore -U appuser -d mydb_restored mydb_2026-05-30.dump

Создание и восстановление копий MySQL

MySQL/MariaDB используют mysqldump для экспорта и mysql для импорта. По умолчанию копия представляет собой обычный SQL.

mysqldump -u appuser -p mydb > mydb_$(date +%F).sql
mysql -u appuser -p mydb_restored < mydb_2026-05-30.sql

Резервное копирование всех баз данных

Чтобы сохранить весь сервер, оба движка предлагают создать копию всего кластера. Это полезно перед крупными обновлениями или переносом.

pg_dumpall -U postgres > all_$(date +%F).sql
mysqldump -u root -p --all-databases > all_$(date +%F).sql

Автоматизация с помощью Cron

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

# crontab -e  -> run at 02:30 every day
30 2 * * * /usr/local/bin/db_backup.sh >> /var/log/db_backup.log 2>&1

Простой сценарий резервного копирования

Хороший сценарий добавляет к именам файлов метки времени и удаляет старые копии, чтобы диск не заполнился. В этом примере хранятся копии за 14 дней.

#!/bin/bash
DIR=/var/backups/db
pg_dump -U appuser -Fc mydb > $DIR/mydb_$(date +%F).dump
find $DIR -name 'mydb_*.dump' -mtime +14 -delete

Хранение за пределами сервера

Резервная копия на том же сервере выйдет из строя вместе с сервером. Копируйте копии в другое место — объектное хранилище, на другой узел или в оба места.

Используйте rsync или облачный CLI как последний шаг сценария резервного копирования.

rsync -avz /var/backups/db/ backup@remote:/srv/db_backups/
# or: aws s3 cp $DIR/mydb_$(date +%F).dump s3://my-bucket/

Восстановление на определённый момент времени

Ежедневные копии могут привести к потере данных за целые сутки. Чтобы исключить или свести потери к минимуму, включите непрерывное архивирование (архивирование WAL в PostgreSQL, двоичные журналы в MySQL). В сочетании с базовой резервной копией это позволяет восстановить данные на любой момент времени.

Это золотой стандарт для рабочих баз данных.

Рекомендации

Сделайте резервные копии надёжными:

  • Регулярно проверяйте восстановление — непроверенная резервная копия остаётся лишь предположением
  • Автоматизируйте задания резервного копирования и отслеживайте их сбои
  • Храните копии за пределами сервера
  • Храните несколько поколений копий, а не только последнюю

Быстрая проверка

Проверьте свои знания о резервном копировании.

Итоги

Теперь у Вас есть стратегия защиты базы данных:

  • Логические копии с помощью pg_dump/mysqldump и восстановление с помощью pg_restore/mysql
  • Копии всего кластера для переноса
  • Автоматизированные резервные копии с удалением старых файлов через cron
  • Копии за пределами сервера и восстановление на определённый момент времени для минимизации потери данных

Всегда проверяйте восстановление — это завершает безопасную эксплуатацию базы данных.

Часто задаваемые вопросы

Урок «Стратегии резервного копирования и восстановления баз данных» бесплатный?

Да — полный текст урока «Стратегии резервного копирования и восстановления баз данных» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

Чему я научусь в уроке «Стратегии резервного копирования и восстановления баз данных»?

Защитите данные надёжными резервными копиями: создавайте дампы и восстанавливайте базы данных PostgreSQL и MySQL, автоматизируйте резервное копирование с помощью cron и разберитесь с восстановлением… Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?

Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Стратегии резервного копирования и восстановления баз данных»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?

Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Установка PostgreSQL/MySQL
  2. Пользователи базы данных и управление доступом
  3. Защищённые подключения к базе данных
  4. Стратегии резервного копирования и восстановления баз данных
← Назад к Linux Server Deployment & SSH Mastery