您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

赞助


  • 鼎*科技 se***@dt.tech
  • 川*科技 se***@c*b.com
  • 丰*科技 se***@fe*gz.com
  • 板*科技 322***@qq.com
  • 志伟 430***@qq.com

打赏


您的鼓励是对我最大的肯定

DM+简介

DM+是主要为SQLSERVER数据库做数据同步的一套工具!在devops的时候,我们经常会需要从A服务器同步到B服务器, 甚至C服务器,但是发布订阅和快照等形式的配置就比较复杂 ,且快照不能从实时读!所以在实际开发中,自主研发了一套可以用关注发布订阅和快照那套复杂的配置即可实现多同步的系统

演示

如图的执行结果可以看出:同步130w耗时2分钟 ,其主要耗时在读数据上耗时较久,同步还是达到秒级,如果服务器的配置:cpu,内存够大甚至会更快

原理

数据同步方式

1.全量同步:就是每天定时(避开业务高峰期)或者周期性全部把数据从一个地方拷贝到另一地方。(全部的数据)

2.增量同步:只需要去同步那些改动过,需要跟新的数据。增量的基础是全量,首先需要将全量数据拷贝过来,然后再采用增量方式同步更新。增量会抓取某个时刻(更新时间)或者检查点(checkpoint)以后的数据来同步。这里有个关键性的前提:副本一端要记录或知道(通过查询更新日志或者订阅更新)哪些数据更新了

各自的优缺点

增量:生成和接受方生成和处理数据逻辑复杂,时间一长容易造成数据不一致问题

1⃣️数据提供方,制作增量包很麻烦,所有的改动都要记录,稍微记错就全部完了

2⃣️数据接收方,更加增量包来实施更新的逻辑比较麻烦

3⃣️中间过程出现问题是很难定位的

全量:

1⃣️数据量太大,没有改动的数据也要同步

2⃣️生成方和消费方的逻辑比较简单,固定某一时刻导出重新生成所有的数据。于是对于全面性和准确方面需要很高的要求。

之前在网上找了一个叫SyncNavigator的软件,联系了客服,问客服每秒能同步多少条数据,客服说:200-300之间!这个同步级针对数据量比较大,如每小时产生10w级以上的数据的时候,没法做到每小时增量同步!

配置

  • 1.配置数据库连接

     2配置好链接后,打开sqlserver手动同步,选择要同步的源库和目标库,如下图。

    主要功能有:

    a.清除数据日志

    b.全量同步:可调整每次同步的数量,集群,和表结构同步

    c.增量同步:可以指定几天前的数据进行增量同步

    d.多链接同步:允许将源库的数据同步至好几个目标库

    c.可加入定时任务同步:有每N分钟同步,每周同步,每天指定时间同步

    e.增加集群式同步:配置集群3-1,3-2,3-3 表示开启3个集群同步

     如图的执行结果可以看出:同步130w耗时2分钟  ,其主要耗时在读数据上耗时较久,同步还是达到秒级,如果服务器的配置:cpu,内存够大甚至会更快


    3.定时同步配置

常见问题

问:执行超时已过期。完成操作之前已超时或服务器未响应?

答:执行超时已过期。完成操作之前已超时或服务器未响应

问:给定的 ColumnMapping 与源或目标中的任意列均不匹配?

答:出现此问题,表明源库的表结构已经变动,此时只要执行表结构同步就好了

问:增量同步的时候,未同步到最新数据,但源库的数据已经做过更新?

答:检查下源库的表的UpdateTime字段的时间值有木有更新

更新日志

  • 2022-01-05 v.1.0.3

    新增分库分表功能

  • 2022-01-05 v.1.0.2

    新增一主多同步功能

  • 2021-12-15 v.1.0.1

    实现集群配置方案

  • 2021-12-10 v.1.0.0

    实现定时任务同步

联系方式

如对该系统感兴趣请联系我,开源不易

联系我: 602392714@qq.com


联系我
置顶