一、需求说明
我公司是生产感应灯和摄像头的,每天用到很多的MAC址址和UUID, 主公司在东莞,分公司在越南,两边同时生产,两边都有本地系统与SQL Server数据库,每天需要相互同步一次,让两边的数据保持一致。
二、方案选择
从2025-4月开始,在网上找方案并试验,也问了很多同行业的大佬,前后历时4个多月,走过很多弯路,这里记录一下,供大家参考,主要有:
方案1:我们搭建了VPN通道,两个数据库可以注册,但不能跨国UPDATE。
方案2:网上找了一些软件,但没有合适的,比如:navicat太贵了5999元,而且面太广了,不实用;FineDataLink基础模块太大,不实用,价格4万多,太贵了,无法接受; DBExport 数据库与文件同步工具,可以用而且还免费,但用起来不便,不顺手;阿里的DataX要安装一堆东西,太复杂了,没搞通……等等。
方案3:后来找到dbsync,简单实用,虽然速度只能秒级,但我们只需每天同步一次,够用了,另外价格适中,所以最终采用。
三、实施步骤
根据入选方案,同步的实现步骤大致如下:
1、连接数据库
DBSync支持各种数据库,且可异地同步,这点符合我们。第一步选择数据库类型,再填写连接字符串,就能连接上,如下图所示:
2、选择需要同步的表
连接上后,DBSync会列出数据库的表,第二步选择源数据表、目标数据表即可,如下图所示:
3、设置字段对应关系
选择表后,会列出表的字段,第三步指定字段对应关系即可,如下图所示:
4、选择同步方式、执行频度等
DBSync支持增量同步,由于我们需要同步新增、修改,不需要同步删除,因此,第四步勾选增量中的新增、修改,不勾选删除,如下图所示:
5、同步任务列表
经过以上4步,同步任务就设置好了,点击同步按钮就可以同步了。一个任务负责一对数据表之间的同步,由于我们有7对表需要同步,因此设置了7个任务,如下图所示: