mysql sqlserver 双向同步

在使用sqlserver连接服务器时遇到坑(不细说),所以使用一下的替代方案。


参考:
mysql实时同步到mssql的解决方案
https://×××w.cnblogs.com/liweis/p/4749961.html

DataX 阿里巴巴集团的离线数据同步工具/平台(各种异构数据源之间高效的数据同步)。
主页 https://github.com/alibaba/DataX
介绍 https://github.com/alibaba/DataX/blob/master/introduction.md
Support Data Channels(点读或写会有具体说明) https://github.com/alibaba/DataX
Quick Start https://github.com/alibaba/DataX/blob/master/userGuid.md


在2边的数据库中都做一下配置:

  1. 新建一张与同步表结构一样的表,在表内增加一列OpType、一列CTime(默认值为当前时间)、一列操作状态status(0未操作,1已经操作)
  2. 使用不同的触发器对OpType列写入相应的值(I表示插入记录,U表示修改记录,D表示删除记录)
    PS:DataX不能执行物理删除所有把逻辑放在存储过程里

使用DataX同步,在where里使用CTime来区分需要同步的内容,然后在存储过程里可以完成逻辑


DataX使用笔记
如果表上有触发器会随着写入一起执行,这里的执行意思是如果有错误也可能是触发器里的,但是错误信息不会提示错误发生在那个步骤。
经过一段时间的开发,发现还是需要自己写很多代码而且不能物理删除,所以选择不再继续下去了,找了一个开源软件挺不错的叫SymmetricDS,目前正在开发中等好了上新笔记