DBSyncer
DBSyncer
🔄 一款开源的数据同步中间件,让数据同步变得简单高效。
简介
DBSyncer(简称 dbs,发音:英 [dbsɪŋkɜː(r)] / 美 [dbsɪŋkɜː(r)])是一款开源的数据同步中间件,提供 MySQL、Oracle、SQL Server、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL 等多种数据源的同步场景。
🔌 支持上传插件自定义同步转换业务
📊 提供监控全量和增量数据统计图
⚠️ 应用性能预警
核心特点
| 特点 | 说明 |
|---|---|
| 组合驱动 | 自定义库同步到库组合,关系型数据库与非关系型之间任意搭配表同步映射关系 |
| 实时监控 | 驱动全量或增量实时同步运行状态、结果、同步日志和系统日志 |
| 开发插件 | 自定义转化同步逻辑,满足个性化业务需求 |
应用场景
支持丰富的数据源连接器,覆盖主流数据库和中间件:
| 连接器 | 数据源 | 目标源 | 支持版本 |
|---|---|---|---|
| MySQL | ✅ | ✅ | 5.7.19 以上 |
| Oracle | ✅ | ✅ | 10g - 19c |
| SQL Server | ✅ | ✅ | 2008 以上 |
| PostgreSQL | ✅ | ✅ | 9.5.25 以上 |
| SQLite | ✅ | ✅ | 2 以上 |
| Elasticsearch(ES) | ✅ | ✅ | 6.0.0 - 8.15.3 |
| Kafka | ✅ | ✅ | 2.10 - 0.9.0.0 以上 |
| File | ✅ | ✅ | *.txt, *.unl |
| HTTP | ✅ | ✅ | - |
| SQL | ✅ | - | 支持以上关系型数据库 |
| Redis | 🚧 | - | 后期计划 |
性能测试
全量同步
| 系统 | 机器配置 | 数据量 | 耗时 |
|---|---|---|---|
| Mac | Apple M3 Pro 12核心 / 18GB 内存 | 1 亿条 | 31 分 50 秒 |
| Linux | Intel Xeon E5-2696 v3B 8核心 / 48GB 内存 | 1 亿条 | 37 分 52 秒 |
| Windows | AMD Ryzen 7 5800X 8核心 / 12GB 内存 | 1 亿条 | 57 分 43 秒 |
增量同步
| 系统 | 机器配置 | 分配内存 | TPS | 峰值 |
|---|---|---|---|---|
| Mac | Apple M3 Pro 12核心 / 18GB 内存 | 4GB | 8,112/秒 | 11,000/秒 |
| Linux | Intel Xeon E5-2696 v3B 8核心 / 48GB 内存 | 4GB | 8,000/秒 | 10,000/秒 |
| Windows | AMD Ryzen 7 5800X 8核心 / 12GB 内存 | 4GB | 7,553/秒 | 9,000/秒 |
快速开始
方式一:下载安装包
安装 JDK 1.8
下载安装包
dbsyncer-x.x.x.zip(也可手动编译)解压安装包:
Windows:执行
bin/startup.batLinux:执行
bin/startup.sh
打开浏览器访问:127.0.0.1:18686
默认账号密码:
admin / admin
方式二:Docker 部署
# 拉取社区版镜像
docker pull scxhtb-registry.cn-hangzhou.cr.aliyuncs.com/xhtb/dbsyncer:latest
# 运行容器
docker run -d \
--name=dbsyncer \
--restart=unless-stopped \
-p 18686:18686 \
-e TZ="Asia/Shanghai" \
-m 5g \
--memory-swap=5g \
-v /opt/dbsyncer/data:/app/dbsyncer/data \
-v /opt/dbsyncer/logs:/app/dbsyncer/logs \
-v /opt/dbsyncer/plugins:/app/dbsyncer/plugins \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=7 \
scxhtb-registry.cn-hangzhou.cr.aliyuncs.com/xhtb/dbsyncer:latest
常用 Docker 命令:
# 查看本地日志
ls -la /opt/dbsyncer/logs
# 查看容器日志
docker logs --tail 20 dbsyncer
# 实时日志(Ctrl+C 退出)
docker logs -f dbsyncer
# 进入容器内部
docker exec -it dbsyncer /bin/bash
# 容器管理
docker stop dbsyncer # 停止
docker start dbsyncer # 启动
docker restart dbsyncer # 重启
docker rm dbsyncer # 删除(需先停止)
手动编译
确保环境已安装 JDK 和 Maven
$ git clone https://gitee.com/ghi/dbsyncer.git
$ cd dbsyncer
$ chmod u+x build.sh
$ ./build.sh
常见问题
| 问题 | 解决方案 |
|---|---|
| MySQL 无法连接 | 默认驱动版本为 8.0.21,MySQL 5.x 需手动替换为 mysql-connector-java-5.1.40.jar |
| SQL Server 无法连接 | 驱动程序 SSL 加密问题,需调整 TLS 协议版本配置 |
| 同步数据乱码 | MySQL8 表导入 SQL Server 2008 R2 后,检查 nvarchar 字段编码 |
| 远程 Debug | 参考 Wiki 文档开启远程调试模式 |
项目地址
🏠 Gitee: gitee.com/ghi/dbsync...
🐙 GitHub: github.com/ae86-dbsy...
贡献与支持
DBS 团队目标:坚持开源,让每一个用户都能轻松完成数据同步!
💬 QQ 群讨论: 875519623
📝 提交 Issue: 欢迎提需求和建议,详细描述原始需求,团队会提供方案支持
🤝 内推项目: 推荐到公司建立长期商业合作,提供专业技术服务
💻 参与开发: 项目成员涵盖不同专业方向,欢迎加入团队
许可证
Copyright © DBSyncer Team
作者:zws 创建时间:2026-05-05 15:50
最后编辑:zws 更新时间:2026-06-06 22:06
最后编辑:zws 更新时间:2026-06-06 22:06