还在为数据同步烦恼?这款3.1k星的开源神器DBSyncer让你效率翻倍
作者:佚名 时间:2025-11-17 14:23
在开发项目的时候,我们经常会遇到数据同步的场景。例如将开发环境的数据库表同步到测试环境,将MySQL中的数据同步到ES中。今天给大家分享一款好用的数据同步工具DBSyncer,自带可视化界面,希望对你有所帮助!
简介
DBSyncer是一款开源的数据同步工具,支持MySQL、Oracle、PostgreSQL、Elasticsearch(ES)、Kafka、File等同步场景,目前在Gitee上已有3.1k+Star。
DBSyncer具有如下特性:
下面是DBSyncer使用过程中的效果图,功能还是挺实用的!

安装
使用Docker来安装DBSyncer是非常方便的,我们将采用此种方式。
docker pull registry.cn-hangzhou.aliyuncs.com/xhtb/dbsyncer:latest
docker run -p 18686:18686 --name=db-syncer \
-e TZ="Asia/Shanghai" \
-v /mydata/db-syncer/data:/app/dbsyncer/data \
-v /mydata/db-syncer/plugins:/app/dbsyncer/plugins \
-d registry.cn-hangzhou.aliyuncs.com/xhtb/dbsyncer:latest

使用
这里将以电商系统中商品表的数据同步为例,来介绍下DBSyncer的使用。mall项目是一套基于
SpringBoot3+ Vue 的电商系统(Github标星60K),后端支持多模块和最新微服务架构,采用Docker和K8S部署。包括前台商城项目和后台管理系统,能支持完整的订单流程!涵盖商品、订单、购物车、权限、优惠券、会员、支付等功能!项目演示:
MySQL数据同步
CREATE TABLE `product` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`sub_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`price` decimal(10, 2) NULL DEFAULT NULL,
`pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;





MySQL同步到ES
PUT /product_index
{
"mappings": {
"properties": {
"id": {
"type": "long"
},
"title": {
"type": "text"
},
"sub_title": {
"type": "text"
},
"pic": {
"type": "text"
},
"price": {
"type": "double"
}
}
}
}






总结
今天给大家分享了DBSyncer这款可视化数据同步工具的使用,主要是实现了MySQL和ES之间的全量同步,当然DBSyncer还能支持增量同步,以及通过插件自定义同步逻辑,感兴趣的小伙伴可以研究下!





