当前位置: 首页 > article >正文

DBSyncer开源数据同步中间件

一、简介

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

二、安装

临时启动

docker run -d --name dbsyncer -p 18686:18686 crazylife/dbsyncer-web:latest

拷贝数据

mkdir -p /data/dbsyncer

docker cp dbsyncer:/app /data/dbsyncer/

设置文件权限

chmod 777 -R /data/dbsyncer

正式启动

docker run -d \
--name dbsyncer \
-p 18686:18686 \
-e TZ=Asia/Shanghai \
-v /data/dbsyncer/app:/app \
crazylife/dbsyncer-web:latest

三、配置mysql表实时同步

访问web页面

http://192.168.10.13:18686

默认用户名密码,都是admin

登录之后,效果如下:

接下来,要实现,将mid_test库下的表players,同步到dms_test库下的表players2

点击添加链接

选择类型为:MySQL

名称:dev-dms-mid_test

账号:root

密码:***

URL:这里要注意修改为mysql地址,以及数据库名

最后点击保存

 然后再添加驱动dev-dms-dms_test

点击添加驱动

数据源,选择:dev-dms-mid_test

目标源,选择:dev-dms-dms_test

名称:test1

点击上面的保存

 

点击增量同步,注意:全量同步,是一次性任务,因此后续的表修改不会同步,所以这里必须选增量同步。

数据源表,选择players

目标源表,选择players2

点击添加

 

高级设置,保持默认即可,点击保存按钮

点击齿轮图标

点击运行

这里会出现运行中,总数会显示,这个数字会动态显示,挺不错的。

四、测试数据写入

使用python脚本,直接写入1万条数据

import pymysql
 
# 替换为您的数据库信息
connection = pymysql.connect(host='mysql-xxx.mysql.database.aliyun.com',
                             port=3306,
                             user='root',
                             password='***',
                             database='mid_test',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)
 
try:
    with connection.cursor() as cursor:
        for i in range(0,10000):
            # SQL 插入语句
            sql = """insert into players (player_id,team_id,player_name,height) values (200%s,200%s,'韦德%s','1%s');"""%(i,i,i,i)
            print(sql)
            cursor.execute(sql)
            # 提交事务
            connection.commit()
            # print(connection.__dict__)
except pymysql.MySQLError as e:
    print(e)
finally:
    connection.close()

执行脚本,效果如下:

上面的也会动态显示数字,同步1万条

注意:增量同步,支持表数据的增删改查,但是不支持DDL语句,比如:修改表结构,添加索引,截断表等操作。


http://www.kler.cn/a/516053.html

相关文章:

  • 【深度学习】1.深度学习解决问题与应用领域
  • 2025年最新深度学习环境搭建:Win11+ cuDNN + CUDA + Pytorch +深度学习环境配置保姆级教程
  • MyBatis 注解开发详解
  • 免费下载 | 2024中国智算中心产业发展白皮书
  • DRG_DIP 2.0时代医院程序结构转型与数据结构优化研究
  • python学opencv|读取图像(四十)掩模:三通道图像的局部覆盖
  • kong 网关和spring cloud gateway网关性能测试对比
  • Spring 是如何解决循环依赖问题
  • 关于 SR-IOV 架构论文的总结文章
  • 使用 .Net Core 6.0 NPOI 读取excel xlsx 单元格内的图片
  • Versal - ChipScoPy + XSDB + Python CLI
  • 栈和队列(C语言)
  • HarmonyOS相对布局
  • qml menuBar详解
  • 力扣动态规划-8【算法学习day.102】
  • leetcode 面试经典 150 题:有效的括号
  • Ollama 使用笔记
  • Linux C\C++编程-建立文件和内存映射
  • 【韩顺平Java笔记】第8章:面向对象编程(中级部分)【343-353】
  • salesforce apex测试类如果有多个httpmock,则只会返回一个,导致可能不符合预期
  • `std::make_shared` 无法直接用于单例模式,因为它需要访问构造函数,而构造函数通常是私有的
  • Linux - 五种常见I/O模型
  • Spring MVC:综合练习 - 深刻理解前后端交互过程
  • PaSa - 大型语言模型提供支持的高级论文搜索代理
  • 使用KNN实现对鸢尾花数据集或者自定义数据集的的预测
  • 基于JAVA的微信点餐小程序设计与实现(LW+源码+讲解)