销售电话: 1-800-867-1380

如何使用 DAC BACPAC 将数据库迁移到 Azure SQL Database

更新时间: 2014年4月

你可以通过以下方式迁移 SQL Server 数据库中的架构和数据:从现有数据库导出 BACPAC,将 BACPAC 文件放入 Blob 服务帐户,然后将 BACPAC 导入 Microsoft Azure SQL Database。

作者:Shaun Tinline-Jones
审校:Adam Mahood

数据层应用程序 (DAC) 是用于开发、部署和管理数据层对象的自包含单元。使用 DAC,数据层开发人员和数据库管理员可以将 Microsoft SQL Server 对象(包括数据库对象和实例对象)打包到名为 DAC 包(.dacpac 文件)的单个实体。BACPAC 格式扩展了 DAC 包格式,除了标准 DAC 包内容外,还可以包含 BACPAC 特定的元数据和 JavaScript 对象符号 (JSON) 编码的表数据。你可以将 SQL Server 数据库打包到 BACPAC 文件,然后使用该文件将架构和表数据迁移到 Microsoft Azure SQL Database。

DAC 包和 BACPAC 针对不同的情形。

  1. BACPAC 包含架构和数据,但不支持导入到数据库项目时修改架构。BACPAC 的主要用途是将数据库从一个数据库服务移到另一个(数据库引擎或 Microsoft Azure SQL Database 的实例)。BACPAC 还可以用于存档采用开放格式的现有数据库。因此,当数据库不需要架构更改时,使用该工具进行迁移比较合适。

  2. DAC 包只包含架构信息,但你可以将包导入 SSDT 数据库项目以进行进一步开发。DAC 包的主要用途是将数据库架构部署到开发、测试和生产环境。

Azure SQL Database 的导入和导出服务可以在 Microsoft Azure SQL Database 上的数据库和 Azure Blob 服务之间直接导入或导出 BACPAC 文件。Azure SQL Database 的导入和导出服务为提交请求提供公共 REST 端点。Azure 平台门户提供一个接口来调用 SQL Database 的导入和导出服务。

[Top]

DAC BACPAC 只能用于以下情形下的迁移:不需要数据库更改即可解决 Microsoft Azure SQL Database 上不支持的对象问题。如果需要这类更改,则请考虑:

  1. 使用 DAC 包和 SQL Server Data Tools (SSDT) 修改数据库架构和执行在部署到 Microsoft Azure SQL Database 前所需的更改。有关详细信息,请参阅如何使用 DAC 包将数据库迁移到 Windows Azure SQL Database

  2. 在导出 DAC BACPAC 前在源数据库中执行所有架构更改。

有一个生成不支持的命令提示实用工具的“SQL DAC 示例”项目,该实用工具可用于导出和导入 BACPAC。你可以从 CodePlex 下载“SQL DAC 示例”项目。该项目需要 DAC Framework。有关使用从该项目生成的实用工具的详细信息,请参阅 DAC Framework 客户端工具参考

[Top]

要使用 DAC BACPAC,你必须已安装称为“DAC Framework”的客户端 DAC 软件。DAC Framework 随 SQL Server Data Tools 以及 SQL Server Management Studio 之类的 SQL Server 实用工具一起安装。使用 Azure SQL Database 时,建议使用 SQL Server Data Tools 和 SQL Server 2012 中包含的 DAC Framework 版本。你还可以通过从 SQL Server 2012 功能包安装这三个包来升级早期版本的 DAC Framework:

  • Microsoft System CLR Types for Microsoft SQL Server 2012

  • Microsoft SQL Server 2012 Transact-SQL 脚本 DOM

  • Microsoft SQL Server 2012 数据层应用程序框架

有关 DAC Framework 版本和 SQL Server 版本之间的兼容性信息,请参阅对 SQL Server 对象和版本的 DAC 支持

[Top]

以下是将数据库从 SQL Server 迁移到 Azure SQL Database 的步骤:

  1. 从现有的 SQL Server 数据库导出 BACPAC 文件

    可以使用 SQL Server 2012 版本的 SQL Server Management Studio 中的“导出数据层应用程序”向导将 BACPAC 文件直接导出到 Blob 服务帐户。要启动向导,请在对象资源管理器中右键单击相应数据库,选择“任务”,然后选择“导出数据层应用程序”。在“导出设置”页上,使用控件“保存到 Azure”指定 Blob 服务位置。(可选)可以使用“SQL DAC 示例”实用工具。有关从 SQL Server 导出 BACPAC 的详细信息,请参阅导出数据层应用程序

    你必须具有 存储帐户才能将 BACPAC 导出到 存储区。

  2. 将 BACPAC 文件移到 Azure Blob 服务

    如果使用“SQL DAC 示例”将 BACPAC 导出到计算机的本地文件并要使用 将 BACPAC 导入 ssSDS,请将 BACPAC 文件移到 Blob 帐户。你可以使用 Azure 管理平台工具Microsoft Codename “Data Transfer” 复制该文件。

    如果你计划使用“SQL DAC 示例”导入到 Microsoft Azure SQL Database,则不需要将 BACPAC 文件复制到 Blob 服务。

  3. 将 BACPAC 导入到 Microsoft Azure SQL Database

    一旦导出后,可以导入 BACPAC 以在 Microsoft Azure SQL Database 上创建数据库。你可以使用 导入 Blob 服务中存储的 BACPAC。在功能区,选择“导入”以启动“从 Windows Storage 导入数据库”窗口。(可选)可以使用“SQL DAC 示例”导入保存到计算机本地文件的 BACPAC。

[Top]

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈
显示:
© 2014 Microsoft