导入 BACPAC 文件以创建新的用户数据库

在数据库引擎或 Windows Azure SQL Database 的新实例上,导入数据层应用程序 (DAC) 文件(.bacpac 文件),以使用其中的数据创建原始数据库的副本。 可以将导出-导入操作结合起来在各实例之间迁移 DAC 或数据库,或者创建一个逻辑备份,例如创建部署在 SQL Database 中的数据库的本地副本。

开始之前

导入过程分两个阶段生成新的 DAC。

  1. 导入过程使用存储在导出文件中的 DAC 定义创建新的 DAC 和关联的数据库,同样,DAC 部署使用 DAC 包文件中的定义创建新的 DAC。

  2. 导入过程将从导出文件中大容量复制数据。

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

SQL Server 实用工具

如果您将 DAC 导入到数据库引擎的托管实例,则在下次将实用工具收集组从该实例发送到实用工具控制点时,导入的 DAC 将合并到 SQL Server 实用工具中。 然后,该 DAC 将出现 Management Studio 中的**“实用工具资源管理器”“已部署的数据层应用程序”节点下,并且在“已部署的数据层应用程序”**详细信息页中报告。

数据库选项和设置

默认情况下,在导入过程中创建的数据库将具有来自 CREATE DATABASE 语句的几乎所有默认设置,而例外的是数据库排序规则和兼容级别设置为在 DAC 导出文件中定义的值。 DAC 导出文件将使用来自原始数据库的值。

某些数据库选项(例如 TRUSTWORTHY、DB_CHAINING 和 HONOR_BROKER_PRIORITY)不能作为导入过程的一部分进行调整。 物理属性(如文件组的数目或文件的数目和大小)不能作为导入过程的一部分进行更改。 在导入完成后,可以使用 ALTER DATABASE 语句、SQL Server Management Studio 或 SQL Server PowerShell 对数据库进行定制。 有关详细信息,请参阅数据库

限制和局限

可以将 DAC 导入到 SQL Database 或运行 SQL Server 2005 Service Pack 4 (SP4) 或更高版本的数据库引擎实例。 如果从 SQL Server 2012 或 SQL Server 2008 R2 中导出了 DAC,则 DAC 可能包含 SQL Server 2005 不支持的对象。 您不能将这些 DAC 部署到 SQL Server 2005 的实例。

先决条件

建议您不要从未知或不可信的源导入 DAC 导出文件。 此类文件可能包含恶意代码,这些代码可能会执行非预期的 Transact-SQL 代码,或者通过修改架构导致错误。 在使用来自未知或不可信源的导出文件之前,请解压缩该 DAC 并检查代码,例如存储过程或者其他用户定义的代码。 有关如何执行这些检查的详细信息,请参阅验证 DAC 包

安全性

为了提高安全性,SQL Server 身份验证登录名存储在 DAC 导出文件中且没有密码。 在导入该文件时,登录名将作为含有生成的密码的已禁用登录名创建。 若要启用这些登录名,请使用具有 ALTER ANY LOGIN 权限的登录名登录,并且使用 ALTER LOGIN 来启用该登录名并且分配可以传达给用户的新密码。 对于 Windows 身份验证登录名则无需执行此操作,因为其密码不是由 SQL Server 管理的。

权限

DAC 只能由 sysadminserveradmin 固定服务器角色的成员导入,或者由 dbcreator 固定服务器角色中具有 ALTER ANY LOGIN 权限的登录名导入。 名为 sa 的内置 SQL Server 系统管理员帐户也可以导入 DAC。 将具有登录名的 DAC 导入到 SQL Database 要求 loginmanager 或 serveradmin 角色的成员身份。 将不具有登录名的 DAC 导入到 SQL Database 要求 dbmanager 或 serveradmin 角色的成员身份。

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

若要启动向导,则使用以下步骤:

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

  2. 在**“对象资源管理器”中,右键单击“数据库”,然后选择“从 BACPAC 中导入数据库”**菜单项以启动向导。

  3. 完成向导对话框:

    • “简介”页

    • “导入设置”页

    • “数据库设置”页

    • “摘要”页

    • “进度”页

    • “结果”页

“简介”页

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

选项

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

  • “下一步”- 进入**“导入设置”**页。

  • “取消”– 取消操作并关闭向导。

“导入设置”页

使用此页可以指定要导入的 .bacpac 文件的位置。

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

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

    在浏览 Windows Azure 时,您将能够在单一帐户内的不同容器之间进行切换。 您必须指定一个单独的 .bacpac 文件以继续导入操作。 请注意,您可以按**“名称”“大小”“修改日期”**对列进行排序。

    若要继续,请指定要导入的 .bacpac 文件,然后单击**“打开”**。

“数据库设置”页

使用此页面可以指定将要创建的数据库的详细信息:

对于 SQL Server 的本地实例:

  • “新数据库名称”– 提供导入的数据库的名称。

  • “数据文件路径”– 提供数据文件的本地目录。 单击**“浏览…”**以导航本地计算机,或在提供的空间中指定路径。

  • “日志文件路径”- 提供日志文件的本地目录。 单击**“浏览…”**以导航本地计算机,或在提供的空间中指定路径。

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

对于 SQL 数据库:

  • “新数据库名称”– 提供导入的数据库的名称。

  • SQL Database 版本 – 指定 SQL Database Business 或 SQL Database Web。 有关 SQL Database 版本的详细信息,请参阅此 SQL Database 网站。

  • “最大数据库大小 (GB)”– 使用下拉菜单以指定数据库的最大大小。

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

“验证”页

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

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

“摘要”页

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

“进度”页

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

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

“结果”页

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

单击**“关闭”**关闭该向导。

请参阅

概念

数据层应用程序

导出数据层应用程序