2026-02-09 10:09:53 +00:00
2026-02-09 18:07:46 +08:00
2026-02-09 18:07:46 +08:00
2026-02-09 18:07:46 +08:00
2026-02-09 18:07:46 +08:00
2026-02-09 18:07:46 +08:00

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. 创建并激活虚拟环境:
    python -m venv .venv
    # Windows:
    .\.venv\Scripts\activate
    # Linux/macOS:
    source .venv/bin/activate
    
  3. 安装依赖:
    pip install -r requirements.txt
    
  4. 前提条件:确保本地已安装 mysql-client(支持 mysqldump 命令)。
  5. 启动服务:
    uvicorn app:app --host 0.0.0.0 --port 8000 --reload
    

2. 前端 (Vue CLI)

  1. 进入 frontend 目录。
  2. 安装依赖:
    npm install
    
  3. 启动开发服务器:
    npm run serve
    
  4. 访问地址: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 及对应端口。
Description
灾容系统
Readme 40 KiB
Languages
Python 47.3%
Vue 46.8%
Dockerfile 3.2%
JavaScript 2.7%