数据层应用程序 (DAC) 概述

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Microsoft Fabric 预览版中的 SQL 数据库

数据层应用程序(DAC)是一个逻辑数据库实体,用于定义与用户数据库关联的所有 SQL Server 对象(例如表、视图和实例对象,包括登录名)。 数据层应用程序是整个数据库模型的自包含单元,在包.dacpac.bacpac中可移植。 数据层应用程序的工具支持使开发人员和数据库管理员能够将文件.bacpac应用于.dacpac新数据库或现有数据库,或者从现有数据库生成新文件。

Operations

BACPAC operations

.bacpac文件格式是一个相关项目,默认情况下封装数据库架构和存储在数据库中的数据。 .bacpac数据库模型中的对象仅限于 Azure SQL 数据库的外围应用。 主要用例 .bacpac 是将数据库从一台服务器移到另一台服务器,或者将 数据库从本地服务器迁移到云 中,以及以开放格式存档现有数据库。

SqlPackage 可移植性文档详细了解数据库可移植性。

DACPAC operations

数据 .dacpac 层应用程序包是 SQL 数据库项目的 生成项目,可用作全面的数据库生命周期管理和 DevOps 策略的一部分。 默认情况下,数据不包括在 .dacpac 内,但从实时 SQL Server 或 Azure SQL 数据库提取 .dacpac 数据时,可以选择包含用户表中的数据。 作为 SQL 数据库项目工作流和数据库开发生命周期不可或缺的一部分, .dacpac 文件用于多个作。 主要作包括:

  • 提取 - 用户可以将数据库提取到 ..dacpac 有关详细信息,请参阅 SqlPackage 提取从数据库中提取 DAC
  • 部署/发布 - 用户可以将 A .dacpac 部署到主机服务器。 将部署完成到现有数据库后,将动态计算数据库与 DAC 之间的差异,并将其作为增量更新应用。 术语“发布”通常与“部署”互换使用。有关详细信息,请参阅 SqlPackage 发布部署数据层应用程序

可以在 SqlPackage CLI、SQL Server Management Studio、Azure Data Studio 和 SQL Server Data Tools 中找到这些功能。

除了发布和提取之外,还可以利用 dac 注册 功能跟踪系统元数据中的数据库模型:

  • 注册 - 用户可以将数据库注册为数据层应用程序。 注册将数据库架构的当前状态的表示形式存储在系统元数据中。
  • 注销 - 以前注册为 DAC 的数据库可以注销。
  • 升级 - 可以使用 ...dacpac

数据层应用程序工具

数据层应用程序的工具支持使开发人员和数据库管理员能够使用 .dacpac 图形和命令行界面中的文件和 .bacpac 文件。 除了已发布的工具,数据层应用程序 API 在 数据层应用程序框架(DACFx) 中提供,用于 .NET 开发和数据库生命周期自定义。

DACPAC 和 BACPAC 包

以下工具支持 .dacpac.bacpac 格式:

在这些工具中,可以将数据库提取到 .dacpac 或导出到 a .bacpac. 相反,可以将 a .bacpac 导入新数据库,也可以 .dacpac 发布到新的数据库或现有数据库。

DACPAC 和 SQL 项目

除了提供 SQL 数据库项目的编辑外, .dacpac 以下工具还支持文件格式:

在这些工具中,开发人员可以在未连接的客户端开发环境中设计数据库。 在 SQL 项目工具 文章中了解详细信息。