Files
datakeep/PROGRESS.md

43 lines
2.0 KiB
Markdown
Raw Normal View History

2026-02-09 18:07:46 +08:00
# 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*