备份与恢复
保护你的 Mix Space 数据,学会备份与回滚
手动备份
在后台后台的「备份」页面中点击「立即备份」,系统会将数据打包为 zip 文件,保存到服务器的绝对目录:
~/.mx-space/backup/YYYY-MM-DD_HH:mm:ss/backup-YYYY-MM-DD_HH:mm:ss.zip数据目录固定为 ~/.mx-space(开发模式下为项目下的 ./tmp),不随部署路径变化。目录名与文件名的时间戳格式都是 YYYY-MM-DD_HH:mm:ss——注意其中包含冒号,这是 Linux/macOS 允许、Windows 不允许的。
建议定期手动下载备份包到本地,以防服务器故障导致数据丢失。
自动备份
目前该功能仅支持备份到支持 S3 协议的云服务,暂不支持其他类型的云服务。当然,你也可以通过设置计划任务等方法达到和此功能一样的效果。
设置入口:后台「设置 → 存储 → 备份」,填入云服务所提供的对应参数即可。
恢复
该操作涉及修改数据库,请多备份几个工作日的 backup,数据无价请谨慎操作!
一般情况下回滚只会导致 analyze 数据页丢失 IP & PV 的数据。
服务端提供了两条现成的恢复路径,都不需要手工重命名备份包:
- 上传备份包恢复 —— 在后台后台的「备份」页面中上传你手上的 zip 备份包即可,服务端会先把它落到临时目录,再直接执行恢复。
- 按目录名回滚 —— 如果你想回到某次已有备份,直接指定该备份的目录名即可。
恢复操作开始前,服务端会自动先做一次新备份,所以回滚本身也是可逆的。回滚会导致 analyze 数据页丢失 IP 与 PV 数据,其余内容(文章、评论等)不受影响。操作前仍建议多备份几个工作日的包。
替换完成后会提示「数据库有变动,将在 x 秒后重载页面」,重载后请先检查文章、评论等有没有丢失。
命令行备份(v12+)
自 v12 起,Mix Space 使用 PostgreSQL 作为数据库。服务端自身的备份用的是 pg_dump --format=custom(custom 格式),你手工备份时建议保持一致:
# 备份(custom 格式,dump 落在 mx-space/pg.dump)
pg_dump -Fc postgresql://mx:mx@localhost:5432/mx_core > pg.dump恢复时用 pg_restore,并加上服务端同样使用的清理参数:
pg_restore --clean --if-exists -d postgresql://mx:mx@localhost:5432/mx_core pg.dump--clean --if-exists 会在恢复前删除已存在的同名对象。如果你要的是纯 SQL 文本备份,用 pg_dump 不加 -Fc,恢复时改用 psql < backup.sql。