Перейти к основному содержимому

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

FeedbackPulse включает встроенную систему резервного копирования (Администратор → Резервные копии), которая позволяет создавать, скачивать и управлять резервными копиями базы данных прямо из панели администратора.


🔧 Как это работает

FeedbackPulse автоматически определяет среду хостинга и выбирает оптимальный метод резервного копирования:

СредаМетодСкорость
VPS/Выделенный сервер (exec доступен)Команда mysqldump → gzipВысокая
Windows (Laragon/XAMPP)mysqldump → PHP gzencodeВысокая
Виртуальный хостинг (exec отключён)Чистый дамп PHP/PDO → gzencodeСредняя

Система автоматически переключается на метод на основе PHP, если exec() отключён или mysqldump не найден. Это означает, что резервные копии работают на любом типе хостинга, включая виртуальный хостинг с ограниченным доступом к командной строке.


📋 Возможности

Создание резервной копии

Нажмите Создать резервную копию, чтобы сгенерировать новый дамп базы данных. Файл сохраняется в storage/app/backups/ с именем, содержащим метку времени.

Скачивание резервной копии

Нажмите значок загрузки рядом с любой резервной копией, чтобы скачать файл .sql.gz.

Удаление резервной копии

Нажмите значок удаления, чтобы удалить файл резервной копии. Это удаляет только файл резервной копии — рабочая база данных не затрагивается.

Список резервных копий

Отображает все существующие резервные копии с:

  • Именем файла
  • Размером файла
  • Датой создания
  • Действиями скачивания/удаления

🔐 Безопасность

  • Резервные копии хранятся в storage/app/backups/ (не доступны публично)
  • Пароли базы данных обрабатываются через временные файлы .my.cnf, которые удаляются после использования
  • Доступ к функции резервного копирования имеют только суперадминистраторы

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

  1. Создавайте регулярные резервные копии — перед обновлениями, крупными изменениями или на регулярной основе
  2. Скачивайте резервные копии — не храните их только на сервере
  3. Проверяйте восстановление — периодически убеждайтесь, что резервные копии можно восстановить
  4. Автоматизируйте — настройте cron-задачу для автоматического ежедневного резервного копирования при необходимости

Ручное резервное копирование через командную строку

cd /var/www/feedbackpulse-saas
mysqldump -u feedbackpulse -p feedbackpulse | gzip > storage/app/backups/manual_$(date +%Y%m%d).sql.gz

Восстановление из резервной копии

gunzip < storage/app/backups/backup_file.sql.gz | mysql -u feedbackpulse -p feedbackpulse

⏭️ Следующие шаги