介绍
DBSyncer(英[dbsɪŋkɜː®],美[dbsɪŋkɜː® 简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。
特点
- 组合驱动,自定义库同步到库组合,关系型数据库与非关系型之间组合,任意搭配表同步映射关系
- 实时监控,驱动全量或增量实时同步运行状态、结果、同步日志和系统日志
- 开发插件,自定义转化同步逻辑
项目地址
🌈应用场景
连接器 | 数据源 | 目标源 | 支持版本(包含以下) |
MySQL | ✔ | ✔ | 5.7.19以上 |
Oracle | ✔ | ✔ | 11g-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
✨预览
📦安装配置
版本介绍
- dbsyncer-x.x.x.zip(开源版)
- dbsyncer-enterprise-x.x.x.zip(专业版)
方式一 下载安装包
- 安装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® Xeon® 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® Xeon® 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模式?