我想将MySQL数据库的内容复制到MS SQL Server 2008数据库。
这可能吗?谁能概述实现此目标所需的步骤?
谢谢。
我想将MySQL数据库的内容复制到MS SQL Server 2008数据库。
这可能吗?谁能概述实现此目标所需的步骤?
谢谢。
Answers:
我个人比较喜欢MS SQL方法和MySQL方法。为什么?Windows可以立即使用32位和64位MySQL ODBC驱动程序,并且设置链接服务器非常简单。我有很多从MS SQL链接到的MySQL服务器。而且,从linux / unix连接到MS SQL并不总是很好,而且您通常无法使用所有功能。FreeTDS有局限性。您可能会早点击打它们,而不是以后击打它们,为什么不跳过它。所有这些都假定您在* nix上运行MySQL。如果不是,它会更接近50/50,但我仍然会选择从MS SQL中拉取,因为听起来它不是“实时”数据库,因此对任何ETL或处理施加负担都比较理想。GoldenGate解决方案听起来很有趣,但是我确定它不是免费的。
考虑到我已经建立了将MySQL和Oracle数据库复制到MS SQL的方案,我将提供一些最适合我的技巧:
希望技巧能有所帮助!
此处在StackOverflow上解决了相同的问题: 从MySQL复制到MSSQL。
似乎有一些解决方法,但不是一个很简单的解决方案。
我相信您绝对应该尝试构建SSIS包以将必要的数据从MySQL DB导入到MSSQL DB。SSIS允许从各种来源导入数据。然后,您应该能够使用Windows Task Scheduler或sql作业来计划程序包。
如果说复制是指日志传送或类似的东西,我相信您很不幸。但是,您当然可以将MySQL数据库设置为链接服务器,并推出自己的复制方案。最简单的就是使用truncate和insert语句对所有表进行定期快照。根据您的要求增加复杂性。
您可以将GoldenGate用于MySQL和MS SQL来执行此操作。您只需在每侧安装GoldenGate产品,然后进行同质复制。
另外,对于“快照”复制,您可以使用Python(或类似的)脚本简单地连接到两个数据源(使用UnixODBC和FreeTDS连接到MS SQL),SELECT
在每一行的一侧循环遍历表INSERT
在另一。由于MSSQL具有事务并且是您的目标,因此您可以启动事务,DELETE
所有表中的所有内容都进行复制,然后COMMIT
就涉及目标上的已连接用户而言,它会立即显示,不会出现不一致(除非存在这些不一致)当然在来源上)。