# DataKeep 项目进度记录 (PROGRESS.md) ## 1. 项目愿景 实现一个轻量级、物理隔离的数据库容灾备份系统,运行在备份服务器上,主动从生产环境“拉取”数据并同步到本地的 MySQL、Redis 和 MinIO 副本中。 ## 2. 核心决策 (2026-02-09) - **同步方向**: Pull (从备份服务器主动连接生产服务器)。 - **同步频率**: 小时级 (通过前端 UI 配置 `sync_hour`)。 - **MySQL 同步**: `mysqldump` 全量逻辑导出 -> 本地导入。支持**自动建库**(`--databases`)与**结构变更自动覆盖**(`--add-drop-database`)。 - **Redis 同步**: `SCAN` + `DUMP` + `RESTORE` (键级同步),同步前 `FLUSHALL` 备份库。 - **MinIO 同步**: 增量镜像 (ETag + Size 对比),只增不删 (A方案)。 - **后端存储**: SQLite (SQLAlchemy) 存储实例配置与运行记录。 - **前端框架**: Vue 2 (使用 Vue-CLI 结构)。 - **部署方式**: Docker Compose 一键部署。 - **暴露端口**: 前端 Web 界面端口为 `12000`。 ## 3. 任务进度清单 ### 第一阶段:后端加固 [已完成] - [x] 后端基础框架 (FastAPI + APScheduler) - [x] MySQL 同步逻辑实现 (mysqldump) - [x] Redis 键级同步逻辑 (SCAN/DUMP/RESTORE) - [x] MinIO 增量同步逻辑 (SDK 模式,只增不删) - [x] 集成 SQLite 存储 (SQLAlchemy) 替代 JSON - [x] 完善实例级 RESTful CRUD API ### 第二阶段:前端工程化 [已完成] - [x] 初始化 Vue-CLI 完整目录结构 - [x] 实现 Axios 封装与后端 API 对接 - [x] 实现实例列表、新增、编辑、删除功能 - [x] 实现小时级 (0-23) 调度选择 UI - [x] 实现运行历史日志查看页面 ### 第三阶段:容器化与交付 [已完成] - [x] 编写后端 Dockerfile (含 mysql-client) - [x] 编写前端 Dockerfile (多阶段构建 + Nginx) - [x] 编写 docker-compose.yml (集成 MySQL/Redis/MinIO 备份实例) - [x] 修改前端暴露端口为 12000 - [x] 编写 README.md 部署指南 --- *状态: 全部完成 | 更新时间: 2026-02-09*