Nick Chammas Asked: 2011-09-17 14:12:58 +0800 CST2011-09-17 14:12:58 +0800 CST 2011-09-17 14:12:58 +0800 CST 如何将我的 SQL Azure 数据库复制到本地 SQL Server 实例? 772 我有一个托管在 SQL Azure 实例上的 OLTP 数据库。我想从云中提取数据库的副本,这样我就可以对其运行一些繁重的提取和 OLAP 样式的查询,而不会影响源数据库。 如何将数据库的副本下拉到本地 SQL Server 实例? backup duplication 5 个回答 Voted Best Answer Nick Chammas 2011-09-17T14:19:46+08:002011-09-17T14:19:46+08:00 使用SQL Azure 迁移向导: SQL Azure 迁移向导 (SQLAzureMW) 为您提供分析、生成脚本和迁移数据(通过 BCP)的选项: SQL Server 到 SQL Azure SQL Azure 到 SQL Server SQL Azure 到 SQL Azure Nick Chammas 2011-09-17T14:22:07+08:002011-09-17T14:22:07+08:00 Red Gate 有一个恰当命名的SQL Azure 备份工具。它是免费的,但 Red Gate 已停止支持它。 Nick Chammas 2011-09-17T14:58:01+08:002011-09-17T14:58:01+08:00 编写一个bcp脚本,将所有表的内容导出到本地文件。 首先编写一个查询,该查询将输出一个bcp命令,将目标数据库中的每个表导出到目标计算机上的路径: SELECT 'bcp ' + SCHEMA_NAME(schema_id) + '.' + name + ' out ' + ' D:\local_backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt' + ' -c ' + ' -S servername.database.windows.net ' + ' -d database_name ' + ' -U username ' + ' -P password' FROM sys.tables; bcp从要复制到的计算机上使用 SQL Azure 数据库执行此查询,并将结果保存到cmd文件中。执行该cmd文件以将每个表导出到文本文件。 C:\> REM ask bcp to save the results of the above query to a file C:\> bcp "SELECT 'bcp ' + SCHEMA_NAME(schema_id) + '.' + name + ' out ' + ' D:\backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt' + ' -c ' + ' -S servername.database.windows.net ' + ' -d database_name ' + ' -U username ' + ' -P password' FROM sys.tables;" queryout output_path\bcp_script.cmd -c -S servername.database.windows.net -d database_name -U username -P password C:\> REM execute the bcp commands saved to file C:\> output_path\bcp_script.cmd 这是一种快速而肮脏的方法,不适合大型数据库或复杂模式。 Marian 2012-11-15T15:03:38+08:002012-11-15T15:03:38+08:00 我注意到这个列表中有一个新工具,它是Idera 的 Azure SQL 数据库备份。它是免费的,而且他们通常会制作很好的工具,所以值得一试。 将数据库(但这次只有架构,没有数据)导出到 Azure 的另一种方法是使用 DAC 包(从 Management Studio 或 Visual Studio 2010 中提取的 .dacpac 文件)。这仅适用于 SQL 2008 R2 SP1+。 您可以在此处阅读有关数据层应用程序的详细信息: 您需要了解的有关数据层应用程序 (DAC Fx) 的内容 简化数据的导入和导出。 user16741 2013-01-05T07:46:09+08:002013-01-05T07:46:09+08:00 您可以使用 SSMS 数据导入向导。这是一篇关于它的好博客文章,带有图片。关键点 是为源数据库选择 .NET 数据提供程序。我在尝试使其与其他(和默认 - 本机)提供商一起工作时遇到了很多问题。
使用SQL Azure 迁移向导:
Red Gate 有一个恰当命名的SQL Azure 备份工具。它是免费的,但 Red Gate 已停止支持它。
编写一个
bcp
脚本,将所有表的内容导出到本地文件。首先编写一个查询,该查询将输出一个
bcp
命令,将目标数据库中的每个表导出到目标计算机上的路径:bcp
从要复制到的计算机上使用 SQL Azure 数据库执行此查询,并将结果保存到cmd
文件中。执行该cmd
文件以将每个表导出到文本文件。这是一种快速而肮脏的方法,不适合大型数据库或复杂模式。
我注意到这个列表中有一个新工具,它是Idera 的 Azure SQL 数据库备份。它是免费的,而且他们通常会制作很好的工具,所以值得一试。
将数据库(但这次只有架构,没有数据)导出到 Azure 的另一种方法是使用 DAC 包(从 Management Studio 或 Visual Studio 2010 中提取的 .dacpac 文件)。这仅适用于 SQL 2008 R2 SP1+。
您可以在此处阅读有关数据层应用程序的详细信息:
您可以使用 SSMS 数据导入向导。这是一篇关于它的好博客文章,带有图片。关键点 是为源数据库选择 .NET 数据提供程序。我在尝试使其与其他(和默认 - 本机)提供商一起工作时遇到了很多问题。