0

我想将一张表从我的 SQL Server 实例数据库转移到 Azure 上新创建的数据库。问题是插入脚本有 60 GB 大。

我知道一种方法是创建备份文件,然后将其加载到存储中,然后在 azure 上运行导入。但问题是,当我尝试这样做时,比在 azure IO 上导入时出现错误:

Could not load package.
 File contains corrupted data.
 File contains corrupted data.

第二个问题是,使用这种方法我不能只复制一个表,整个数据库必须在备份文件中。

那么有没有其他方法来执行这样的操作呢?什么是最好的解决方案。如果备份是最好的,那么为什么我会收到这个错误?

4

3 回答 3

3

您可以使用使这变得非常容易的工具(指向和单击)。如果是一次性的,您几乎可以使用任何工具(Red GateBlueSyntax ...)。你也总是有BCP。这些方法中的大多数将允许您备份或恢复单个表。

如果您需要更多可重复的东西,您应该考虑使用备份 API或使用SQLBulkCopy类自己编写代码。

于 2013-08-13T19:07:39.653 回答
1

我不知道我是否会尝试执行 60gb 脚本。脚本通常执行不是很优化的单次插入。您是否探索过使用各种批量导入/导出选项?

http://msdn.microsoft.com/en-us/library/ms175937.aspx/css http://msdn.microsoft.com/en-us/library/ms188609.aspx/css

如果这是一次性加载,使用 IaaS VM 导入 SQL Azure 数据库可能是一个不错的选择。导出后的数据文件可以压缩/压缩并上传到 blob 存储。然后将该文件从存储中拉回您的 VM 中,以便您可以对其进行操作。

于 2013-08-13T14:19:25.617 回答
0

您是否尝试过在命令提示符下使用 BCP?如此处所述:批量插入 Azure SQL

您基本上创建了一个包含所有表数据的文本文件,并使用命令提示符中的 BCP 命令将其批量复制到您的 azure sql 数据库中。

于 2014-08-20T12:44:30.543 回答