导出数据层应用程序

导出部署的数据层应用程序 (DAC) 或数据库将创建一个导出文件,其中同时包括该数据库中的对象定义和表中包含的所有数据。 然后,可将该导出文件导入到数据库引擎的其他实例或 Windows Azure SQL Database 中。 可以将导出-导入操作组合起来以在实例之间迁移 DAC,或者创建一个逻辑备份,或者创建部署在 SQL Database 中的数据库的本地副本。

开始之前

导出过程分两个阶段生成一个 DAC 导出文件。

  1. 导出操作在导出文件中生成 DAC 定义(BACPAC 文件),DAC 提取操作以同样的方式在 DAC 包文件中生成 DAC 定义。 导出的 DAC 定义包含当前数据库中的所有对象。 如果针对最初从 DAC 部署的数据库运行导出过程,且在部署后对数据库直接进行了更改,则导出的定义与数据库中的对象集匹配,而不是与原始 DAC 中定义的内容相匹配。

  2. 导出操作从数据库中的所有表中大容量复制数据,然后将这些数据集成到导出文件中。

导出过程将 DAC 版本设置为 1.0.0.0,并将导出文件中的 DAC 说明设置为空字符串。 如果从 DAC 部署数据库,则导出文件中的 DAC 定义包含为原始 DAC 指定的名称,否则,将把 DAC 名称设置为数据库名称。

在 SQL Database 练习中有一个可用于测试导出和导入 DAC 和数据库的示例应用程序。 有关如何下载和使用此示例的说明,请参阅 Windows Azure SQL Database 的数据库导入和导出

限制和局限

只能从 SQL Database 或 SQL Server 2005 Service Pack 4 (SP4) 或更高版本的数据库导出 DAC 或数据库。

如果数据库有 DAC 中不支持的对象或包含用户,则不能导出该数据库。 有关 DAC 中支持的对象类型的详细信息,请参阅对 SQL Server 对象和版本的 DAC 支持

权限

导出 DAC 至少要求 ALTER ANY LOGIN 和数据库作用域 VIEW DEFINITION 权限,以及对 sys.sql_expression_dependencies 具有 SELECT 权限。 导出 DAC 可由 securityadmin 固定服务器角色的成员(也是从其导出 DAC 的数据库中 database_owner 固定数据库角色的成员)完成。 sysadmin 固定服务器角色的成员或名为 sa 的内置 SQL Server 系统管理员帐户也可以导出 DAC。

使用“导出数据层应用程序向导”

使用向导导出 DAC

  1. 连接到 SQL Server 的实例(无论是在内部部署中还是在 SQL Database 中)。

  2. 在**“对象资源管理器”**中,展开要从中导出 DAC 的实例的节点。

  3. 右键单击数据库名称。

  4. 单击**“任务”,然后选择“导出数据层应用程序…”**。

  5. 完成向导对话框:

    • “简介”页

    • “导出设置”页

    • “验证”页

    • “摘要”页

    • “进度”页

    • “结果”页

“简介”页

此页介绍“导出数据层应用程序向导”的各个步骤。

选项

不再显示此页。- 选中此复选框可以停止在将来显示“简介”页。

下一步 - 继续到**“选择 DAC 包”**页。

取消– 取消操作并关闭向导。

“导出设置”页

使用此页可以指定要创建 BACPAC 文件的位置。

  • 保存到本地磁盘 - 在本地计算机上的目录中创建 BACPAC 文件。 单击**“浏览…”**以导航本地计算机,或在提供的空间中指定路径。 路径名必须包含文件名和 .bacpac 扩展名。

  • 保存到 Windows Azure - 在 Windows Azure 容器中创建 BACPAC 文件。 若要验证此选项,则您必须连接到 Windows Azure 容器。 请注意,此选项还要求您为临时文件指定一个本地目录。 请注意,将在指定位置创建临时文件,并且在操作完成后,临时文件将保留在该位置。

若要指定要导出的表的子集,请使用**“高级”**选项。

“验证”页

使用验证页可查看阻止操作的任何问题。 若要继续,请解决阻止问题,然后单击**“重新运行验证”**确保验证成功。

若要继续,请单击**“下一步”**。

“摘要”页

使用此页可查看操作的指定的源和目标设置。 若要使用指定设置完成导出操作,请单击**“完成”。 若要取消导出操作并退出向导,请单击“取消”**。

“进度”页

此页将显示一个指示操作状态的进度栏。 若要查看详细状态,请单击**“查看详细信息”**选项。

“结果”页

此页将报告导出操作是成功还是失败,并显示每个操作的结果。 遇到了错误的任何操作都将在**“结果”**列中具有一个链接。 单击该链接可以查看针对该操作的错误报告。

单击**“完成”**关闭向导。

使用 .Net Framework 应用程序

使用 .Net Framework 应用程序中的 Export() 方法导出 DAC。

若要查看代码示例,请下载有关 Codeplex 的 DAC 示例应用程序

  1. 创建一个 SMO Server 对象,并且将该对象设置为包含要导出的 DAC 的实例。

  2. 打开 ServerConnection 对象,并连接到同一实例。

  3. 使用 Microsoft.SqlServer.Management.Dac.DacStore 类型的 Export 方法导出 DAC。 指定要导出的 DAC 的名称以及指向将用于放置导出文件的文件夹的路径。

请参阅

概念

数据层应用程序

从数据库中提取 DAC