2009-09-21 73 views
3

我在这里面临新的挑战。 我似乎无法找到优先从MySQL的复制,运行在Linux机器上的MS SQL Server。从MySQL复制到MS SQL

以前有人做过这个吗?

最重要的是,对MySQL数据库所做的所有更改都应该在MS数据库上实时或关闭地进行复制。 MS数据库不可能以任何其他方式更新,因此不需要双向设施。


我想一种方法是从二进制日志中读取更改。 以前有人解析过吗?

感谢您的帮助球员。

+1

通过复制,你的意思是它应该保持恒定的同步,或者你只是想要一次性的或计划的数据迁移? – 2009-09-21 15:23:11

+0

对不起。我更新。 :) – 2009-09-21 15:26:01

+0

啊,好吧,那我就帮不了你:)。我会建议你看一下MySQL Migration工具包,但如果你打算在两边进行更改,这并没有什么帮助。 – 2009-09-21 15:29:06

回答

2

MySQL中的触发器可用于捕获更改并调用UDF,然后UDF可以对MSSQL执行ODBC查询。尽管如此,表现可能很糟糕。

如果不需要立即复制:

  • 写在MySQL触发捕获插入,更新和删除日志表的语句。
  • 使用ODBC从MSSQL轮询日志表并执行它们,然后删除这些日志条目。

当然,T-SQL和MySQL的SQL变体并不完全一样,但它应该是紧密的,用于微不足道的CUD操作。

+0

谢谢。如果我要编写应用程序,我将在我的方法中遵循类似的观点。为什么是性能问题? – 2009-09-22 06:09:43

+0

这当然似乎是唯一有效的方法... 使用任何工具同步大型数据表可能会花费太长时间,因此无法实现近乎实时的同步。 通过跟踪更新,我需要迭代的行数已经大大降低,因此我可以有效地使用它来运行更新。 - 感谢理查德 – 2009-10-12 12:26:26

3

检查,看是否DBSync会帮你做你想做

+0

我已经得到了DBSync,并对它进行了测试,并且它在初始迁移中的确很棒。 但是,它只能通过同步整个数据库来进行更新,如果数据量较大,则可能需要几个小时。因此,如果频繁定期更新数据表,它不是一个有效的解决方案。 - 虽然简单的迁移对于金钱来说是非常物有所值的...... – 2009-10-12 12:19:24

+0

......我只是想补充一点,它处理无效数据的能力也是有限的。 :( – 2009-10-26 13:46:34

1

我有类似的任务是什么,但我从2008年MSSQL复制到MySQL的实时性。

我试过这个应用程序http://enterprise.replicator.daffodilsw.com/,它的工作,但它看起来并不可靠。但你可以检查我可能是错的。

最后我决定使用接口OLE DB和postgress来代替Mysql。它正常工作。

+0

是的,我们刚刚开始尝试使用这个工具,我的IT人员正在测试它比我更确信。)Raj的DBSync对我来说看起来更加顽固,它只需79美元。 – 2009-09-25 12:53:56