将大表导入到azure sql数据库

时间:2013-08-13 10:28:47

标签: sql sql-server tsql azure sql-server-2008-r2

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

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

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

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

那么还有其他方法可以执行这样的操作吗?什么是最好的解决方案。如果备份是最好的,那么为什么我会收到此错误?

3 个答案:

答案 0 :(得分:3)

您可以使用那些非常简单的工具(点击)。如果这是一次性的事情,您几乎可以使用任何工具(Red GateBlueSyntax ...)。你总是有BCP。大多数这些方法将允许您备份或还原单个表。

如果您需要更具可重复性的内容,则应考虑使用backup API或使用SQLBulkCopy类自行编写代码。

答案 1 :(得分: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中,以便您可以对其进行操作。

答案 2 :(得分:0)

您是否尝试在命令提示符下使用BCP? 如下所述:Bulk Insert Azure SQL

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