你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Data Studio 的 Azure SQL 迁移扩展迁移数据库

了解如何使用 Azure Data Studio 的 Azure SQL 迁移扩展中的统一体验。 帮助评估数据库要求,为 Azure 资源获取大小合适的 SKU 建议,并将 SQL Server 数据库迁移到 Azure。

Azure Data Studio 的 Azure SQL 迁移扩展有以下主要优势:

  • 端到端迁移体验的响应式 UI。 扩展从迁移就绪情况评估和 SKU 建议(预览版)(基于性能数据)开始。

  • 可以评估 SQL Server 实例的增强型评估机制。 扩展确定已准备好迁移到 Azure SQL 目标的数据库。

    注意

    可以使用 Azure SQL 迁移扩展来评估在 Windows 或 Linux 上运行的 SQL Server 数据库。

  • SKU 建议引擎从本地源 SQL Server 实例中收集性能数据,然后根据 Azure SQL 目标生成大小合适的 SKU 建议。

  • 由 Azure 数据库迁移服务提供支持的可靠 Azure 服务,可以协调数据移动活动,提供无缝迁移体验。

  • 可以联机运行迁移(适合需要最短停机时间的迁移)或脱机运行迁移(适合迁移期间持续停机的迁移),具体取决于业务要求。

  • 可配置自承载集成运行时,来使用你自己的计算资源访问本地环境中的源 SQL Server 实例备份文件。

  • 提供安全且改进的用户体验,用于将 TDE 数据库和 SQL/Windows 登录迁移到 Azure SQL。

有关特定迁移方案和 Azure SQL 目标的信息,请参阅下表中的教程列表:

迁移方案 迁移模式
从 SQL Server 到 Azure SQL 托管实例 Online / Offline
从 SQL Server 到 Azure 虚拟机上的 SQL Server Online / Offline
从 SQL Server 到 Azure SQL 数据库 Offline

重要

如果目标Azure SQL 数据库,可以通过 Azure 门户迁移数据库架构和数据数据库迁移服务。 此外,可以使用 SQL Server dacpac 扩展Azure Data Studio SQL 数据库 Projects 扩展等工具在开始数据迁移之前部署数据库架构。

以下视频介绍了适用于 Azure Data Studio 的 Azure SQL 迁移扩展最近新增的更新和功能:


适用于 Azure Data Studio 的 Azure SQL 迁移扩展的体系结构

Azure 数据库迁移服务是 Azure SQL 迁移扩展体系结构的核心组件。 数据库迁移服务提供可靠的迁移业务流程协调程序,用于支持数据库迁移到 Azure SQL。 可以创建数据库迁移服务的实例,也可以借助 Azure Data Studio 中的 Azure SQL 迁移扩展来使用现有实例。

数据库迁移服务使用 Azure 数据工厂的自承载集成运行时,从本地网络共享或 Azure 存储帐户访问和上传有效的备份文件。

迁移过程的工作流如下图所示:

Diagram that shows the Azure SQL Migration extension architecture.

以下列表介绍工作流中的每个步骤:

(1) 源 SQL Server:位于私有云中的 SQL Server 本地实例或公有云中虚拟机上的 SQL Server 实例。 Windows 或 Linux 支持 SQL Server 2008 及更高版本。

(2) 目标 Azure SQL:受支持的 Azure SQL 目标是 Azure SQL 托管实例、Azure 虚拟机上的 SQL Server(已在完全管理模式中注册 SQL 基础结构即服务扩展)和 Azure SQL 数据库。

(3) 网络文件共享:服务器消息块 (SMB) 网络文件共享,其中存储了要迁移的数据库的备份文件。 还支持 Azure 存储 blob 容器和 Azure 存储文件共享。

(4) Azure Data Studio:下载并安装 Azure Data Studio 的 Azure SQL 迁移扩展

(5) Azure 数据库迁移服务:协调迁移管道以将数据从本地环境移动到 Azure 的 Azure 服务。 数据库迁移服务与 Azure 数据工厂自承载集成运行时相关联,并提供注册和监视自承载集成运行时的功能。

(6) 自承载集成运行时:在可连接到源 SQL Server 实例和备份文件所在位置的计算机上安装自承载集成运行时。 数据库迁移服务提供身份验证密钥,并注册自承载集成运行时。

(7) 备份文件上传到 Azure 存储帐户:数据库迁移服务使用自承载集成运行时将有效的备份文件从本地备份位置上传到 Azure 存储帐户。 数据移动活动和管道会在迁移工作流中自动创建,以上传备份文件。

(8) 还原目标 Azure SQL 上的备份:数据库迁移服务将备份文件从 Azure 存储帐户还原到受支持的目标 Azure SQL 实例。

注意

如果迁移目标是 Azure SQL 数据库,此迁移无需备份。 数据库迁移到 Azure SQL 数据库被视为涉及数据库预创建和数据移动(由数据库迁移服务执行)的逻辑迁移。

重要

适用于 Azure Data Studio 的 Azure SQL 迁移扩展不会进行数据库备份,也不会代表你启动任何数据库备份。 实际上,该服务使用现有数据库备份文件进行迁移。

在联机迁移模式中,数据库迁移服务持续将备份源文件上传到 Azure 存储帐户,并将其还原到目标,直至完成最后一步(即直接转换到目标)。

在脱机迁移模式中,数据库迁移服务将备份源文件上传到 Azure 存储,并将其还原到目标,无需执行直接转换。

先决条件

以下部分介绍每个受支持的 Azure SQL 目标的先决条件。

  • 下载并安装 Azure Data Studio

  • 从 Azure Data Studio 市场安装 Azure SQL 迁移扩展

  • 具有一个已分配到以下内置角色之一的 Azure 帐户:

    • Azure SQL 托管实例目标实例的参与者角色,以及将服务器消息块 (SMB) 网络共享中的数据库备份文件上传到的存储帐户的参与者角色
    • 包含 Azure SQL 托管实例目标实例或 Azure 存储帐户的 Azure 资源组的读取者角色
    • Azure 订阅的所有者或参与者角色(如果要创建新的数据库迁移服务实例,则此角色是必需的)

    如果不使用这些内置角色之一,你可以分配自定义角色

    重要

    仅当配置迁移步骤时才需要 Azure 帐户。 进行评估或者在 Azure Data Studio 的迁移向导中查看 Azure 建议时不需要 Azure 帐户。

  • 创建 Azure SQL 托管实例的目标实例。

  • 确保用于连接源 SQL Server 实例的登录名是 SYSADMIN 服务器角色的成员或具有 CONTROL SERVER 权限。

  • 提供一个 SMB 网络共享、Azure 存储帐户文件共享或 Azure 存储帐户 Blob 容器,其中包含完整数据库备份文件和后续事务日志备份文件。 数据库迁移服务在数据库迁移期间使用备份位置。

    重要

    • 适用于 Azure Data Studio 的 Azure SQL 迁移扩展不会进行数据库备份,也不会代表你启动任何数据库备份。 实际上,该服务使用现有数据库备份文件进行迁移。
    • 如果数据库备份文件位于 SMB 网络共享中,请创建一个 Azure 存储帐户,数据库迁移服务可以使用该帐户将数据库备份文件上传到数据库并迁移数据库。 确保在创建数据库迁移服务实例的同一区域中创建 Azure 存储帐户。
    • 可将每个备份写入单独的备份文件或多个备份文件。 不支持将多个备份(例如完整日志和事务日志)追加到单个备份媒体。
    • 可以提供压缩的备份来减少遇到与迁移大型备份相关的潜在问题的可能性。
  • 确保运行源 SQL Server 实例的服务帐户对包含数据库备份文件的 SMB 网络共享具有读取和写入权限。

  • 如果要迁移受透明数据加密 (TDE) 保护的数据库,在还原数据库之前,必须将源 SQL Server 实例中的证书迁移到目标托管实例。 有关迁移已启用 TDE 的数据库的详细信息,请参阅教程:在 Azure Data Studio 中,将已启用 TDE 的数据库(预览版)迁移到 Azure SQL

    提示

    如果数据库包含受 Always Encrypted 保护的敏感数据,迁移过程会自动将 Always Encrypted 密钥迁移到目标托管实例。

  • 如果数据库备份在网络文件共享中,请提供一台可在其上安装自承载集成运行时的计算机,以访问和迁移数据库备份。 迁移向导提供下载链接和身份验证密钥,用于下载和安装自承载集成运行时。

    在为迁移做准备时,请确保安装自承载集成运行时的计算机启用了以下出站防火墙规则和域名:

    域名 出站端口 说明
    公有云:{datafactory}.{region}.datafactory.azure.net
    *.frontend.clouddatahub.net

    Azure 政府版:{datafactory}.{region}.datafactory.azure.us

    由世纪互联运营的 Microsoft Azure:{datafactory}.{region}.datafactory.azure.cn
    443 自承载集成运行时连接到数据库迁移服务时需要此域。

    对于在公有云中新建的数据工厂,可以在自承载集成运行时密钥中找到完全限定的域名 (FQDN),其格式为 {datafactory}.{region}.datafactory.azure.net

    对于现有数据工厂,如果在自承载集成密钥中未看到 FQDN,请改用 *.frontend.clouddatahub.net
    download.microsoft.com 443 自承载集成运行时下载更新时需要此端口。 如果已禁用自动更新,则可以跳过对此域的配置。
    *.core.windows.net 443 由连接到 Azure 存储帐户的自承载集成运行时用于从网络共享上传数据库备份

    提示

    如果数据库备份文件已在 Azure 存储帐户中提供,则在迁移过程中不需要自承载集成运行时。

  • 如果使用自承载集成运行时,请确保安装了运行时的计算机可以连接到源 SQL Server 实例和备份文件所在的网络文件共享。

  • 启用出站端口 445 以允许访问网络文件共享。 有关详细信息,请参阅有关使用自承载集成运行时的建议

  • 如果你是首次使用数据库迁移服务,请确保在订阅中注册了 Microsoft.DataMigration 资源提供程序。 可以完成注册资源提供程序的步骤。

使用自承载集成运行时进行数据库迁移的建议

  • 将单个自承载集成运行时用于多个源 SQL Server 数据库。

  • 在任何一台计算机上仅能安装一个自承载集成运行时实例。

  • 仅将一个自承载集成运行时与一个数据库迁移服务实例关联。

  • 自承载集成运行时使用安装它的计算机上的资源(内存和 CPU)。 在独立于源 SQL Server 实例的计算机上安装自承载集成运行时。 但这两台计算机应邻近。 使自承载集成运行时更接近于数据源会减少自承载集成运行时连接到数据源的时间。

  • 仅当在本地 SMB 网络共享中具有数据库备份时,才使用自承载集成运行时。 如果源数据库备份已在存储 blob 容器中,数据库迁移就不需要自承载集成运行时。

  • 在单个计算机上,建议每个自承载集成运行时最多 10 个并发数据库迁移。 若要增加并发数据库迁移的数量,请将自承载运行时横向扩展到最多四个节点,或在不同的计算机上创建单独的自承载集成运行时实例。

  • 将自承载集成运行时配置为自动更新,以及自动应用已发布的任何新功能、bug 修复和增强功能。 有关详细信息,请参阅自承载集成运行时自动更新

在 Azure 门户中监视数据库迁移进度

Azure Data Studio 的 Azure SQL 迁移扩展通过迁移向导中选择的数据库迁移服务协调所有迁移任务。

若要在 Azure 门户中监视数据库迁移:

  1. 请在 Azure 门户中,使用资源名搜索数据库迁移服务实例。

    Screenshot that shows how to search for a resource name in the Azure portal.

  2. 在数据库迁移服务实例概述中,选择“监视迁移”即可查看数据库迁移的详细信息。

    Screenshot that shows how to monitor migrations in the Azure portal.

已知问题和限制

  • 数据库迁移服务不支持覆盖 Azure 虚拟机上Azure SQL 托管实例、Azure SQL 数据库或 SQL Server 的目标实例中的现有数据库。

  • 数据库迁移服务不支持在目标上配置高可用性和灾难恢复以匹配源拓扑。

  • 不支持下列服务器对象:

    • SQL Server 代理作业
    • 凭据
    • SQL Server Integration Services 包
    • 服务器审核

    有关需要移动的元数据和服务器对象的完整列表,请参阅使数据库在另一台服务器上可用时管理元数据中提供的详细信息。

  • 不支持将 SQL Server 2008 及更早版本作为目标版本迁移到 Azure 虚拟机上的 SQL Server。

  • 如果使用 SQL Server 2014 或 SQL Server 2012,必须将源数据库备份文件存储在 Azure 存储 blob 容器中,而不是使用网络共享选项。 将备份文件存储为页 blob。 块 blob 仅在 SQL Server 2016 及更高版本中受支持。

  • 不能使用在 Azure 数据工厂中创建的现有自承载集成运行时通过数据库迁移服务进行数据库迁移。 最初,使用 Azure Data Studio 的 Azure SQL 迁移扩展创建自承载集成运行时。 可以在将来的数据库迁移中重复使用此自承载集成运行时。

  • Azure Data Studio 目前支持用于连接到源 SQL Server 实例的 Microsoft Entra ID/Windows 身份验证 和 SQL 登录名。 对于 Azure SQL 目标,仅支持 SQL 登录名。

定价

  • Azure 数据库迁移服务可以免费与 Azure Data Studio 的 Azure SQL 迁移扩展一起使用。 可以使用数据库迁移服务免费迁移多个 SQL Server 数据库。

  • 将数据库从本地环境迁移到 Azure 时,不会评估数据移动或数据流入量成本。 如果源数据库从另一个区域或从 Azure 虚拟机移入,可能会基于带宽提供程序和路由方案产生带宽费用

  • 使用虚拟机或本地服务器安装 Azure Data Studio。

  • 需要自承载集成运行时才能从本地网络共享访问数据库备份。

上市区域

有关使用 Azure Data Studio 的 Azure SQL 迁移扩展(由 Azure 数据库迁移服务提供支持)支持数据库迁移的 Azure 区域列表,请参阅按区域提供的 Azure 产品

后续步骤