首页 > 数据库 >数据同步工具: mysql表级全量同步 / mongodb全量+增量同步 / redis全量+增量同步

数据同步工具: mysql表级全量同步 / mongodb全量+增量同步 / redis全量+增量同步

时间:2024-12-25 15:12:03浏览次数:3  
标签:同步 jobs mongodb 增量 sync 全量 mysql

目录

数据同步工具

mysql表级全量同步 / mongodb全量+增量同步 / redis全量+增量同步

源码地址: https://github.com/jiashuaizhang/sync-jobs

方案说明

MySql同步

方案概述

基于addax,并使用python程序调度。当前仅支持表级全量同步。

配置说明

编辑配置文件sync-jobs\config\application.properties,修改以下配置项:

# 同步周期,单位: 分钟
sync.interval=10

# 源数据库地址,jdbc格式
mysql.0.url=jdbc:mysql://127.0.0.1:2206/perceive?useUnicode=true&characterEncoding=UTF-8
# 源数据库用户名
mysql.0.username=root
# 源数据库密码
mysql.0.password=xxxxx

# 目的数据库地址,jdbc格式
mysql.1.url=jdbc:mysql://127.0.0.1:5506/perceive?useUnicode=true&characterEncoding=UTF-8
# 目的数据库用户名
mysql.1.username=root
# 目的数据库密码
mysql.1.password=xxxxx

# 需要同步的表,','分隔
mysql.sync.tables=iot_target,iot_alarm_fence,iot_alarm_model

项目中addax的job配置文件模板地址sync-jobs\config\mysql\mysql2mysql.json,其他配置参考:

mysql reader

mysql writer

MongoDB同步

方案概述

基于mongo-shake,支持数据库实例级全量+增量同步。

配置说明

编辑配置文件sync-jobs\docker\mongo-shake.conf,修改以下配置项:

# 源数据库地址,与mongo shell格式相同
# 单节点:mongodb://username1:password1@host
# 副本集:mongodb://username1:password1@primaryA,secondaryB,secondaryC
# 分片集:mongodb://username1:password1@primaryA,secondaryB,secondaryC;mongodb://username2:password2@primaryX,secondaryY,secondaryZ
mongo_urls = mongodb://admin:xxxxxxxxxx@127.0.0.1:27018,127.0.0.1:27019

# 目的数据库地址,格式与mongo_urls对齐。
tunnel.address = mongodb://root:xxxxxx@127.0.0.1:27019

# 同步模式,all表示全量+增量同步,full表示全量同步,incr表示增量同步。
sync_mode = all

完整配置参考: mongo-shake wiki

Redis同步

方案概述

基于redis-shake,支持数据库实例级全量+增量同步。

配置说明

编辑配置文件sync-jobs\docker\redis-shake.toml,修改以下配置项:

# 源地址
[sync_reader]
cluster = true # 是否为集群模式
address = "127.0.0.1:8001" # 如果是集群,填写其中任意一个节点地址
password = "XXXX" # 访问密码

# 目的
[redis_writer]
cluster = false            # 是否为集群模式
sentinel = false           # 是否为哨兵
master = ""                # 如果是哨兵,填写哨兵监听的master名称
address = "127.0.0.1:8639" # 如果是集群,填写其中任意一个节点地址
password = "XXXX" # 访问密码

完整配置参考: redis-shake config

启动同步服务

文件准备

  1. 将docker目录中的docker-compose.ymlmongo-shake.confredis-shake.toml上传到服务器同一目录;

  2. 执行以下命令,映射容器内配置文件到宿主机(注意容器tag是否最新):

    docker run --rm -v `pwd`/sync-jobs:/opt/sync-jobs -e SYNC=0 harbor.cuscri.com/tools/sync-jobs:1.0.1
    

    执行成功后在当前目录会生成sync-jobs目录,其中包含python脚本和配置文件;

  3. 按照配置说明修改必要配置信息。

启动服务

使用docker-compose up -d启动服务,查看容器日志和目的端数据同步情况。

标签:同步,jobs,mongodb,增量,sync,全量,mysql
From: https://www.cnblogs.com/cheap-cabbage/p/18630420

相关文章

  • Linux上安装和配置Syncthing,实现文件同步
    1、下载最新部署包curl-shttps://api.github.com/repos/syncthing/syncthing/releases/latest|grepbrowser_download_url|greplinux-amd64|cut-d'"'-f4|wget-qi-2、解压并安装tar-xvfsyncthing-linux-amd64-v1.28.1.tar.gzmvsyncthing-linux-amd64-v1.2......
  • 网页直播/点播播放器EasyPlayer.js如何实现安卓流媒体播放器播放同步录像?
    随着流媒体技术的迅速发展,H5流媒体播放器已成为现代网络视频播放的重要工具。其中,EasyPlayer.js视频流媒体播放器作为一款功能强大的H5播放器,凭借其全面的协议支持、多种解码方式以及跨平台兼容性,赢得了广泛的关注和应用。音视频码流的metadata,即MediaFormat,是从MediaCodec取出来......
  • Colyseus 的高效状态同步与增量更新
    在多人在线游戏和实时应用中,状态同步是一个核心挑战。Colyseus通过独特的增量更新机制,显著提高了状态同步的效率。以下是详细的讲解:1.什么是增量更新?完整状态同步:传统方式是每次状态改变后,服务器将完整的状态数据发送给所有客户端。这种方法简单但低效,尤其在状态数据庞大......
  • 微信公众号推文与个人网站文章同步(续)
    上篇文章讲述了我所搜集到的三种方法,第一种方法调用微信公众号的接口开发并没有尝试(下文会给出大致思路),因为如果进行调用的话,网站后台需要构建跟微信公众号推文编写一样的界面,而且需要进行素材库的一个存储,如果是已经经营过长时间的公众号,素材库里面有很多内容,将他们重新存储到......
  • 电商项目-数据同步解决方案(一)
    一、canal简介canal是阿里旗下的开源项目,其内部是基于java开发。主要作用是用于监控数据库内部数据的改变。从而获得新增数据,或者修改的数据。canal主要支持mysql数据库。canal是应对阿里巴巴存在杭州和美国的双机房部署,存在跨机房同步的业务需求......
  • 医院管理系统(HIS系统)如何建立数据同步与一致性机制?
    在HIS系统中建立数据同步和一致性机制对于确保系统数据的准确性、完整性和及时更新至关重要。以下是建立数据同步和一致性机制的一些建议:1、明确数据同步和一致性的目标首先,有必要明确数据同步和一致性的目标,包括确定哪些数据需要同步、同步频率和数据一致性标准。这有助于......
  • 永磁同步电机无速度算法--全阶滑模观测器
    一、原理介绍在采用传统滑模观测器求取电机角度时通常存在系统抖振、低通滤波器导致角度相位滞后、角度的求取等问题。针对上述问题,本文采用全阶滑模观测器,该全阶滑模观测器具有二阶低通滤波器的特性,能有效滤除反电动势中的高频噪声,无需使用低通滤波器;在计算估计的电流时传统......
  • 时间重分配多同步挤压变换在旋转机械轴承故障诊断中的应用(Matlab代码实现)
    ......
  • 同步mysql数据到ElasticSearch
    同步mysql数据到ElasticSearch|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-------------|----------......
  • 同步mysql数据到ElasticSearch的最佳实践
    同步mysql数据到ElasticSearch的最佳实践|Id|Title|DateAdded|SourceUrl|PostType|Body|BlogId|Description|DateUpdated|IsMarkdown|EntryName|CreatedTime|IsActive|AutoDesc|AccessPermission||-------------|-------------|-------------|......