2013-10-21 60 views
0

我有一个19 GB的.sql文件,这是一个MySQL数据库的转储。恢复巨大的MySQL转储文件到MS SQL Server 2008

我怎么能把它安装到MS SQL服务器?这只是将19 GB文件加载到管理工作室并击中F5的问题吗?

我无法访问原始MySQL数据库或其运行的服务器。

谢谢。

+1

假设你的mysql的东西没有使用任何特定于mysql的功能,比如group_concat()之类的,那么是的,你应该能够加载.sql文件,等待一个** LONG **时间为它加载,然后运行它。 –

+0

因此,如果有特定于mysql的命令,我是否需要即时重写?有没有这样的工具? –

+0

你会更好地预处理转储文件,使其更通用,而不是即时的。 19gig是一个非常大的转储文件,如果部分文件泄露了,那么浪费了很多服务器时间。 –

回答

2

我会这样做。

  1. 将MySQL数据库还原到MySQL服务器。
  2. 设置从MS SQL到MySQL
  3. 链接的服务器做一个SELECT * INTO destinationTable会从linkedserver.dbo.sourcetable

唯一这里的问题是,你需要确保指数的定义等是重建。

如果没有很多工作,MySQL备份文件将无法在MSSQL中运行。

+0

谢谢你。我会给你一个镜头。我认为我的.SQL文件无论如何都被损坏了,我无法在Wordpad或SQL Server中打开它。我得到这个错误:错误HRESULT E_FAIL已经从调用COM组件返回。 –

+0

如果您需要更多信息,请大声呼叫,例如查询MySQL上的INFORMATION_SCHEMA.TABLES并使用它来编写SELECT INSERT语句的脚本。看到这个链接的更多信息http://stackoverflow.com/questions/10859966/how-to-convert-all-tables-in-database-to-one-collat​​ion/10860122#10860122 – Namphibian

+1

我还会补充说,一旦你得到它到mySQL你可以检查它,看看是否有列或整个表,你不需要带过来。您也可以考虑将任务分解为更小的模块:确定通过外键相关的表格(如果有)并将它们导入到一起。如果一切顺利,请继续阅读更多表格。这减少了在很长时间失败的操作后您必须重新开始的可能性。 – AllInOne