将远程 MySQL 数据库复制到 MS SQL Server 2008

Jim*_*ins 10 mysql replication sql-server-2008

我想将 MySQL 数据库的内容复制到 MS SQL Server 2008 数据库。

这可能吗?任何人都可以概述实现这一目标所需的步骤吗?

谢谢。

And*_*SQL 9

就个人而言,我会使用 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 的场景,我将提供一些最适合我的技巧:

  1. 如果可以,请尽最大努力确定如何确保仅带来增量更改。合并命令可以帮助解决这个问题。截断一个表然后再次将其全部插入会使您的日志膨胀,使用网络带宽,并且通常只会浪费时间。
  2. 如果处理大量数据,请务必将事务分解,以免需要大量日志文件。当您到达您知道不需要回滚的步骤时,使用显式提交或检查点。
  3. 如果 MSSQL 数据库仅用于报告,请在那里进行 ETL 工作,以免影响 MySQL 服务器。使用临时数据库或模式 + 文件组使事情变得简单。
  4. 将数据导入分成几个步骤。这使得在导入失败和/或排除故障时重新启动导入变得容易。全有或全无的方法很快就会变得烦人。
  5. 尽可能使用变量来协助远程数据库进行查询计划和索引使用。还要注意您在主机箱上的事务隔离类型以及“复制”查询将产生什么影响。如果您只是为了报告或沙箱使用而提取数据,您不希望在实时数据库上阻止编写者。

希望小贴士有帮助!