教程:使用 Azure DMS 将 SQL Server 迁移到 Azure 虚拟机上的 SQL Server(联机)

可以使用 Azure 数据库迁移服务(Azure DMS)通过 Azure 门户执行从 SQL Server 本地实例到 什么是 Azure Windows 虚拟机上的 SQL Server 的联机数据库迁移?(Azure VM)。

注释

本教程使用联机迁移模式。 有关脱机迁移选项,请参阅教程:使用 Azure DMS 将 SQL Server 迁移到 Azure 虚拟机上的 SQL Server(脱机)。

本教程中,您将学习如何:

  • 在 Azure 门户中启动“迁移到 Azure SQL”向导。
  • 指定 Azure VM 上源 SQL Server、备份位置和目标 SQL Server 的详细信息。
  • 配置向导以访问源服务器和备份。
  • 开始迁移并监视迁移的进度。
  • 准备就绪后执行迁移直接转换。

迁移选项

以下部分介绍如何在 Azure SQL 迁移扩展或 Azure 门户中使用 Azure 数据库迁移服务。

先决条件

在开始学习本教程之前:

  • 确保可以访问 Azure 门户

  • 确保在您的订阅中注册Microsoft.DataMigration资源提供程序。

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

    • Azure VM 上 SQL Server 的目标实例以及从服务器消息块(SMB)网络共享上传数据库备份文件的存储帐户的参与者

    • 包含 Azure VM 或 Azure 存储帐户上 SQL Server 目标实例的 Azure 资源组的读取者角色。

    • Azure 订阅的所有者参与者角色。

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

    使用 Azure 门户 进行迁移时,登录用户必须在保存备份文件的 Blob 容器上具有 存储 Blob 数据读取器 访问权限,才能在迁移设置过程中列出文件和文件夹。

  • 创建 Azure 虚拟机上的 SQL Server 的目标实例。

    如果您已有现有的 Azure 虚拟机,请在完全管理模式下将其附加到 SQL Server IaaS 代理扩展

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

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

    • 始终使用专用存储帐户进行迁移。 与其他工作负荷共享可能会导致冲突和安全风险。

    • 迁移完成后,轮换存储帐户密钥以确保备份安全,或者不再需要存储帐户时将其删除。

    • Azure DMS 不会进行数据库备份,也不会代表你启动任何数据库备份。 实际上,该服务使用现有数据库备份文件进行迁移。

    • 如果数据库备份文件位于 SMB 网络共享中, 请创建一个 Azure 存储帐户 ,该帐户允许 Azure DMS 上传数据库备份文件,以及迁移数据库。 请确保在创建 Azure DMS 实例的同一区域中创建 Azure 存储帐户。

    • 可将每个备份写入单独的备份文件或多个备份文件。 不支持将多个备份(例如完整日志和事务日志)追加到单个备份媒体。

    • 可以提供压缩的备份来减少遇到与迁移大型备份相关的潜在问题的可能性。

  • 确保运行源 SQL Server 实例的服务帐户对包含数据库备份文件的 SMB 网络共享具有读取和写入权限。

  • 如果要迁移受透明数据加密保护的数据库(TDE),请在迁移数据之前将证书从源 SQL Server 实例迁移到 Azure VM 上的 SQL Server。 有关详细信息,请参阅 将受 TDE 保护的数据库移到另一个 SQL Server

    小窍门

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

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

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

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

    Azure 政府版:{datafactory}.{region}.datafactory.azure.us
    由 21Vianet 运营的 Microsoft Azure:{datafactory}.{region}.datafactory.azure.cn
    443 自承载集成运行时需要连接到 Azure DMS。
    对于在公有云中新建的数据工厂,可以在自承载集成运行时密钥中找到完全限定的域名 (FQDN),其格式为 {datafactory}.{region}.datafactory.azure.net
    对于现有数据工厂,如果在自承载集成密钥中未看到 FQDN,请改用 *.frontend.clouddatahub.net
    download.microsoft.com 443 自承载集成运行时下载更新时需要此端口。 如果禁用自动更新,则可以跳过配置此域。
    *.core.windows.net 443 由自承载集成运行时使用,连接到 Azure 存储帐户,以从网络共享设备上传数据库备份。

    小窍门

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

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

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

  • 如果您是首次使用 Azure DMS,请确保 Microsoft.DataMigration您的订阅中已经注册资源提供程序

启动新迁移

本教程介绍从 SQL Server 联机迁移到 Azure 虚拟机(Azure VM)上的 SQL Server。

若要开始新的迁移,请执行以下操作:

  1. 在 Azure 门户中转到 Azure 数据库迁移服务 。 使用 +Create 创建数据库迁移服务的新实例,或选择现有实例。 然后,转到数据库迁移服务实例。

  2. 在 Azure DMS 实例的“ 概述 ”窗格中,选择“ 新建迁移”。

    Azure 数据库迁移仪表板的屏幕截图。

  3. “选择新的迁移 方案”下,选择源、目标服务器类型、备份文件存储位置、迁移模式作为 联机迁移,然后选择 “选择”。

    数据库备份可以位于本地网络共享或 Azure 存储 Blob 容器中。

    新迁移方案的屏幕截图。

    如果在本地网络共享中提供数据库备份,请在向导的下一步中设置自承载集成运行时。 需要自承载集成运行时才能访问源数据库备份、检查备份集的有效性,并将备份上传到 Azure 存储帐户。 如果数据库备份已在 Azure 存储 Blob 容器中,则不需要自承载集成运行时。

    在联机迁移模式下,源 SQL Server 数据库可用于读取和写入活动,而数据库备份文件在 Azure VM 上 SQL Server 的目标实例上持续还原。 应用程序停机时间限制为迁移结束时的直接转换持续时间。

  4. Azure SQL 虚拟机联机 Blob 迁移向导中,请按照以下步骤操作:

    1. “源详细信息 ”选项卡上,输入源 SQL Server 实例的详细信息,然后选择“ 下一步:连接到源 SQL Server”。

      源跟踪的屏幕截图。

    2. “选择迁移目标 ”选项卡上,输入订阅、资源组和目标 SQL Server VM 的详细信息。 然后选择“ 下一步:数据源配置”。

    3. 数据源配置 步骤中,选择数据库备份的位置。 数据库备份可以位于本地网络共享或 Azure 存储 Blob 容器中。

      如果在本地网络共享中提供数据库备份,请在向导的下一步中设置自承载集成运行时。 需要自承载集成运行时才能访问源数据库备份、检查备份集的有效性,并将备份上传到 Azure 存储帐户。 如果数据库备份已在 Azure 存储 Blob 容器中,则不需要自承载集成运行时。

      • 对于存储在 Azure 存储 Blob 容器中的备份,请输入或选择以下信息:

        Name Description
        资源组 备份文件所在的资源组。
        存储帐户详细信息 备份文件的存储帐户。
        blob 容器 备份文件所在的 Blob 容器。
        Folder 备份文件所在的文件夹。
        目标数据库名称 可以在迁移过程中更改目标数据库名称。

        如果启用了环回检查功能并且源 SQL Server 和文件共享位于同一台计算机上,则源无法访问 FQDN 的文件共享。 若要解决此问题,请禁用环回检查功能

        在线Blob迁移向导数据源配置的屏幕截图。

      • 对于位于网络共享上的备份,请在相应的页面上输入以下附加信息。

        Name Description
        源服务器名称 源服务器的 FQDN 或 IP。 确保运行源 SQL Server 实例的服务帐户在网络共享上具有读取权限。
        身份验证类型 选择身份验证类型:SQL 或 Windows
        源凭据 - 用户名 用于连接到源 SQL Server 实例和验证备份文件的凭据(Windows 和 SQL身份验证)。
        源凭据 - 密码 用于连接到源 SQL Server 实例和验证备份文件的凭据(Windows 和 SQL身份验证)。
        包含备份的网络共享位置 包含完整备份文件和事务日志备份文件的网络共享位置。 迁移过程会自动忽略网络共享中不属于有效备份集的任何无效文件或备份文件。
        拥有网络共享位置读取权限的 Windows 用户帐户 拥有网络共享读取权限以检索备份文件的 Windows 凭据(用户名)。
        密码 拥有网络共享读取权限以检索备份文件的 Windows 凭据(密码)。
        目标数据库名称 可以在迁移过程中更改目标数据库名称。

备份存储方案

适用于 Azure Data Studio 的 Azure SQL 迁移扩展不再要求对 Azure 存储帐户网络设置进行特定配置即可将 SQL Server 数据库迁移到 Azure。

确保资源可以访问 Azure 存储帐户。 根据数据库备份位置和所需的存储帐户网络设置,请参阅下表了解各种迁移方案和网络配置:

Scenario SMB 网络共享 Azure 存储帐户容器
已从所有网络启用 无额外步骤 无额外步骤
已从所选虚拟网络和 IP 地址启用 本地自承载集成运行时 (SHIR) 存储在 Azure 存储容器中的备份
已从所选虚拟网络和 IP 地址 + 专用终结点启用 Azure VM 自托管集成运行时 (SHIR) 存储在 Azure 存储容器中的备份(专用端点)

本地自托管集成运行时(SHIR)

如果在本地网络上安装 SHIR,请执行以下步骤:

  1. 从 SHIR 计算机连接到 Azure 门户。

  2. 打开 Azure 存储帐户,然后转到“ 网络 ”窗格。

  3. 确保已将公用网络访问设置为启用并允许从所选虚拟网络和 IP 地址访问

  4. “防火墙 ”部分中,选中“ 添加客户端 IP 地址 ”复选框。

  5. 输入主机的客户端 IP 地址,然后选择“ 保存”。

创建数据库迁移服务实例

步骤 1:Azure 门户中,导航到“Azure 数据库迁移服务”页。 创建 Azure 数据库迁移服务的新实例,或重复使用之前创建的现有实例。

使用数据库迁移服务的现有实例

若要使用数据库迁移服务的现有实例,请执行以下操作:

  • 在 Microsoft Azure 门户中的“Azure 数据库迁移服务”下,选择要使用的数据库迁移服务的现有实例,确保它存在于正确的资源组和区域中。

    显示数据库迁移服务概述的屏幕截图。

创建数据库迁移服务的新实例

若要创建数据库迁移服务的新实例,请执行以下操作:

  1. 在 Microsoft Azure 门户中的“Azure 数据库迁移服务”下,选择“创建”。

    显示数据库迁移服务创建选项的屏幕截图。

  2. 在“选择迁移方案和数据库迁移服务”中,选择所需的输入(如源服务器和目标服务器类型),选择“数据库迁移服务”,然后选择“选择”。

    显示数据库迁移服务迁移场景的屏幕截图。

  3. 在下一个屏幕“创建数据迁移服务”上,选择订阅和资源组,然后选择“位置”,输入数据库迁移服务名称。 选择 审阅 + 创建。 这会创建 Azure 数据库迁移服务。

    显示数据库迁移服务所需输入详细信息的屏幕截图。

  4. 如果需要自承载集成运行时 (SHIR),请在数据库迁移服务的概述页上,在“设置”下选择“集成运行时”,然后完成以下步骤:

    1. 选择“配置集成运行时”,然后选择“下载并安装集成运行时”链接,以在 Web 浏览器中打开下载链接。 下载集成运行时,然后将其安装在满足连接到源 SQL Server 实例的先决条件的计算机上。 有关详细信息,请参阅 SHIR 建议

      显示“下载并安装集成运行时”链接的屏幕截图。

      安装完成后,Microsoft Integration Runtime Configuration Manager 会自动打开以开始注册过程。

    2. 在“身份验证密钥”表中,复制向导中提供的身份验证密钥之一,并将其粘贴到 Microsoft Integration Runtime Configuration Manager 中。

      突出显示向导中的身份验证密钥表的屏幕截图。

      如果该身份验证密钥有效,则 Integration Runtime Configuration Manager 中会显示一个绿色勾选图标。 绿色勾选标记指示可以继续注册。

      注册自承载集成运行时后,关闭 Microsoft Integration Runtime Configuration Manager。 在“设置”>“集成运行时”下,可能需要几分钟时间才能在 Microsoft Azure 门户上反映数据库迁移服务的节点详细信息。

      突出显示 Azure 门户上的 SHIR 状态的屏幕截图。

      注释

      有关自承载集成运行时的详细信息,请参阅创建和配置自承载集成运行时

开始数据库迁移

“数据库迁移摘要 ”选项卡上,查看详细信息,然后选择“ 开始迁移”。 服务启动数据库迁移,并自动将你返回到 Azure DMS 仪表板。

联机 Blob 迁移向导数据迁移摘要的屏幕截图。

监视数据库迁移

  1. 若要监视数据库迁移,请在数据库迁移服务实例的 “概述 ”窗格中,选择“ 监视迁移”。

    Azure 门户中 Azure 数据库迁移服务概述的屏幕截图。

  2. 若要监视数据库迁移,请在 DMS 实例的“ 概述 ”窗格中,选择“ 监视迁移”。

  3. 在“迁移”选项卡下,可以跟踪正在进行、已完成和失败的迁移(如果有),也可以查看所有数据库迁移。 在菜单栏中,选择“刷新”以更新迁移状态。

    监视迁移的屏幕截图。

每次迁移状态刷新时,Azure DMS 都会返回最新的已知迁移状态。 下表描述了可能的状态:

状态 Description
已到达 备份文件已到达源备份位置并已经过验证。
正在上传 集成运行时正在将备份文件上传到 Azure 存储。
已上传 备份文件已上传到 Azure 存储。
正在还原 该服务正在将备份文件还原到 Azure VM 上的 SQL Server。
恢复 备份文件已成功在 Azure VM 上的 SQL Server 上还原。
已取消 迁移过程已取消。
已忽略 已忽略备份文件,因为它不属于有效的数据库备份链。

完成迁移直接转换

本教程的最后一步是完成直接转换迁移。 完成后,可确保 Azure 虚拟机上 SQL Server 中迁移的数据库可供使用。 连接到数据库的应用程序需要停机时间,而进行直接转换的时间需要与业务或应用程序利益干系人仔细规划。

若要完成直接转换:

  1. 停止传入源数据库的所有事务。

  2. 更改应用程序配置,使之指向 Azure 虚拟机上 SQL Server 中的目标数据库。

  3. 在指定的备份位置执行源数据库的最终日志备份。

  4. 使源数据库处于只读模式。 这样一来,用户可以从数据库读取数据,但不能修改数据库。

  5. 确保所有数据库备份在监视详细信息页中都显示为“还原”状态。

  6. 在监视详细信息页中选择“完成直接转换”。

在直接转换过程中,迁移状态将从“正在进行”更改为“正在完成” 。 直接转换过程完成后,迁移状态将更改为“成功”。 数据库迁移成功,迁移的数据库可供使用。