#10886dbs/dbsyncer: 一款开源的数据同步中间件,提供 MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch (ES)、Kafka、File、SQL 等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。
介绍
DBSyncer(英[dbsɪŋkɜː(r)],美[dbsɪŋkɜː(r) 简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。
特点
- 组合驱动,自定义库同步到库组合,关系型数据库与非关系型之间组合,任意搭配表同步映射关系
- 实时监控,驱动全量或增量实时同步运行状态、结果、同步日志和系统日志
- 开发插件,自定义转化同步逻辑
项目地址
🌈应用场景
| 连接器 | 数据源 | 目标源 | 支持版本(包含以下) |
|---|---|---|---|
| MySQL | ✔ | ✔ | 5.7.19以上 |
| Oracle | ✔ | ✔ | 10g-19c |
| SqlServer | ✔ | ✔ | 2008以上 |
| PostgreSQL | ✔ | ✔ | 9.5.25以上 |
| ES | ✔ | ✔ | 6.0.0-8.15.3 |
| Kafka | 开发中 | ✔ | 2.10-0.9.0.0以上 |
| File | ✔ | ✔ | *.txt, *.unl |
| SQL | ✔ | 支持以上关系型数据库 | |
| Sqlite | ✔ | ||
| 后期计划 | Redis |
✨预览
📚使用手册 Wiki
📦安装配置
方式一 下载安装包
- 安装JDK 1.8(省略详细)
- 下载安装包dbsyncer-x.x.x.zip(也可手动编译)
- 解压安装包,Window执行bin/startup.bat,Linux执行bin/startup.sh
- 打开浏览器访问:http://127.0.0.1:18686
- 账号和密码:admin/admin
方式二 🐳 docker
- 阿里云镜像(推荐)
docker pull registry.cn-hangzhou.aliyuncs.com/xhtb/dbsyncer:latest
docker pull registry.cn-hangzhou.aliyuncs.com/xhtb/dbsyncer-enterprise:latest
docker pull registry.cn-hangzhou.aliyuncs.com/lifewang/dbsyncer:latest- docker镜像
docker pull crazylife/dbsyncer-web:latest⚙️手动编译
先确保环境已安装JDK和Maven
$ git clone https://gitee.com/ghi/dbsyncer.git
$ cd dbsyncer
$ chmod u+x build.sh
$ ./build.sh🏆性能测试
全量同步
| 系统 | 机器配置 | 数据量 | 耗时 |
|---|---|---|---|
| Mac | Apple M3 Pro 12核心 内存18GB | 1亿条 | 31分50秒 |
| Linux | Intel(R) Xeon(R) CPU 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 | 8112/秒 | 11000/秒 |
| Linux | Intel(R) Xeon(R) CPU E5-2696 v3B 8核心 内存48GB | 4GB | 8000/秒 | 10000/秒 |
| Windows | AMD Ryzen 7 5800x 8核心 12GB | 4GB | 7553/秒 | 9000/秒 |
🐞常见问题
- MySQL无法连接。默认使用的驱动版本为8.0.21,如果为mysql5.x需要手动替换驱动 mysql-connector-java-5.1.40.jar
- SQLServer无法连接。案例:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS12]”
- 同步数据乱码。案例:mysql8表导入sqlserver2008R2后,sqlserver表nvarchar字段内容为乱码
- 如何开启远程debug模式?
🤝贡献支持
- DBS团队目标:坚持开源,让每一个用户都能轻松完成数据同步!
- QQ群讨论: 875519623
- 欢迎大家提需求和建议【新建issuses】!(详细描述你的原始需求,我们会帮你提供一些方案,节约大家的成本)
data-observe/datav: 一个现代化的数据可视化平台,构建于 2023 年,可以对 Metrics, Traces 和 Logs 数据进行深度可视化和交互操作jeessy2/ddns-go: 自动获得你的公网IP地址,并解析到对应的域名服务,支持阿里云, 腾讯云, DNSpod, Cloudflare, 华为云, Callback, 百度云, Porkbun, GoDaddy, Google, Domain, Namecheap, NameSilo










