数据是任何应用系统的核心资产。对于个人书签管理系统来说,多年积累的书签收藏、笔记内容、导航分类,每一条都是不可替代的。MarkStackAI 内置了完整的备份恢复机制,帮助你轻松实现数据安全保障和服务器迁移。

备份功能概览

MarkStackAI 提供了一键备份功能,无需手动操作数据库或使用命令行工具。在管理后台的「系统管理」页面,点击「备份」按钮即可将整个系统数据打包为一个 ZIP 压缩包下载到本地。

备份过程完全自动化:系统会暂停写入操作,导出当前数据库快照和所有上传文件,打包完成后自动恢复正常运行。整个过程通常在几秒内完成,对于普通规模的书签库(数千条记录)几乎感受不到任何停顿。

备份包包含的内容

每个备份 ZIP 包包含两大部分:

提示:备份文件以 markstackai-backup-YYYYMMDD-HHmmss.zip 格式命名,包含时间戳方便你区分不同版本。建议定期下载备份并保存到网盘或外部存储。

一键恢复流程

当你需要恢复数据时——无论是因为误操作、系统故障还是服务器迁移——恢复过程同样简单:

  1. 打开管理后台,进入「系统管理」页面
  2. 点击「恢复」按钮,选择之前下载的 ZIP 备份文件
  3. 预览备份内容,系统会显示备份文件中的数据概况,包括书签数量、笔记数量、创建时间等关键信息
  4. 确认恢复,系统会自动替换当前数据库和上传文件,完成后自动重启服务

恢复操作会覆盖当前所有数据。如果你只是想合并数据而不是完全替换,建议先备份当前数据,再执行恢复,然后手动整理需要保留的内容。

预览备份内容

MarkStackAI 在恢复前提供了备份预览功能,这是一个非常重要的安全措施。上传 ZIP 文件后,系统不会立即执行恢复,而是先解析备份包的内容并展示详细信息:

通过预览,你可以确认这确实是你想要恢复的备份版本,避免误操作导致数据丢失。只有在确认预览信息无误后,点击「确认恢复」才会真正执行数据替换。

SQLite 文件直接拷贝

得益于 SQLite 单文件数据库的架构优势,你也可以跳过 Web 界面直接操作数据库文件。SQLite 数据库就是服务器上的一个文件,通常位于 backend/data/ 目录下:

# 停止服务
sudo supervisorctl stop markstackai

# 直接拷贝数据库文件
cp backend/data/markstackai.db /path/to/backup/

# 恢复时拷贝回来
cp /path/to/backup/markstackai.db backend/data/

# 重启服务
sudo supervisorctl start markstackai

这种方式适合熟悉命令行的用户,可以通过 cron 定时任务实现自动备份。但要注意:直接拷贝数据库文件时,需要先停止后端服务以避免写入冲突。

服务器迁移工作流

MarkStackAI 基于 Docker 部署,服务器迁移流程非常清晰:

  1. 在旧服务器上备份:通过管理后台一键生成 ZIP 备份包并下载
  2. 在新服务器上部署:克隆项目仓库,配置 .env 环境变量,执行 docker compose up -d 启动服务
  3. 首次登录:使用默认管理员账户登录新部署的实例
  4. 上传备份恢复:在管理后台上传 ZIP 备份文件,预览确认后执行恢复
  5. 验证数据:检查书签、笔记、导航分类等数据是否完整
  6. 切换域名 DNS:将域名解析指向新服务器 IP

整个迁移过程通常不超过 30 分钟,且由于备份包是自包含的 ZIP 文件,不依赖特定的数据库版本或服务器环境,可以在任何支持 Docker 的机器上恢复。

备份策略建议

为了最大化数据安全,我们建议采用以下备份策略:

安全保障

MarkStackAI 的备份恢复功能内置了多重安全措施:

数据安全不是事后补救,而是事前预防。养成定期备份的好习惯,让你的书签数据始终处于安全保障之中。

← 返回博客列表