# SyncServer **Repository Path**: linyihang/sync-server ## Basic Information - **Project Name**: SyncServer - **Description**: 用于同步数据库指定表 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-25 - **Last Updated**: 2025-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SyncServer SyncServer 是一个用 Go 语言编写的数据库同步工具,提供 HTTP API 接口,用于在两个 MySQL 数据库之间同步数据。 ## 项目结构 ``` SyncServer/ ├── cmd/ # 命令行工具 │ └── httpserver/ # HTTP服务器实现 ├── pkg/ # 公共库 │ └── sync/ # 同步逻辑实现 ├── internal/ # 私有代码 ├── config.json # 配置文件 ├── start-http-server.sh # 启动脚本 └── README.md # 项目说明 ``` ## 前置条件 - Go 1.21 或更高版本 - MySQL 数据库 ## 安装 1. 克隆仓库: ```bash git clone https://github.com/yourusername/syncserver.git cd syncserver ``` 2. 安装依赖: ```bash go mod download ``` ## 运行 ### 启动 HTTP 服务器 使用提供的脚本启动 HTTP 服务器: ```bash # 默认在8080端口启动,使用默认配置文件 ./start-http-server.sh # 指定自定义端口和配置文件 ./start-http-server.sh -p 9000 -c custom-config.json ``` 服务器将在指定端口启动,默认使用 `config.json` 配置文件。 ## API 端点 ### 1. 健康检查 ``` GET /health ``` 用于检查服务是否正常运行。 **响应示例:** ```json { "status": "ok" } ``` ### 2. 执行数据库同步 ``` POST /sync ``` 触发数据库同步操作。 **请求体格式:** ```json { "tables": "表名1,表名2,表名3" } ``` **参数说明:** - `tables`: 要同步的表名,多个表名用逗号分隔 **响应示例:** ```json { "success": true, "message": "同步成功完成", "elapsed_time": "2.5s", "table_stats": { "表名1": { "new_records": 10, "updated_records": 5 }, "表名2": { "new_records": 0, "updated_records": 3 } }, "total_new": 10, "total_updated": 8 } ``` ## 配置 配置文件 `config.json` 包含数据库连接信息和同步选项: ```json { "databases": { "source": { "host": "源数据库主机", "port": 数据库端口, "user": "数据库用户名", "password": "数据库密码", "dbname": "数据库名称" }, "target": { "host": "目标数据库主机", "port": 数据库端口, "user": "数据库用户名", "password": "数据库密码", "dbname": "数据库名称" } }, "sync_options": { "dry_run": false, "debug": false } } ``` **配置说明:** - `databases` - 数据库连接信息 - `source` - 源数据库配置 - `target` - 目标数据库配置 - `sync_options` - 同步选项 - `dry_run` - 演习模式(不实际修改数据) - `debug` - 调试模式(输出详细日志) ## 同步功能 SyncServer 提供以下同步功能: 1. **表级同步**:可以指定要同步的表列表 2. **增量同步**:只同步新增和更新的记录 3. **演习模式**:可以在不实际修改数据的情况下预览同步操作 4. **详细日志**:提供同步过程的详细日志和统计信息 ## 操作流程 1. 配置源数据库和目标数据库的连接信息 2. 启动 HTTP 服务器 3. 通过 API 发送同步请求,指定要同步的表 4. 服务器执行同步操作并返回结果 ## 许可证 [MIT License](LICENSE)