欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > dbsyncer同步mysql数据

dbsyncer同步mysql数据

2025/4/20 16:50:39 来源:https://blog.csdn.net/nangonghen/article/details/141537662  浏览:    关键词:dbsyncer同步mysql数据

1 概述

DBSyncer(代码地址:https://github.com/86dbs/dbsyncer)是一款开源的数据同步中间件,提供MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。


2 部署

2.1 环境

版本信息如下:
a、操作系统:centos 7.6
b、主机IP:192.168.243.128
c、docker版本:20.10.5-3

2.2 安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2
yum install yum-utils -y
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates
yum install docker-ce-cli-20.10.5-3.el7 docker-ce-20.10.5-3.el7 -ymkdir -p /etc/docker
cat > /etc/docker/daemon.json << EOF
{"registry-mirrors": ["https://bxsfpjcb.mirror.aliyuncs.com", "https://registry.docker-cn.com"],"max-concurrent-downloads": 10,"log-driver": "json-file","log-level": "warn","log-opts": {"max-size": "100m","max-file": "3"},"live-restore": true,"exec-opts": ["native.cgroupdriver=systemd"]
}
EOFsystemctl daemon-reload
systemctl enable docker.service
systemctl restart docker

2.3 部署dbsyncer

使用docker部署dbsyncer,便于测试。

docker run -it --entrypoint=bash --name=dbsyncer --net=host \
registry.cn-hangzhou.aliyuncs.com/xhtb/dbsyncer:latest# 此时已进入容器环境,执行以下脚本启动dbsyncer程序
cd /app/cd dbsyncer-2.0.3
./bin/startup.sh

浏览器访问18686端口,在我的机器IP是192.168.243.128,因此在浏览器访问http://192.168.243.128:18686,输入账号密码即可(admin/admin)。
在这里插入图片描述

2.4 部署mysql

2.4.1 运行mysql 8.0实例

部署两个mysql实例,demo2实例是源数据库(192.168.243.128:3307),demo3实例是目标数据库(192.168.243.128:3308)。

docker run -p 3307:3306 --name mysql-demo2 -e MYSQL_ROOT_PASSWORD=password -d mysql:8.0
docker run -p 3308:3306 --name mysql-demo3 -e MYSQL_ROOT_PASSWORD=password -d mysql:8.0

在这里插入图片描述

2.4.2 准备mysql测试数据

在demo2实例中准备以下数据:


CREATE DATABASE demo;CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(255) NOT NULL,email VARCHAR(255) NOT NULL
);INSERT INTO users (username, email) VALUES ('user1', 'user1@example.com');
INSERT INTO users (username, email) VALUES ('user2', 'user2@example.com');
INSERT INTO users (username, email) VALUES ('user3', 'user3@example.com');

在demo3实例中准备以下数据:


CREATE DATABASE demo;CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(255) NOT NULL,email VARCHAR(255) NOT NULL
);

2.5 dbsyncer配置mysql数据库源

配置源端数据源,如下图:
在这里插入图片描述

配置目标数据源,如下图:
在这里插入图片描述

配置完成后,界面如图所示

在这里插入图片描述


2.6 dbsyncer配置驱动

所谓驱动就是任务。任务可以分为全量同步任务和增量同步任务。填写表单时,不仅需要选择是全量同步还是增量同步,还需要设置源端的表和目标端的表之间的映射关系。

2.6.1 配置全量同步

在这里插入图片描述

在这里插入图片描述
点击运行后,了三条数据,如下图所示:
在这里插入图片描述


2.6.2 配置增量同步

在这里插入图片描述
在这里插入图片描述


开启任务,在源端数据库新插入一条数据后,该新增记录同步到目标数据库。
在这里插入图片描述


3 小结

本文通过dbsyncer同步两个mysql实例的数据来介绍dbsyncer这个工具。dbsyncer的数据源,是一个JDBC URL(例如:jdbc:mysql://192.168.243.128:3308/demo?),所谓驱动就是数据同步的任务。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词