跳到主要内容

数据库备份

FeedbackPulse 内置了备份系统(管理员 → 备份),可让您直接在管理面板中创建、下载和管理数据库备份。


🔧 工作原理

FeedbackPulse 会智能检测您的托管环境并选择最佳备份方式:

环境方式速度
VPS/独立服务器(exec 可用)mysqldump 命令 → gzip快速
Windows(Laragon/XAMPP)mysqldump → PHP gzencode快速
共享主机(exec 已禁用)纯 PHP/PDO 导出 → gzencode中等

如果 exec() 被禁用或找不到 mysqldump,系统会自动回退到基于 PHP 的方式。这意味着所有托管类型均支持备份,包括限制 Shell 命令的共享主机。


📋 功能

创建备份

点击创建备份以生成新的数据库导出文件。文件将以带时间戳的文件名保存至 storage/app/backups/

下载备份

点击任意备份旁的下载图标,即可下载 .sql.gz 文件。

删除备份

点击删除图标可移除备份文件。此操作仅删除备份文件——您的实时数据库不受影响。

备份列表

显示所有现有备份,包括:

  • 文件名
  • 文件大小
  • 创建日期
  • 下载/删除操作

🔐 安全性

  • 备份存储在 storage/app/backups/(不可公开访问)
  • 数据库密码通过临时 .my.cnf 文件处理,使用后自动删除
  • 只有超级管理员才能访问备份功能

💡 最佳实践

  1. 定期创建备份 — 在更新、重大变更之前或定期执行
  2. 下载备份 — 不要只将备份保存在服务器上
  3. 测试恢复 — 定期验证备份能够成功恢复
  4. 自动化 — 如有需要,可设置定时任务实现每日自动备份

通过命令行手动备份

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

⏭️ 后续步骤