Skip to content

备份与恢复

CPAMP 的请求历史、配置和加密凭证都在本地数据目录。备份时最容易犯的错,是只复制 usage.sqlite,漏掉 WAL/SHM 或 data.key

必备备份文件

至少把这些文件作为一组备份:

  • usage.sqlite
  • usage.sqlite-wal
  • usage.sqlite-shm
  • data.key

如果部署目录还有自定义配置文件,也应一起备份。

为什么必须备份 data.key

CPA Management Key 会使用 data.key 加密后保存到 SQLite。

  • 只有 usage.sqlite 泄露时,攻击者不能直接读出 CPA Management Key。
  • usage.sqlitedata.key 同时泄露时,CPA Management Key 可被解密。
  • 丢失 data.key 时,已经保存的 CPA Management Key 无法恢复,只能重新保存 CPA 连接配置。

Docker 备份示例

如果使用 named volume,可以先停止容器,再用临时容器导出:

bash
docker stop cpa-manager-plus
docker run --rm \
  -v cpa-manager-plus-data:/data:ro \
  -v "$PWD":/backup \
  alpine \
  tar czf /backup/cpa-manager-plus-data.tgz -C /data .
docker start cpa-manager-plus

如果使用宿主机目录挂载:

bash
docker stop cpa-manager-plus
cp -a /srv/cpa-manager-plus-data /srv/cpa-manager-plus-data.backup
docker start cpa-manager-plus

原生包备份

停止进程后复制数据目录:

bash
cp -a ./data ./data.backup

Windows PowerShell:

powershell
Copy-Item -Recurse .\data .\data.backup

恢复

  1. 停止 CPAMP。
  2. 恢复完整数据目录。
  3. 确认 usage.sqlitedata.key 来自同一次备份。
  4. 启动 CPAMP。
  5. 登录后检查配置、监控数据和采集器状态。

如果恢复后出现解密失败,优先检查 data.key 是否和 SQLite 匹配。

Released under the MIT License.