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

66 lines
2.1 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
一个运行在**备份服务器**上的容灾副本同步服务Pull 模式):
- **备份服务器**上运行一套 MySQL/Redis/MinIO作为容灾副本/隔离副本)。
- `datakeep-backend` 定时从**生产环境**直连拉取数据,并同步写入备份端的 MySQL/Redis/MinIO。
- 前端使用 **Vue2 + Vue CLI + ElementUI**提供小时级0-23定时配置。
## 核心能力
- **MySQL 同步**:支持**自动建库**与**结构变更自动同步**(全量覆盖模式)。
- **Redis 同步**:键级全量同步 `SCAN + DUMP + RESTORE`,同步前自动 `FLUSHALL` 备份库。
- **MinIO 同步**:增量镜像,**只增不删**,确保生产端误删不传播。
- **配置存储**:使用 SQLite 保证数据一致性。
## 本地启动指南 (非 Docker)
如果你想在本地开发环境直接运行,请按以下步骤操作:
### 1. 后端 (FastAPI)
1. 进入 `backend` 目录。
2. 创建并激活虚拟环境:
```bash
python -m venv .venv
# Windows:
.\.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate
```
3. 安装依赖:
```bash
pip install -r requirements.txt
```
4. **前提条件**:确保本地已安装 `mysql-client`(支持 `mysqldump` 命令)。
5. 启动服务:
```bash
uvicorn app:app --host 0.0.0.0 --port 8000 --reload
```
### 2. 前端 (Vue CLI)
1. 进入 `frontend` 目录。
2. 安装依赖:
```bash
npm install
```
3. 启动开发服务器:
```bash
npm run serve
```
4. 访问地址:`http://localhost:8080`(默认会自动代理 API 请求到 8000 端口)。
## 生产部署 (Docker Compose)
在备份服务器上,确保已安装 Docker然后执行
```bash
docker compose up -d --build
```
访问地址:`http://服务器IP:12000`
## 配置说明
- **生产端 (Source)**:填写客户正在使用的生产环境数据库 IP 和账号。
- **备份端 (Target)**
- 如果使用 Docker 部署Host 建议填写容器名:`dr-mysql`, `dr-redis`, `dr-minio`。
- 如果本地部署,填写 `127.0.0.1` 及对应端口。