我的情景:
我有两个申请。第一个是连接到MySQL数据库的网站,第二个是连接到SQL Server2008 R2数据库的桌面应用程序。 桌面应用程序在本地更新记录,MySQL数据库通过网站在线更新。
问题:
两个不同的数据库,当在MySQL或SQL数据库中进行更改时,我们如何在现场更新?
我想要的:
数据库应该彼此同步(例如,如果在MySQL中进行更改,则应更新SQL Server数据库,或者如果在SQL数据库中进行更改,则应更新MySQL数据库)
有人可以建议一些代码,任何想法或解决此问题的任何解决方案吗?
答案 0 :(得分:1)
利用Restful API更新从MS SQL服务器到MYSQL服务器的信息。
答案 1 :(得分:0)
我要指出的第一件事是完全和完美的同步是不可能的。不幸的是,SQL Server中存在的数据类型在MySQL中不存在,反之亦然。
但是假设数据类型非常简单并且模式类似,这里有一些选项:
使用服务总线。您可以编写一个监视两个数据库系统的应用程序,当它看到更改时,它会将一个对象推送到服务总线上。服务总线的监听器将看到对象并将它们写入适当的目的地。
使用像Alex建议的触发器。 SQL Server可以在触发器上执行CLR代码。 CLR代码可能是一些直接写入MySQL的C#。采取一些设置,但它是可能的。我已经研究过从MySQL中的触发器运行一个进程,所有选项都很难看。这是可能的,但安全性是一个主要问题。我们的想法是更改记录,触发触发器并运行外部进程。
编写一个不断在表中查找“差异”并来回移动数据的应用程序。您需要修改所有表格以确保每条记录都支持日期/时间戳记,以便您可以跟踪记录何时“已更改”。