c2ffb3c8b8de000ae1bd25a1040532d59526e60f
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)
- 进入
backend目录。 - 创建并激活虚拟环境:
python -m venv .venv # Windows: .\.venv\Scripts\activate # Linux/macOS: source .venv/bin/activate - 安装依赖:
pip install -r requirements.txt - 前提条件:确保本地已安装
mysql-client(支持mysqldump命令)。 - 启动服务:
uvicorn app:app --host 0.0.0.0 --port 8000 --reload
2. 前端 (Vue CLI)
- 进入
frontend目录。 - 安装依赖:
npm install - 启动开发服务器:
npm run serve - 访问地址:
http://localhost:8080(默认会自动代理 API 请求到 8000 端口)。
生产部署 (Docker Compose)
在备份服务器上,确保已安装 Docker,然后执行:
docker compose up -d --build
访问地址:http://服务器IP:12000
配置说明
- 生产端 (Source):填写客户正在使用的生产环境数据库 IP 和账号。
- 备份端 (Target):
- 如果使用 Docker 部署,Host 建议填写容器名:
dr-mysql,dr-redis,dr-minio。 - 如果本地部署,填写
127.0.0.1及对应端口。
- 如果使用 Docker 部署,Host 建议填写容器名:
Description
Languages
Python
47.3%
Vue
46.8%
Dockerfile
3.2%
JavaScript
2.7%