导出 (0) 打印
全部展开

操作方法:使用 DAC 包将数据库迁移到 Azure SQL Database

更新时间: 2014年10月

数据层应用程序 (DAC) 支持将数据库的架构、代码和配置轻松地提取到单个包文件中。然后,该 DAC 包可用于在另一个系统上部署该数据库的新副本,或者将数据库定义导入到 SQL Server Data Tools (SSDT) 项目中以便进行进一步的开发。DAC 包不包含数据,仅包含数据库中对象的定义。

数据层应用程序 (DAC) 是用于开发、部署和管理数据层对象的自包含单元。通过 DAC,数据层开发人员和数据库管理员能够将 SQL Server 对象(包括数据库对象和实例对象)打包到称作 DAC 包(.dacpac 文件)的单个实体中。有两种方法可以生成 DAC 包文件。你可以生成一个 SSDT 数据库项目以便创建 DAC 包,或者可以从现有数据库中提取 DAC 包。该 DAC 包是一个压缩文件,包含数据库对象定义的 XML 表示形式或数据库的元数据。然后,你可以部署该包以便在 Microsoft Azure SQL Database 中创建该数据库的副本。

DAC 包是一个很棒的工具,可与 SQL Server Data Tools 一起使用以便实现将数据库迁移到 Azure SQL Database 所需的任何数据库更改。导入该 DAC 包以便创建一个数据库项目,进行所需的任何修改,然后生成该项目以便创建新的 DAC 包。

在迁移项目完成后还有额外的开发工作时,使用 DAC 包和 SSDT 数据库项目在迁移中传输架构是一个很好的选择。DAC 包是版本控制的,并且存在 DAC 升级过程。你可以使用 DAC 包的一个版本在迁移过程中传输架构。如果在迁移后进行了其他开发工作,则可以生成该 DAC 包的新版本,并使用这个新版本升级生产数据库。有关 DAC 升级的详细信息,请参阅升级数据层应用程序

[Top]

DAC 包不包含任何表数据,因此,只能用于迁移架构定义。必须使用另一个过程来迁移数据。有关选择数据传输过程的详细信息,请参阅 Azure SQL Database Migration Processes

如果对于迁移不需要任何数据库更改,则你可以选择提取 DAC BACPAC 文件以便迁移数据库定义以及数据。BACPAC 文件包含表数据的 JavaScript 对象符号 (JSON) 编码集,以及在 DAC 包中发现的相同的架构定义。有关详细信息,请参阅操作方法:使用 DAC BACPAC 将数据库迁移到 Azure SQL Database

在 SSDT 数据库项目中,你可以指定部署前和部署后脚本。这些脚本是可以执行任何操作(包括在部署后脚本中插入数据)的 Transact-SQL 脚本。但是,不建议使用 DAC 包部署脚本插入大量的数据。

[Top]

要使用 DAC 包,你必须已安装称为 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 中,请首先从现有数据库中提取一个包,删除在 Azure SQL Database 中不支持的对象上的任何依赖关系,然后将该 DAC 包部署到 Azure SQL Database。

  1. 从 SQL Server 数据库中提取 DAC 包:

    你可以使用 PowerShell 脚本或 SQL Server Management Studio 中的提取数据层应用程序向导从 SQL Server 数据库引擎的现有数据库中提取 DAC 包。有关执行提取的先决条件和方法的信息,请参阅从数据库中提取 DAC

    提取包括以下主要步骤:

    1. 设置 DAC 属性,包括 DAC 应用程序的名称、版本、说明和包文件位置。

    2. 验证 DAC 支持所有数据库对象。

    3. 生成包。

  2. 在部署到 Azure SQL Database 之前验证 DAC 包:

    在将 DAC 包部署到生产中之前查看该包的内容是一个很好的行为,特别是在该包不是在你的组织中开发的情况下。有关详细信息,请参阅验证 DAC 包

    DAC 包支持 Azure SQL Database 不支持的某些对象类型。你可以使用实验性的 Azure SQL Database Compatibility Assessment 服务确定某个 DAC 包是否包含 Azure SQL Database 所不支持的对象,然后再尝试将该包部署到 Azure SQL Database。有关使用该服务的详细信息和教程,请参阅 Azure SQL Database Compatibility Assessment Service

    在你可以将某一数据库迁移到 Azure SQL Database 之前,删除对象上由 DAC 提取进程或 Azure SQL Database Compatibility Assessment 服务报告为异常的任何依赖关系。从数据库中删除这些对象可能会要求更改使用该数据库的应用程序。

  3. 将 DAC 包部署到 Azure SQL Database:

    你可以使用 PowerShell 脚本或 SQL Server Management Studio 中的部署数据层应用程序向导将 DAC 包部署到 ssSDS 中。有关执行部署的先决条件以及如何执行部署的信息,请参阅部署数据层应用程序部署数据层应用程序向导也可以从 Azure SQL Database 管理门户启动。有关详细信息,请参阅数据库管理(Azure SQL Database 管理门户)

    该部署包括以下主要步骤:

    1. 选择 DAC 包。

    2. 验证包的内容。

    3. 配置数据库部署属性(如果指定 Microsoft Azure SQL Database 上的数据库)。

    4. 部署该包。

[Top]

显示:
© 2014 Microsoft