Files
datakeep/PROGRESS.md
2026-02-09 18:07:46 +08:00

43 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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*