新增备份监控与定时配置

This commit is contained in:
yml2213
2026-08-16 23:53:50 +08:00
parent 66cb03ebce
commit f67ee12d72
19 changed files with 612 additions and 3 deletions
+11 -2
View File
@@ -37,6 +37,7 @@ STORAGE_SECRET_ACCESS_KEY
BACKEND_UID
BACKEND_GID
BACKUP_DIR
BACKUP_STATUS_DIR
BACKUP_RESTORE_DIR
BACKUP_OSS_URI
BACKUP_PASSPHRASE
@@ -92,15 +93,23 @@ RAM 凭证只授予该 Bucket 的列举、读取、写入对象权限,不要
./scripts/backup-online.sh prune
```
后台“数据备份”页面只读取 `${BACKUP_STATUS_DIR}/status.json`;该目录以只读方式挂载给 backend,不包含备份载荷。首次部署后先生成状态摘要:
```bash
./scripts/backup-status.sh write
```
推荐 cron(以部署用户运行,并把日志写到受限目录):
```cron
* * * * * cd /srv/hfb_sys && ./scripts/archive-binlog.sh archive >> /data/backups/archive-binlog.log 2>&1
30 4 * * * cd /srv/hfb_sys && ./scripts/backup-online.sh full >> /data/backups/full-backup.log 2>&1
# 每分钟读取后台定时配置,按需归档 binlog 和执行全量热备。
* * * * * cd /srv/hfb_sys && ./scripts/backup-scheduler.sh >> /data/backups/backup-scheduler.log 2>&1
15 5 * * * cd /srv/hfb_sys && ./scripts/backup-online.sh prune >> /data/backups/prune.log 2>&1
10 5 * * 0 cd /srv/hfb_sys && ./scripts/archive-binlog.sh verify >> /data/backups/archive-verify.log 2>&1
```
全量备份时间、是否启用定时任务和 binlog 间隔在后台“数据备份”页面配置;宿主机 cron 必须保留每分钟的调度器入口。不要将 Docker socket、备份目录或恢复操作暴露给 backend。
OSS 生命周期建议:`mysql/full/daily/` 30 天、`weekly/` 60 天、`monthly/` 365 天、`mysql/binlog/` 至少 45 天。时间点恢复窗口受最早全量备份和 binlog 保留期共同限制。
每周必须在隔离目录做一次恢复演练,绝不向生产容器回放:
+2
View File
@@ -87,6 +87,8 @@ services:
TZ: Asia/Shanghai
volumes:
- ../backend/logs:/app/logs
# 仅挂载备份状态摘要,后端无法读取备份文件、Docker socket 或 OSS 凭证文件。
- ${BACKUP_STATUS_DIR:-/data/backups/status}:/var/run/hfb-backup-status:ro
deploy:
resources:
limits: