MySQL 到 SQL Server 的迁移

Posted

技术标签:

【中文标题】MySQL 到 SQL Server 的迁移【英文标题】:MySQL to SQL Server migration 【发布时间】:2011-10-07 23:36:50 【问题描述】:

我有一个 mysql 数据库,其中包含我需要保留但迁移到 SQL Server 2008 的数据。

我知道数据应该从表到表的端到端去向,但我不知道如何移动数据。我环顾了网络,但似乎有“解决方案”,您必须下载并运行。如果可能的话,我宁愿自己在编写脚本或代码方面做一些事情。

谁能推荐最好的方法吗?

【问题讨论】:

【参考方案1】:

我曾经做过一次,前段时间。首先,您可以使用 odbc mysql 连接器将您的 mssql 服务器耦合到 mysql 服务器

http://dev.mysql.com/downloads/connector/

建立连接后,您可以编写数据库过程,就像它是两个 mssql db 一样。可能最容易编写一些 sql 批处理脚本,包括一个游标,您可以在其中运行表的每一行,并根据字段决定将来需要该字段的位置。

光标示例:http://www.mssqltips.com/tip.asp?tip=1599

如果您决定使用光标,则可以使用参数来提高性能。我特别记得FORWARD_ONLY 参数给了我很大的提升。

【讨论】:

【参考方案2】:

您可以使用 SQL Server Standard Edition 附带的导入/导出向导。

使用 ODBC 数据源从 MySQL 中选择您的“数据源”。注意:您需要首先安装 MySQL 的 from ODBC 驱动程序 (ODBC Connector)。然后,选择您的 SQL Server 目标。选择所有表,然后启动它。您需要手动添加主键和外键以及索引。

更自动化的方法是使用SQL Server Migration Assistant for MySQL,也是免费的。它具有自动为您重新创建关系和索引的好处。可能是您最好的选择。

【讨论】:

【参考方案3】:

试试这个教程,从 Mysql 迁移到 SQL Server 非常容易,并且如前所述很简单

http://www.codeproject.com/Articles/29106/Migrate-MySQL-to-Microsoft-SQL-Server

谢谢

【讨论】:

【参考方案4】:

您是否尝试过来自 MSFT 的名为 SQL Server Migration Assistance for MySQL 的工具? https://www.microsoft.com/download/en/details.aspx?id=1495

【讨论】:

【参考方案5】:

你有几个选择:

在 sql server 端,您可以使用称为 linked server 的东西建立与旧 mysql 数据库的连接。这将允许您为从 mysql 表返回数据的 sql server 编写 sql 代码。您可以使用它来构建 INSERT 或 SELECT INTO 语句。 您可以为 mysql 编写查询以将数据导出为 csv,然后使用 sql server 的 BULK INSERT 功能有效地导入 csv 数据。 您可以使用 Sql Server 集成服务来设置从 mysql 移动数据。

无论您选择哪个,都必须手动移动索引、外键、触发器、存储过程和安全性等非数据工件。

【讨论】:

+1 链接服务器选项可能是我处理它的方式。您需要在 SQL Server 机器上为 MySQL 提供 ODBC 连接器。

以上是关于MySQL 到 SQL Server 的迁移的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据迁移到SQL Server

从mysql迁移到sql server

如何将 SQL Server 存储过程迁移到 Mysql [关闭]

迁移警告 - 列 x 到 x 的截断键列长度 - SQL Server 到 MYSQL 迁移

从 MySql 迁移到 Sql server 2008

从 MySQL 到 SQL Server 的 Hibernate + Spring 迁移