我需要将几个表从第三方SQL Server 2000数据库批量复制到MySQL 5数据库并保持同步 - 即,当SQL Server表上发生某些CRUD时,我希望它及时反映在MySQL版本中。现在,我知道有ways to do this with 2000,但在不久的将来,SQL Server数据库将升级到2005年,这似乎不会提供与2000相同的漏洞。
那么,有没有办法将数据从SQL Server 2005复制/同步到MySQL,而不涉及我以编程方式比较两个数据库中的表?如果是这样,它是否也适用于SQL Server 2000?
答案 0 :(得分:1)
Suggestions for replication of data from MS Sql 2005 and MySql
有人建议不要弄乱这样的方案并设置另一个sql server。
SQL Express对性能有一些限制,但也许这是你的选择。我找不到任何可行的,开箱即用的。
答案 1 :(得分:0)
我以前做过这个,虽然它完全取决于你及时的定义!
我使用myODBC(http://dev.mysql.com/downloads/connector/odbc/5.1.html)将mySQL服务器设置为链接服务器。然后,您可以使用openquery命令(http://msdn.microsoft.com/en-us/library/ms188427.aspx)从远程表中获取数据。
然后,您需要做的就是编写一个存储过程,该过程执行插入/更新,其中不存在远程数据库中的数据。 SQL有点讨厌,但它是可行的!一旦有了可行的SP,就可以将其设置为在某处作为触发器运行,或者将其作为MSSQL服务器中的作业运行。
答案 2 :(得分:0)
我也会建议connecting SQL Server to MySQL via Linked Server。然后,在相关表上创建AFTER触发器,使用INSERTED DELETE EDuedo表来确保所有本地操作都反映在远程数据库上。例如:
CREATE TRIGGER tr_Orders_Insert ON Orders AFTER INSERT AS
BEGIN
INSERT INTO MySQLServer...Orders (OrderID, OrderDate)
SELECT OrderID, OrderDate FROM INSERTED
END
GO