灾容datakeep项目推送
This commit is contained in:
65
README.md
Normal file
65
README.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# 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` 及对应端口。
|
||||
Reference in New Issue
Block a user