简介
    DBSyncer(简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SQL Server、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。
特点
- 组合驱动,自定义库同步到库组合,关系型数据库与非关系型之间组合,任意搭配表同步映射关系
- 实时监控,驱动全量或增量实时同步运行状态、结果、同步日志和系统日志
从开源项目中下载zip包,解压安装包,Window执行bin/startup.bat,Linux执行bin/startup.shStart successfully!代表启动成功,注意如果是高版本的jdk可能会报错,切换为jdk8来启动!访问:http://localhost:18686/ 
数据同步
这里以mysql > elasticsearch为例也是最常见的场景
mysql配置
注意:mysql的binlog配置一定要设置为Row,在mysql的配置文件中
binlog_format=ROW
1.创建一个mysql的表这里以一个t_user表为例CREATE TABLE `t_user` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键自增',  `name` varchar(50) NOT NULL COMMENT '用户姓名',  `height` int(11) DEFAULT NULL COMMENT '用户身高(单位:厘米)',  `age` tinyint(3) unsigned DEFAULT NULL COMMENT '用户年龄',  `email` varchar(100) DEFAULT NULL COMMENT '用户邮箱',  `address` varchar(255) DEFAULT NULL COMMENT '用户详细地址',  `phone` varchar(20) DEFAULT NULL COMMENT '用户手机号码',  `hobby` varchar(255) DEFAULT NULL COMMENT '用户兴趣爱好',  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录更新时间',  PRIMARY KEY (`id`),  UNIQUE KEY `idx_email` (`email`),  KEY `idx_phone` (`phone`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';
INSERT INTO `t_user` (`id`, `name`, `height`, `age`, `email`, `address`, `phone`, `hobby`, `create_time`, `update_time`) VALUES (1, '全量同步-1', 1, 1, 'dbs@qq.com', '北京市', '13333333333', '没有爱好', '2025-06-30 15:14:50', '2025-06-30 15:14:50');
2.创建一个ES中创建一个user_index的索引
PUT /user_index{  "mappings": {    "properties": {      "id": {"type": "integer", "index": false},      "name": {        "type": "text",        "fields": {"keyword": {"type": "keyword"}}      },      "height": {"type": "float"},      "age": {"type": "short"},      "email": {"type": "keyword"},      "address": {"type": "text"},      "phone": {"type": "keyword"},      "hobby": {        "type": "text",        "fields": {"keyword": {"type": "keyword"}}      },      "create_time": {"type": "long"},      "update_time": {"type": "long"}    }  },  "settings": {    "number_of_shards": 1,    "number_of_replicas": 0  }}
配置DBSyncer同步任务
映射 关系注意主键id 也可以通过条件同步指定条件数据因为选择的是全量同步,所以说启动以后,同步完成任务就停止了,停止以后,我们把任务修改为增量同步,来同步增量的任务即可设置为增量以后 启动任务,后续的数据就会自动同步了
性能测试
阅读原文:原文链接
该文章在 2025/7/3 14:27:56 编辑过