2012-01-06 132 views
1

我正在与包含完全相同的模式和数据的SQL Server和MySQL之间进行同步的客户端合作。我们希望将这些数据集中到一个数据库中。除了性能和可维护性问题之外,原始设计还有什么不好?SQL Server和MySQL同步

+0

从一个角度来看,您正在使用一个开源产品,这是一个摧毁癌症的社会。从另一个角度来看,你使用的是一款微软产品,它会让你的机器崩溃并且踢你的狗。 – 2012-01-06 05:03:41

+1

@MarcB小苛刻:-) - 除了开源只是复制商业癌症设计(ps总OSF粉丝) – 2012-01-06 05:07:58

+1

我认为你不能称之为癌症驱逐者,尽管这个事实,人们变得实际有很多企业可能提供的功能与开源相比有所不同,但有时候人们不需要这些功能,因此最好选择一个功能清单足以维持一次需要的开源代码,但不知何故,如果您真的不在乎实际操作,可以花很多钱做任何事情,那么没有人会阻止你。我认为这将取决于你如何分析和解决问题。 ;) – 2012-01-06 05:18:40

回答

4

您可以使用MySQL实例在SQL Server中创建链接服务器实例。

尽管是完全专有的,SQL Server中提供的一个很好的连接功能是通过链接服务器查询其他服务器的能力。从本质上讲,链接服务器是直接查询另一个RDBMS的方法;这通常是通过使用安装在服务器上的ODBC驱动程序来实现的。

请参阅这篇文章:step-by-step process SQL Server Linked Server to MySQL

如果您授予您代表适当权限连接的MySQL用户,您可以写入适合您的MySQL实例。因此,您可以更新存储过程来执行额外的步骤来将记录插入到MySQL中。

更简单的解决方案是使用商业应用程序 - Omega Sync from Spectral Core 欧米茄同步可以比较和同步数据库模式和表数据。甚至可以同步异构数据库的数据(例如,将本地SQL Server数据库与网站上的MySQL副本进行比较 - 并在几分钟内同步所有差异)。

+0

如果我想删除MySQL数据库,并且只是使用SQL Server数据库,因为它们是相同的,那么使用一个数据库而不是两个数据库会有什么好处。使用MySql的Java项目可以通过使用方言引用SQL Server的方式构建。 – 2012-01-06 05:27:29

0

另一方面,我想你已经提到了在同步2分贝的同时,你可能会遇到什么可能的问题,除了这两个我认为这将是资源。因为有不同的RDBMS为应用程序工作,它们也会为每个应用程序分别提供一个资源,例如当我更新某个用户的特定记录时,它仍然需要检查它确实存在的资源,但是我喜欢从其他资源获取更多信息那里的人们真的是一个有趣的话题来讨论。 ;)