1

我的场景:

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

问题:

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

我想要的是:

数据库应该相互同步(例如,如果在 MySQL 中进行了更改,则应更新 SQL 服务器数据库,或者如果在 SQL 数据库中进行了更改,则应更新 MySQL 数据库)

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

4

2 回答 2

1

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

于 2013-12-17T07:19:13.097 回答
0

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

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

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

  2. 使用 Alex 建议的触发器。SQL Server 可以在触发器上执行 CLR 代码。CLR 代码可能是一些直接写入 MySQL 的 C#。需要一些设置,但这是可能的。我调查了从 MySQL 中的触发器运行进程,所有选项都很丑陋。这是可能的,但安全是一个主要问题。这个想法是更改记录,触发触发器并运行外部进程。

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

于 2013-07-04T00:12:17.613 回答