小编典典

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

all

有谁知道如何将 SQL Azure
数据库复制到我的开发机器上?我不想再花钱在云中拥有一个开发数据库,​​但这是获取生产数据的最佳方式。我将我的生产数据库复制到一个新的开发数据库,​​但我希望在本地拥有相同的数据库。

有什么建议么?


阅读 60

收藏
2022-06-30

共1个答案

小编典典

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

  1. 使用 SSIS(SQL Server 集成服务) 。它只data在您的表中导入。不传输列属性、约束、键、索引、存储过程、触发器、安全设置、用户、登录等。然而,这是一个非常简单的过程,只需通过 SQL Server Management Studio 中的向导即可完成。
  2. 使用 SSIS 和 DB 创建脚本 的组合。这将为您提供 SSIS 未传输的数据和所有丢失的元数据。这也很简单。首先使用 SSIS 传输数据(请参阅下面的说明),然后从 SQL Azure 数据库创建 DB Create 脚本,并在本地数据库上重新播放。
  3. 最后,您可以 在 SQL Azure 中使用 Import/Export 服务 。这会将数据(带有架构对象)作为 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 数据加上模式对象)非常简单。首先执行上述步骤,然后创建 DB Creation 脚本(在 SSMS 中右键单击数据库,选择
Generate Scripts -> Database Create)。然后在本地数据库上重新播放此脚本。

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

2022-06-30