MCPcopy Index your code
hub / github.com/86dbs/dbsyncer

github.com/86dbs/dbsyncer @v2.1.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.1.2 ↗ · + Follow
7,842 symbols 24,828 edges 832 files 1,592 documented · 20%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

介绍

logo

DBSyncer(英[dbsɪŋkɜː(r)],美[dbsɪŋkɜː(r) 简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。

特点 * 组合驱动,自定义库同步到库组合,关系型数据库与非关系型之间组合,任意搭配表同步映射关系 * 实时监控,驱动全量或增量实时同步运行状态、结果、同步日志和系统日志 * 开发插件,自定义转化同步逻辑

项目地址

star fork license

🌈应用场景

连接器 数据源 目标源 支持版本(包含以下)
MySQL 5.7.19以上
OceanBase 3.x以上
Oracle 10g-19c
SqlServer 2008以上
PostgreSQL 9.5.25以上
ClickHouse 22.x+
H2 2.2.x
Sqlite 2以上
Redis 作为源(增量CDC)5.x ~ 7.x;

作为目标 2.6+ | | ES | ✔ | ✔ | 6.0.0-8.15.3 | | Kafka | ✔ | ✔ | 2.10-0.9.0.0以上 | | File | ✔ | ✔ | .txt, .unl | | Http | ✔ | ✔ | | | SQL | ✔ | | 支持以上关系型数据库 | | 后期计划 | Doris,Kingbase | | |

✨预览

仪表盘

监控

📚使用手册 Wiki

📦安装配置

方式一 下载安装包

  1. 安装JDK 1.8(省略详细)
  2. 下载安装包dbsyncer-x.x.x.zip(也可手动编译)
  3. 解压安装包,Window执行bin/startup.bat,Linux执行bin/startup.sh
  4. 打开浏览器访问:http://127.0.0.1:18686
  5. 账号和密码:admin/admin

方式二 🐳 docker

  • 阿里云镜像
# 社区版
docker pull scxhtb-registry.cn-hangzhou.cr.aliyuncs.com/xhtb/dbsyncer:latest
docker pull scxhtb-registry.cn-hangzhou.cr.aliyuncs.com/xhtb/dbsyncer:2.1.0
# 专业版
docker pull scxhtb-registry.cn-hangzhou.cr.aliyuncs.com/xhtb/dbsyncer-enterprise:latest
docker pull scxhtb-registry.cn-hangzhou.cr.aliyuncs.com/xhtb/dbsyncer-enterprise:2.1.0
  • 运行命令
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

# 本地日志
ls -la /opt/dbsyncer/logs

# 容器日志
docker logs --tail 20 dbsyncer
# 容器实时日志(Ctrl+C退出)
docker logs -f dbsyncer
# 进入容器内部
docker exec -it dbsyncer /bin/bash
# 查看容器日志
ls -la /app/dbsyncer/logs

# 停止容器
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

🏆性能测试

全量同步

系统 机器配置 数据量 耗时
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/秒

专业版介绍

🐞常见问题

🤝贡献支持

  • DBS团队目标:坚持开源,让每一个用户都能轻松完成数据同步!
  • QQ群讨论: 875519623
  • 欢迎大家提需求和建议【新建issuses】!(详细描述你的原始需求,我们会帮你提供一些方案,节约大家的成本) 1) 内推项目 如您觉得项目不错,可推荐到公司,建立长期稳定的商业合作,提供更专业的技术服务。(入群联系群主) 2) 参与开发 项目成员有不同专业的大佬,相信一定能找到您比较感兴趣的方向,欢迎加入团队!(入群联系群主) 3) 开源不易,感谢粉丝朋友们的支持!【捐赠者名单】

Extension points exported contracts — how you extend this code

ServiceFactory (Interface)
SPI服务工厂,集中管理,提高加载效率 @Author 穿云 @Version 1.0.0 @Date 2025-08-09 00:48 [11 implementers]
dbsyncer-sdk/src/main/java/org/dbsyncer/sdk/spi/ServiceFactory.java
MappingConfigChecker (Interface)
@author AE86 @version 1.0.0 @date 2020/1/7 23:17 [16 implementers]
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/MappingConfigChecker.java
LogType (Interface)
日志类型枚举 @author AE86 @version 1.0.0 @date 2020/04/21 16:19 [8 implementers]
dbsyncer-parser/src/main/java/org/dbsyncer/parser/LogType.java
ScheduledTaskJob (Interface)
@version 1.0.0 @Author AE86 @Date 2020-05-24 22:18 [5 implementers]
dbsyncer-common/src/main/java/org/dbsyncer/common/scheduled/ScheduledTaskJob.java
CommitCallback (Interface)
(no doc) [18 implementers]
dbsyncer-connector/dbsyncer-connector-oracle/src/main/java/org/dbsyncer/connector/oracle/logminer/TransactionalBuffer.java
ResultSetMapper (Interface)
(no doc) [6 implementers]
dbsyncer-connector/dbsyncer-connector-sqlserver/src/test/java/ChangeDataCaptureTest.java
ResultSetMapper (Interface)
(no doc) [6 implementers]
dbsyncer-connector/dbsyncer-connector-postgresql/src/test/java/PGReplicationTest.java
Puller (Interface)
(no doc) [16 implementers]
dbsyncer-manager/src/main/java/org/dbsyncer/manager/Puller.java

Core symbols most depended-on inside this repo

add
called by 536
dbsyncer-sdk/src/main/java/org/dbsyncer/sdk/spi/TaskService.java
get
called by 488
dbsyncer-sdk/src/main/java/org/dbsyncer/sdk/spi/TaskService.java
put
called by 425
dbsyncer-parser/src/main/java/org/dbsyncer/parser/CacheService.java
getName
called by 319
dbsyncer-parser/src/main/java/org/dbsyncer/parser/LogType.java
isEmpty
called by 310
dbsyncer-common/src/main/java/org/dbsyncer/common/util/CollectionUtils.java
info
called by 299
dbsyncer-connector/dbsyncer-connector-elasticsearch/src/main/java/org/dbsyncer/connector/elasticsearch/api/RequestConverters.java
get
called by 278
dbsyncer-biz/src/main/java/org/dbsyncer/biz/ValidateSyncService.java
getMessage
called by 269
dbsyncer-parser/src/main/java/org/dbsyncer/parser/LogType.java

Shape

Method 6,004
Class 821
Function 773
Enum 142
Interface 102

Languages

Java82%
TypeScript18%

Modules by API surface

dbsyncer-web/src/main/resources/static/plugins/js/chartjs/chart.umd.min.js963 symbols
dbsyncer-connector/dbsyncer-connector-oracle/src/main/java/org/dbsyncer/connector/oracle/geometry/JGeometry.java124 symbols
dbsyncer-web/src/main/resources/static/js/database-sync/database-sync.js117 symbols
dbsyncer-connector/dbsyncer-connector-elasticsearch/src/main/java/org/dbsyncer/connector/elasticsearch/api/RequestConverters.java103 symbols
dbsyncer-sdk/src/main/java/org/dbsyncer/sdk/connector/database/DatabaseTemplate.java84 symbols
dbsyncer-web/src/main/resources/static/plugins/js/jquery/jquery-1.11.3.min.js75 symbols
dbsyncer-common/src/main/java/org/dbsyncer/common/binlog/proto/BinlogMessage.java66 symbols
dbsyncer-connector/dbsyncer-connector-mysql/src/main/java/org/dbsyncer/connector/mysql/binlog/BinaryLogRemoteClient.java65 symbols
dbsyncer-common/src/main/java/org/dbsyncer/common/binlog/proto/BinlogMap.java65 symbols
dbsyncer-connector/dbsyncer-connector-h2/src/main/java/org/dbsyncer/connector/h2/storage/H2StorageService.java55 symbols
dbsyncer-connector/dbsyncer-connector-mysql/src/main/java/org/dbsyncer/connector/mysql/storage/MySQLStorageService.java54 symbols
dbsyncer-sdk/src/main/java/org/dbsyncer/sdk/model/ValidateSyncTask.java47 symbols

Datastores touched

(mysql)Database · 1 repos
postgresDatabase · 1 repos
dbsyncerDatabase · 1 repos

For agents

$ claude mcp add dbsyncer \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page