如何同步SQLServer数据库和MySQL数据库

时间:2013-07-03 12:37:07

标签: c# mysql sql-server database synchronization

我的情景:

我有两个申请。第一个是连接到MySQL数据库的网站,第二个是连接到SQL Server2008 R2数据库的桌面应用程序。 桌面应用程序在本地更新记录,MySQL数据库通过网站在线更新。

问题:

两个不同的数据库,当在MySQL或SQL数据库中进行更改时,我们如何在现场更新?

我想要的:

数据库应该彼此同步(例如,如果在MySQL中进行更改,则应更新SQL Server数据库,或者如果在SQL数据库中进行更改,则应更新MySQL数据库)

有人可以建议一些代码,任何想法或解决此问题的任何解决方案吗?

2 个答案:

答案 0 :(得分:1)

利用Restful API更新从MS SQL服务器到MYSQL服务器的信息。

答案 1 :(得分:0)

我要指出的第一件事是完全和完美的同步是不可能的。不幸的是,SQL Server中存在的数据类型在MySQL中不存在,反之亦然。

但是假设数据类型非常简单并且模式类似,这里有一些选项:

  1. 使用服务总线。您可以编写一个监视两个数据库系统的应用程序,当它看到更改时,它会将一个对象推送到服务总线上。服务总线的监听器将看到对象并将它们写入适当的目的地。

  2. 使用像Alex建议的触发器。 SQL Server可以在触发器上执行CLR代码。 CLR代码可能是一些直接写入MySQL的C#。采取一些设置,但它是可能的。我已经研究过从MySQL中的触发器运行一个进程,所有选项都很难看。这是可能的,但安全性是一个主要问题。我们的想法是更改记录,触发触发器并运行外部进程。

  3. 编写一个不断在表中查找“差异”并来回移动数据的应用程序。您需要修改所有表格以确保每条记录都支持日期/时间戳记,以便您可以跟踪记录何时“已更改”。

相关问题