sql-server - 如何将 SQL Azure 数据库复制到本地开发服务器?

标签 sql-server azure azure-sql-database database-migration

有谁知道如何将 SQL Azure 数据库复制到我的开发计算机上?我想停止付费在云中拥有开发数据库,​​但这是获取生产数据的最佳方式。我将生产数据库复制到新的开发数据库,​​但我希望在本地拥有相同的数据库。

有什么建议吗?

最佳答案

有多种方法可以做到这一点:

  1. 使用 SSIS(SQL Server 集成服务)。它仅导入表中的数据。列属性、约束、键、索引、存储过程、触发器、安全设置、用户、登录名等不会传输。然而,这是一个非常简单的过程,只需通过 SQL Server Management Studio 中的向导即可完成。
  2. 结合使用SSIS 和数据库创建脚本。这将为您提供数据以及所有未由 SSIS 传输的缺失元数据。这也很简单。首先使用 SSIS 传输数据(请参阅下面的说明),然后从 SQL Azure 数据库创建 DB Create 脚本,并在本地数据库上重新运行它。
  3. 最后,您可以使用SQL Azure 中的导入/导出服务。这会将数据(带有架构对象)作为 BACPAC 传输到 Azure Blob 存储。您将需要一个 Azure 存储帐户并在 Azure Web 门户中执行此操作。只需在选择要导出的数据库时按 Azure Web 门户中的“导出”按钮即可。缺点是它只是手动过程,我不知道如何通过工具或脚本自动执行此操作 - 至少是需要单击网页的第一部分。

方法 #1 的手动过程(使用 SSIS)如下:

  • 在 Sql Server Management Studio (SSMS) 中,在本地 SQL 实例上创建新的空数据库。
  • 从上下文菜单中选择“导入数据”(右键单击数据库 -> 任务 -> 导入数据...)
  • 输入源 (SQL Azure) 的连接参数。选择“.Net Framework Data Provider for SqlServer”作为提供程序。
  • 选择现有的空本地数据库作为目标。
  • 按照向导操作 - 您将能够选择要复制的表数据。您可以选择跳过任何不需要的表。例如。如果您将应用程序日志保存在数据库中,则您的备份中可能不需要它。

您可以通过创建 SSIS 包并在需要重新导入数据时重新执行它来实现自动化。请注意,您只能使用 SSIS 导入到干净的数据库,一旦完成一次就无法对本地数据库进行增量更新。

方法 #2(SSID 数据加架构对象)非常简单。首先执行上述步骤,然后创建数据库创建脚本(右键单击 SSMS 中的数据库,选择“生成脚本”->“创建数据库”)。然后在本地数据库上重新运行此脚本。

方法#3在博客中进行了描述:http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/ 。有一个视频剪辑,介绍了将数据库内容传输到 Azure Blob 存储(作为 BACPAC)的过程。之后,您可以在本地复制该文件并将其导入到您的 SQL 实例。将 BACPAC 导入数据层应用程序的过程如下所述:http://msdn.microsoft.com/en-us/library/hh710052.aspx .

关于sql-server - 如何将 SQL Azure 数据库复制到本地开发服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5475306/

相关文章:

mysql - 如何以与在数据库服务器上完成的方式大致相同的方式检查约束

c# - LINQ 和 Entity Framework - 避免子查询

azure - 获取 Azure 错误 : IDW10203: The 'scope' or 'scp' claim does not contain scopes 'access_as_machine' or was not found

带有 SAS token 的 Java Azure SB 连接

php - 对所有用户使用相同的 MySQL 链接?

sql-server - SQL SERVER sp_executesql ')' 附近的语法不正确

c# - 通过 Azure KeyVault 禁止控制台日志记录

具有现有数据库的 Azure 移动服务(无需架构更改)

sql-server - 在 Sql Azure 中收到错误 "Could not find stored procedure ' sp_OACreate'"

azure - 使用 Azure 流量管理器进行扩展的数据库策略