我在MySQL上有一个表A,在SQL Server上有一个表B.
现在,我需要保持B与A(单向)同步,但B应该"始终"仍然可以查询(现在,一秒的停机时间赢了,不会伤害任何人......)。同步应该每小时进行一次。
有些情景会浮现在脑海中:
怎么办?
供参考:我尝试过的第一个解决方案是使用OPENQUERY来显示A的数据,但是性能并不高。
可能有一些商业产品可以做到这一点,但我只想在SQL Server工作中这样做。
答案 0 :(得分:1)
不是在同步时检查A的更改,而是在A上创建一个触发器,用另一个表A1填充只有更改。然后,您的同步作业仅从A1读取更改,并且只需使用这些更改来更新B.当您的同步作业从A1读取一行时,它会删除该行。
因此,A1是从A到B的挂起更改的队列,如果您决定需要以超过每小时一次的速度同步,则应该(希望)正常扩展。