【问题标题】:Restoring huge MySQL dump file to MS SQL Server 2008将巨大的 MySQL 转储文件恢复到 MS SQL Server 2008
【发布时间】:2013-10-30 13:59:25
【问题描述】:

我有一个 19 GB 的 .sql 文件,它是 MySQL 数据库的转储。

我怎样才能将它安装到 MS SQL 服务器?是否只是将 19 GB 的文件加载到管理工作室并按 F5 的问题?

我无权访问原始 MySQL 数据库或运行它们的服务器。

谢谢。

【问题讨论】:

  • 假设你的 mysql 东西没有使用任何 mysql 特定的功能,例如 group_concat() 等,那么是的,你应该能够只加载 .sql 文件,等待 加载时间很长,然后运行它。
  • 那么如果有mysql特定的命令,我只需要即时重写吗?有没有这样的工具?
  • 您最好预处理转储文件以使其更通用,而不是即时处理。 19gig 是一个相当大的转储文件,如果中途出现问题,那你就浪费了很多服务器时间。
  • 我将如何预处理它?

标签: mysql sql-server restore


【解决方案1】:

我会这样去做。

  1. 将 MySQL 数据库恢复到 MySQL 服务器。
  2. 设置从 MS SQL 到 MySQL 的链接服务器
  3. 执行 SELECT * INTO destinationtable FROM linkedserver.dbo.sourcetable

这里唯一的问题是您需要确保重新创建索引定义等。

如果没有大量工作,您的 MySQL 备份文件将无法在 MSSQL 中运行。

【讨论】:

  • 谢谢伙计。我会试一试。我认为我拥有的 .SQL 文件无论如何都已损坏,我无法在写字板或 SQL Server 中打开它。我收到此错误:对 COM 组件的调用已返回错误 HRESULT E_FAIL。
  • 大喊如果您需要更多信息,例如可以查询 MySQL 上的 INFORMATION_SCHEMA.TABLES 并使用它来编写 SELECT INSERT 语句的脚本。有关更多信息,请参阅此链接stackoverflow.com/questions/10859966/…
  • 我还要补充一点,一旦您将它放入 mySQL,您可以检查它以查看是否有不需要带入的列或整个表。您还可以考虑将任务分解为更小的模块:识别通过外键关联的表(如果有)并将它们一起导入。如果一切顺利,请转到更多桌子。这减少了您在长时间失败的操作后必须重新开始的可能性。
猜你喜欢
  • 2012-10-16
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 2010-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多