有人知道如何复制SQL Azure数据库到我的开发机器吗?我不想再花钱在云端建立开发数据库,但这是获得生产数据的最佳方式。我将我的生产数据库复制到一个新的开发数据库,但我想在本地拥有相同的数据库。
有什么建议吗?
有人知道如何复制SQL Azure数据库到我的开发机器吗?我不想再花钱在云端建立开发数据库,但这是获得生产数据的最佳方式。我将我的生产数据库复制到一个新的开发数据库,但我想在本地拥有相同的数据库。
有什么建议吗?
当前回答
您可以使用新的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
其他回答
您可以使用新的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
您可以尝试使用“SQL数据库迁移向导”工具。 这个工具提供了从azure sql导入和导出数据的选项。
详情请点击这里。
https://sqlazuremw.codeplex.com/
我觉得现在容易多了。
启动SQL管理工作室 右键单击“数据库”,选择“导入数据层应用程序…” 该向导将引导您完成连接到Azure帐户、创建BACPAC文件和创建数据库的过程。
此外,我使用Sql Backup和FTP (https://sqlbackupandftp.com/)每天备份到一个安全的FTP服务器。我只是从那里取出一个最近的BACPAC文件,然后在同一个对话框中导入它,这样创建本地数据库就更快更容易了。
有多种方法可以做到这一点:
Using SSIS (SQL Server Integration Services). It only imports data in your table. Column properties, constraints, keys, indices, stored procedures, triggers, security settings, users, logons, etc. are not transferred. However it is very simple process and can be done simply by going through wizard in SQL Server Management Studio. Using combination of SSIS and DB creation scripts. This will get you data and all missing metadata that is not transferred by SSIS. This is also very simple. First transfer data using SSIS (see instructions below), then create DB Create script from SQL Azure database, and re-play it on your local database. Finally, you can use Import/Export service in SQL Azure. This transfers data (with a schema objects) to Azure Blob Storage as a BACPAC. You will need an Azure Storage account and do this in Azure web portal. It is as simple as pressing an "Export" button in the Azure web portal when you select the database you want to export. The downside is that it is only manual procedure, I don't know a way to automate this through tools or scripts -- at least the first part that requires a click on the web page.
方法1(使用SSIS)的手动步骤如下:
In Sql Server Management Studio (SSMS) create new empty database on your local SQL instance. Choose Import Data from context menu (right click the database -> Tasks -> Import data...) Type in connection parameters for the source (SQL Azure). Select ".Net Framework Data Provider for SqlServer" as a provider. Choose existing empty local database as destination. Follow the wizard -- you will be able to select tables data you want to copy. You can choose to skip any of the tables you don't need. E.g. if you keep application logs in database, you probably don't need it in your backup.
您可以通过创建SSIS包并在任何您想重新导入数据的时候重新执行它来实现自动化。请注意,您只能使用SSIS导入到一个干净的DB中,如果您已经对本地数据库进行了一次增量更新,则不能再对其进行增量更新。
方法#2 (SSID数据加上模式对象)非常简单。首先执行上述步骤,然后创建数据库创建脚本(右键单击SSMS中的数据库,选择生成脚本->数据库创建)。然后在本地数据库上重新播放此脚本。
方法3在这里的博客中描述:http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/。有一个视频剪辑,讲述了将DB内容作为BACPAC传输到Azure Blob存储的过程。之后,您可以在本地复制该文件并将其导入SQL实例。将BACPAC导入到Data-Tier应用程序的流程介绍如下:http://msdn.microsoft.com/en-us/library/hh710052.aspx。
如果有人在导入使用Azure SQL Sync的DB的Bacpac时遇到问题,Sandrino Di Mattia开发了一个非常简单的应用程序来解决这个问题。
导出您的数据库的Bacpac 下载Di Mattia的二进制文件 用这个控制台应用程序修复下载的Bacpac 开展地对地导弹 右键单击“数据库”,选择“导入数据层应用程序” 选择修复后的Bacpac。