备份

CheckCle 数据备份与持久化指南

1. 数据持久化设置

CheckCle 使用 PocketBase 作为其嵌入式数据库。默认情况下,PocketBase 将所有应用数据存储在容器内的 pb_data 文件夹中。为了在重启或重新创建容器时防止数据丢失,您应将此目录在主机上持久化。

示例:主机卷挂载

在您的容器配置中:

  • 主机路径: /mnt/db/pb_data

  • 容器路径: /mnt/pb_data

  • 模式: 读写(RW) (读/写)

这可确保所有 PocketBase 数据(SQLite 数据库、上传的文件、迁移、日志)存储在主机上的:

/mnt/db/pb_data

通过此设置,即使容器被移除或重新创建,CheckCle 的数据也会保留。

2. pb_data 的备份策略 pb_data

由于 pb_data 包含 SQLite 数据库和文件存储,因此定期备份至关重要。以下是推荐的策略:

A. 简单文件复制备份

使用 使用 rsync或 cppb_data 文件夹复制到备份位置:

# 示例:带时间戳备份到 /backups/checkcle
rsync -avz /mnt/db/pb_data /backups/checkcle/pb_data_$(date +%F_%H-%M-%S)

B. 压缩归档备份

创建一个压缩的 .tar.gz 归档以便携带:

tar -czvf /backups/checkcle/pb_data_$(date +%F).tar.gz /mnt/db/pb_data

C. 自动化 Cron 任务

使用自动化每天备份 cron:

0 2 * * * rsync -avz /mnt/db/pb_data /backups/checkcle/pb_data_$(date +\%F) >> /var/log/checkcle_backup.log 2>&1

此任务在 每天凌晨 2 点运行.

D. 远程备份(可选)

将备份推送到远程服务器或云(S3、MinIO,或 rsync 到另一台服务器):

rsync -avz /mnt/db/pb_data user@remote-server:/remote/backups/checkcle/

3. 恢复策略

要恢复备份:

  1. 停止 CheckCle(PocketBase)容器:

    docker stop checkcle
  2. 用您的备份替换该 pb_data 目录:

    rm -rf /mnt/db/pb_data
    cp -r /backups/checkcle/pb_data_2025-09-15 /mnt/db/pb_data
  3. 重启容器:

    docker start checkcle

4. 最佳实践

  • 在升级 CheckCle 或 PocketBase 之前始终备份 CheckCle 或 PocketBase。

  • 定期测试恢复流程 以确保备份有效。

  • 使用异地存储 (S3、Minio 或另一台服务器)以便灾难恢复。

  • 监控主机上的磁盘空间 以防止备份失败。

最后更新于