管理数据层应用程序

在将某一数据层应用程序 (DAC) 部署到数据库引擎的实例后,即完成了针对与该 DAC 相关联的数据库的大多数管理操作。但是,还必须遵守一些特别的注意事项,以便保持数据库和 DAC 之间的关系。

DAC 数据库管理对象注意事项

在部署某一 DAC 后,通常对数据库执行的大多数管理操作将应用于与该 DAC 相关联的数据库。这些操作包括备份和还原、管理事务日志以及导出和导入数据等。有关详细信息,请参阅管理数据库

DAC 引入了会影响某些数据库管理操作的附加功能:

  • 在部署某一 DAC 时,将在 msdb 系统数据库中创建一个 DAC 实例,用于记录 DAC 定义和为承载 DAC 对象而创建的数据库。如果您更改该数据库名称,例如运行 ALTER DATABASE MODIFY NAME 或者分离该数据库并且用新名称重新附加它,则会失去数据库和 DAC 之间的关联:

    • 您将不再能够升级 DAC 实例。

    • 从 DAC 数据库收集各 DAC 的 SQL Server 实用工具资源使用情况报表。如果您重命名数据库,则 SQL Server 实用工具不再为 DAC 收集使用情况数据。

  • 在部署某一 DAC 后,如果创建、更改或删除关联数据库中的对象,则该 DAC 中的元数据定义不更新。这意味着,部署后的数据库对象修改无法从 DAC 还原,这些修改只能从数据库的备份还原。DAC 升级过程可能还无法传输已更改的对象或其数据。有关详细信息,请参阅升级数据层应用程序

  • 在 DAC 级别没有备份和还原功能。所有备份和还原操作都针对数据库执行。在部署后对数据库做出的所有更改只能从数据库的备份还原。

  • 一旦系统出现故障,您必须能够还原 msdb 系统数据库以及与 DAC 相关联的用户数据库。这要求备份 msdb 数据库以及用户数据库。如果您仅具有用户数据库的备份,则可以还原该备份并将其用作非托管数据库。但是,如果您没有 msdb 的备份,则无法还原 DAC 定义,并且 SQL Server 实用工具将无法报告 DAC 的资源使用情况。

DAC 管理操作

在部署了一个 DAC 实例后,可以删除该 DAC 并可以选择删除关联的数据库。有关详细信息,请参阅如何删除数据层应用程序

您可以从现有数据库中提取一个 DAC 包,然后使用该包启动 Visual Studio 中的新 DAC 项目。有关详细信息,请参阅如何从数据库中提取 DAC

您可为现有数据库注册 DAC 实例。如果数据库引擎的实例是一个托管实例,则可以在 SQL Server 实用工具中监视该 DAC。有关详细信息,请参阅如何将数据库注册为 DAC