有人知道如何复制SQL Azure数据库到我的开发机器吗?我不想再花钱在云端建立开发数据库,但这是获得生产数据的最佳方式。我将我的生产数据库复制到一个新的开发数据库,但我想在本地拥有相同的数据库。

有什么建议吗?


当前回答

对我来说,诀窍是开始在空DB上复制pk /FKs/约束,然后在导入数据时暂时禁用约束(参见https://stackoverflow.com/a/161410)。

更准确地说应该是:

手动创建空目标DB; 右键单击源DB > Tasks >生成脚本; 在空的目标DB上运行脚本文件(现在DB有正确的PKs/FKs/约束,但没有数据); 禁用所有约束; 导入数据(右键单击目标DB > Tasks > Import data); 重新启用约束。

希望这能有所帮助!

其他回答

我只是想把邓布利多爸爸的回答简化一下,因为这是正确的答案。

将Azure SQL数据库导出到blob存储上的BACPAC文件。 在SQL Management studio中,右键单击数据库,单击“导入数据层应用程序”。 系统将提示您输入信息以获取Azure blob存储上的BACPAC文件。 点击next几次,然后…完成了!

如果有人在导入使用Azure SQL Sync的DB的Bacpac时遇到问题,Sandrino Di Mattia开发了一个非常简单的应用程序来解决这个问题。

导出您的数据库的Bacpac 下载Di Mattia的二进制文件 用这个控制台应用程序修复下载的Bacpac 开展地对地导弹 右键单击“数据库”,选择“导入数据层应用程序” 选择修复后的Bacpac。

您可以使用新的Azure移动服务执行夜间备份导出,从SQL Azure导出到Azure存储托管的.bacpac文件。这个解决方案是100%的云计算,不需要第三方工具,也不需要本地托管的SQL Server实例来下载/复制/备份任何东西。

大约有8个不同的步骤,但都很简单: http://geekswithblogs.net/BenBarreth/archive/2013/04/15/how-to-create-a-nightly-backup-of-your-sql-azure.aspx

关于“我无法让SSIS导入/导出工作,因为我得到了错误“插入只读列“id”失败”。 这可以通过在映射屏幕中指定允许插入Identity元素来解决。

在此之后,使用SQL导入/导出向导从Azure复制到本地数据库,一切工作正常。

我只有SQL Server 2008 R2附带的SQL导入/导出向导(工作良好)和Visual Studio 2012 Express来创建本地数据库。

我无法让SSIS导入/导出工作,因为我得到了错误“插入只读列“id”失败”。我也不能让http://sqlazuremw.codeplex.com/工作,上面的链接到SQL Azure数据同步不适合我。

但我发现了一篇关于BACPAC文件的优秀博客文章:http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/

在这篇博文的视频中,作者介绍了六个步骤:

Make or go to a storage account in the Azure Management Portal. You'll need the Blob URL and the Primary access key of the storage account. The blog post advises making a new container for the bacpac file and suggests using the Azure Storage Explorer for that. (N.B. you'll need the Blob URL and the Primary access key of the storage account to add it to the Azure Storage Explorer.) In the Azure Management Portal select the database you want to export and click 'Export' in the Import and Export section of the ribbon. The resulting dialogue requires your username and password for the database, the blob URL, and the access key. Don't forget to include the container in the blob URL and to include a filename (e.g. https://testazurestorage.blob.core.windows.net/dbbackups/mytable.bacpac). After you click Finish the database will be exported to the BACPAC file. This can take a while. You may see a zero byte file show up immediately if you check in the Azure Storage Explorer. This is the Import / Export Service checking that it has write access to the blob-store. Once that is done you can use the Azure Storage Explorer to download the BACPAC file and then in the SQL Server Management Studio right-click your local server's database folder and choose Import Data Tier Application that will start the wizard which reads in the BACPAC file to produce the copy of your Azure database. The wizard can also connect directly to the blob-store to obtain the BACPAC file if you would rather not copy it locally first.

最后一步可能只能在SQL Server Management Studio的SQL Server 2012版(我正在运行的版本)中使用。这台机器上没有更早的。在博客文章中,作者使用命令行工具DacImportExportCli.exe进行导入,我相信可以在http://sqldacexamples.codeplex.com/releases上找到