数据库同步大数据量表之增量同步实现方案-syncnavigator数据库同步syncnavigator 授权码

Posted by

购买事宜请联系QQ:1793040遇到的需求:两个服务器上的两个不同类型的数据库,分别是源pg库目标库的MySQL。

数据量:4亿条数据。

同步方案:同步每日新增和修改,删除的数据条。

由于之前同步是全量同步,每天都需要定时全量同步,不仅时间消耗长,也影响下游业务(查询慢,有时还会锁表)。

全量同步使用的java的定时任务,多线程的方式进行同步,发现某一天同步任务执行不完的情况,修改为增量同步方案。

增量同步要求:

有一个每天同步的执行时间点截取点(每天都是从这个最新截取点开始同步)我取的是非空字段(更新时间UPDATE_DATE),因为新增和修改都会自动更新这个时间点,可以确保大于上一个截取点的数据是没有同步的(包含新增和修改数据)。

删除的数据(分为两种):逻辑删除和物理删除其中逻辑删除可以使用最新截取点开始查询出标志出删除行的唯一ID;物理删除需要在源库上做一个触发器,删除的数据存到另个表中,在同步这个表即可。

这种增量设计涉及到的表结构:

pg库

test-要同步的业务表

test_del物理删除记录表

min_updatedate同步结束的最大时间

max_updatedate同步的最大时间(取得是任务开始时的时间,后期排查问题使用,此表可用可不用,)

mysql

test

test_del