65.9K
CodeProject 正在变化。 阅读更多。
Home

数据库备份和还原选项 - 如何使用 SSMS 导出 BACPAC?

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2021 年 4 月 5 日

CPOL

5分钟阅读

viewsIcon

12042

本文介绍 SQL Server 中还原和备份数据库的选项,并说明如何从 SQL Server Management Studio 导出 BACPAC。

背景

开发人员使用一个数据库来开发解决方案,然后需要创建另一个环境,例如测试环境和生产环境。一旦开发环境中的一切准备就绪,我们就需要将其部署到测试或暂存环境。要将应用程序从一个环境部署到另一个环境,我们需要创建数据库或部署数据库。我们可能需要将数据库中保存的相同设置配置以及示例测试数据,有时还需要相同的数据来排查问题。也可能存在另一种情况,即我们需要调试并检查生产数据存在的问题。我们不能直接连接并使用生产或实时数据库来直接在客户端环境中进行故障排除和修复问题。为了克服这种情况,我们需要具有相同数据的相同数据库。如果使用数据还原相同的数据库,则测试和暂存环境中的故障排除和部署将大大减少。此外,还可能存在数据迁移的需求,例如从本地/本地数据库迁移到 Azure。在 SQL Server 中,有一些方法可以还原或创建具有现有数据的新数据库。在本文中,我们将学习一些使用可用选项还原数据库的技术。本文将介绍如何借助现有数据库的 BACPAC 文件,在另一个环境中创建数据库并刷新数据。

引言

许多开发人员不知道 SQL Server Management Studio 中存在 DACPAC 和 BACPAC 选项。本文介绍了 SQL Server 中可用的提取和导出选项,以及如何使用 SQL Server Management Studio 导出 BACPAC 文件。因此,这篇博文通过 BACPAC 导出选项的示例,解释了数据层应用程序。包括数据的 SQL Server 数据库创建和还原选项。

  • 备份文件还原
  • 生成带数据的脚本
  • 数据层应用程序

备份文件还原

在 SQL Server 中,我们可以通过创建所需数据库的 *.bak* 文件并在新环境中还原它来还原包含数据的数据库。但是,当我们将同一数据库创建 BACPAC 和 *.bak* 文件时,BACPAC 文件的大小会比 .bak 文件小得多。同时,创建和还原/导入文件所需的时间也相对较短。此外,有时由于大型数据库文件过大,可能会出现 *.bak* 文件传输问题,并且还存在 SQL Server 版本兼容性问题。

生成带数据的架构

还有另一种还原或创建数据库的方法,我们可以生成带数据或不带数据的脚本,并运行它来创建新数据库。此外,在 SQL Server 中生成脚本时,我们需要选择 **高级** 选项来选择架构和数据,以便使用源数据库的最新数据创建新数据库。此外,如果使用此方法创建新数据库,执行脚本和插入所有数据将花费大量时间。有时,数据插入可能会导致错误。除此之外,文件大小也会变大。

数据层应用程序

数据层应用程序有两种方法可以通过不同的文件扩展名还原数据库:DACPAC 和 BACPAC。**DACPAC** (Data-Tier Application Package) 是一个逻辑数据库实体,它定义了数据库对象,例如表、视图、用户和登录名。它有助于创建包含数据库对象的单个包文件,供开发人员和数据库管理员使用。**BACPAC** (Backup package) 包含 SQL Server 数据库的架构和数据。我们可以生成这些文件并在多个环境中部署它们。此外,我们还可以使用它来迁移数据,例如从本地环境迁移到 Azure SQL 数据库或联机。如果只需要架构,可以选择 DACPAC。如果需要架构和数据,则可以选择 BACPAC 方法。

数据层应用程序的优势

  • 它没有版本兼容性问题。它有助于将数据从不同 SQL 版本的数据源迁移到目标。它优于基于脚本的实践和 *.bak* 文件,因为它可以处理从旧版本到新版本的 SQL 迁移或还原。
  • 在升级时,它会警告可能存在任何数据丢失,并提供升级计划。根据计划,DBA 或开发人员可以继续进行。
  • 它会压缩数据,因此文件大小会变小。

创建或导出 BACPAC 文件步骤

步骤 1

打开 SSMS 并连接到您的 SQL 实例。在 SQL 实例下展开您的数据库,然后右键单击要导出数据的数据库。然后您将看到如下所示的选项

在这里,在这个阶段,您可以看到三个选项

  1. **提取数据层应用程序**:使用此选项,我们可以仅提取数据库架构,而不带任何数据,因此创建的文件称为 DACPAC 包。如果只需要架构,可以选择此选项。
  2. **导出数据层应用程序**:使用此选项,我们可以将架构以及数据提取到文件中,该文件称为 BACPAC 文件。在本文的演示示例中,我们将选择此选项。
  3. **升级数据层应用程序**:我们可以使用此选项升级现有数据库。

由于本文讨论的是 BACPAC,因此请点击 **导出数据层应用程序**。您将看到以下窗口,点击 **下一步** 继续。

第二步

点击 **浏览**,选择您要保存文件的位置,并输入文件名。然后,按照下图所示,点击 **下一步**

步骤 3

将出现摘要窗口,如下所示,您可以在其中看到源位置和目标位置的详细信息。点击 **完成** 继续。

步骤 4

它开始导出数据库架构、数据、存储过程和视图等。这可能需要几秒钟到几分钟。请等待此过程完成。

导出过程完成后,您可以关闭窗口并查看您的文件。现在,您的导出已完成,您可以根据需要将此文件导入 Azure SQL 或另一个服务器或任何计算机的 SQL Server。

结论

本文介绍了还原和创建数据库的选项,以及数据层应用程序的导入/导出选项,并以 BACPAC 为例。我希望它能帮助您使用 SSMS 在 Azure 或本地数据库服务器等新环境中管理和创建包含架构和数据的数据库。在下一篇文章中,我们将学习如何还原或导入 BACPAC 文件。

历史

  • 2021 年 4 月 5 日:初始版本
© . All rights reserved.