您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

迁移指南:SQL Server 到 Azure VM 上的 SQL Server

适用于: Azure VM 上的 SQL Server

本迁移指南介绍如何通过以下方式发现、评估用户数据库并将其从 SQL Server 迁移到 Azure 虚拟机 (VM) 上的 SQL Server 实例:使用备份和还原和利用数据库迁移助手 (DMA) 进行评估的日志传送功能 。

你可以迁移在本地或以下位置运行的 SQL Server:

  • 虚拟机上的 SQL Server
  • Amazon Web Services (AWS) EC2
  • Amazon 关系数据库服务 (AWS RDS)
  • 计算引擎 (Google Cloud Platform - GCP)

有关其他迁移策略的信息,请参阅 SQL Server VM 迁移概述

迁移流程

先决条件

迁移到 Azure VM 上的 SQL Server 需要以下各项:

迁移前

在开始迁移之前,请先了解 SQL 环境的拓扑并评估所需迁移的可行性。

发现

Azure Migrate 会评估是否适合迁移本地计算机,会根据性能进行大小调整,并提供有关在本地运行的成本估算。 若要规划迁移,请使用 Azure Migrate 来确定现有数据源以及 SQL Server 实例所用功能的相关详细信息。 此过程涉及扫描网络,以使用所用版本和功能标识组织中的所有 SQL Server 实例。

重要

为 SQL Server 实例选择目标 Azure 虚拟机时,请务必考虑 Azure VM 上 SQL Server 的性能准则

有关其他发现工具,请参阅可用于数据迁移方案的服务和工具

评估

备注

如果要大规模评估 VMWare 上的整个 SQL Server 数据资产,请使用 Azure Migrate 获取 Azure SQL 部署建议、目标规模调整和每月估算。

发现所有数据源之后,请使用数据迁移助手 (DMA) 来评估要迁移到 Azure VM 上 SQL Server 实例的本地 SQL Server 实例,以了解源实例和目标实例之间的差距。

备注

如果不升级 SQL Server 的版本,请跳过此步骤并转到迁移部分。

评估用户数据库

数据迁移助手 (DMA) 可检测可能会影响新版本 SQL Server 中数据库功能的兼容性问题,从而帮助你迁移到新式数据平台。 DMA 为目标环境提供性能和可靠性改进建议,并可便于将架构、数据和登录对象从源服务器迁移到目标服务器。

请参阅评估了解详细信息。

重要

根据评估类型,源 SQL Server 上所需的权限可能有所不同。

  • 对于功能奇偶一致性顾问,提供的用于连接到源 SQL Server 数据库的凭据必须是 sysadmin 服务器角色的成员。
  • 对于兼容性问题顾问,提供的凭据必须至少具有 CONNECT SQLVIEW SERVER STATEVIEW ANY DEFINITION 权限。
  • 在运行评估之前,DMA 会突出显示所选顾问所需的权限。

评估应用程序

通常,应用程序层访问用户数据库来保存和修改数据。 DMA 可以通过两种方式评估应用程序的数据访问层:

在评估用户数据库期间,使用 DMA 导入捕获的跟踪文件或 DAMT 文件。

规模评估

如果有多个服务器需要进行 DMA 评估,则可以通过命令行接口自动执行该过程。 使用该接口,可以提前为迁移范围内的每个 SQL Server 实例准备评估命令。

对于跨大型资产的摘要报告,现在可以将数据迁移助手 (DMA) 评估合并到 Azure Migrate 中

利用 DMA 重构数据库

系统基于 DMA 评估结果,可能会为你提供一系列建议,以确保用户数据库在迁移后能够正常运行。 DMA 提供了有关受影响对象的详细信息以及用于解决每个问题的资源。 建议在生产迁移之前解决所有中断性变更和行为更改。

对于不推荐使用的功能,如果想要避免进行这些更改并加快迁移速度,可以选择在其原始兼容性模式下运行用户数据库。 但是,这会阻止升级数据库兼容性,直到解决不推荐使用的项为止。

迁移后阶段,强烈建议编写所有 DMA 修补程序的脚本并将其应用于目标 SQL Server 数据库。

注意

并非所有 SQL Server 版本都支持所有兼容性模式。 检查目标 SQL Server 版本是否支持所选的数据库兼容性。 例如,SQL Server 2019 不支持兼容性级别为 90 的数据库(也就是 SQL Server 2005)。 这些数据库至少需要升级到兼容性级别 100。

Migrate

完成预迁移步骤后,即可迁移用户数据库和组件。 使用首选的迁移方法迁移数据库。

下面提供使用备份和还原执行迁移的步骤,或使用备份和还原以及日志传送来实现最短停机时间迁移的步骤。

备份和还原

若要使用备份和还原执行标准迁移,请按照下列步骤操作:

  1. 根据你的要求,建立与 Azure VM 上目标 SQL Server 的连接。 请参阅连接到 Azure 上的 SQL Server 虚拟机 (Resource Manager)
  2. 暂停/停止那些使用要迁移的数据库的任何应用程序。
  3. 使用单用户模式确保用户数据库处于非活动状态。
  4. 执行到本地位置的完整数据库备份。
  5. 使用远程桌面、Azure 数据资源管理器AZCopy 命令行实用程序将本地备份文件复制到 VM(建议使用大于 2 TB 的备份)。
  6. 将完整的数据库备份还原到 Azure VM 上的 SQL Server。

日志传送(最大限度地减少停机时间)

要使用备份、还原和日志传送执行最短的停机时间迁移,请按照下列步骤操作:

  1. 根据你的要求,建立与 Azure VM 上目标 SQL Server 的连接。 请参阅连接到 Azure 上的 SQL Server 虚拟机 (Resource Manager)
  2. 确保要迁移的本地用户数据库处于完整恢复模式或大容量日志恢复模式。
  3. 执行到本地位置的完整数据库备份,并修改现有的任何完整数据库备份作业,以使用 COPY_ONLY 关键字来保留日志链。
  4. 使用远程桌面、Azure 数据资源管理器AZCopy 命令行实用程序将本地备份文件复制到 VM(建议使用大于 1 TB 的备份)。
  5. 在 Azure VM 的 SQL Server 上还原完整数据库备份。
  6. 在本地数据库和 Azure VM 上的目标 SQL Server 之间设置日志传送。 请不要重新初始化数据库,因为在前面的步骤中已经完成了此操作。
  7. 直接转换到目标服务器。
    1. 暂停/停止那些使用要迁移的数据库的应用程序。
    2. 使用单用户模式确保用户数据库处于非活动状态。
    3. 准备就绪后,对本地数据库执行日志传送控制的故障转移,将其故障转移到 Azure VM 上的目标 SQL Server。

迁移用户数据库外部的对象

要在迁移后无缝操作用户数据库,可能还需要其他 SQL Server 对象。

下表提供了可在迁移用户数据库之前或之后完成的一系列组件和建议的迁移方法:

功能 组件 迁移方法
数据库 建模 SQL Server Management Studio 的脚本
TempDB 计划将 TempDB 移动到 Azure VM 临时磁盘 (SSD) 以获得最佳性能。 请确保选择具有足够的本地 SSD 的 VM 大小来容纳 TempDB。
具有文件流的用户数据库 使用备份和还原方法进行迁移。 DMA 不支持具有文件流的数据库。
安全性 SQL Server 和 Windows 登录名 使用 DMA 迁移用户登录名
SQL Server 角色 SQL Server Management Studio 的脚本
加密提供程序 建议改用 Azure Key Vault 服务。 此过程使用 SQL VM 资源提供程序
服务器对象 备份设备 通过 Azure 备份服务用数据库备份进行替换,或将备份写入 Azure 存储(SQL Server 2012 SP1 CU2 及更高版本)。 此过程使用 SQL VM 资源提供程序
链接服务器 使用 SQL Server Management Studio 编写脚本。
服务器触发器 使用 SQL Server Management Studio 编写脚本。
复制 本地发布 使用 SQL Server Management Studio 编写脚本。
本地订阅服务器 使用 SQL Server Management Studio 编写脚本。
Polybase Polybase 使用 SQL Server Management Studio 编写脚本。
Management 数据库邮件 使用 SQL Server Management Studio 编写脚本。
SQL Server 代理 作业 使用 SQL Server Management Studio 编写脚本。
警报 使用 SQL Server Management Studio 编写脚本。
运算符 使用 SQL Server Management Studio 编写脚本。
代理 使用 SQL Server Management Studio 编写脚本。
操作系统 文件存储、文件共享 记下 SQL Server 使用的任何其他文件或文件共享并在 Azure VM 目标上对其进行复制。

迁移后

成功完成迁移阶段后,请执行一系列的迁移后任务,确保一切功能尽可能顺利高效地运行。

修正应用程序

将数据迁移到目标环境后,以前使用源的所有应用程序都需要开始使用目标。 在某些情况下,实现这一点需要对应用程序进行更改。

将任何数据库迁移助手建议的修补程序应用于用户数据库。 建议为这些程序编写脚本,以确保一致性并允许实现自动化。

执行测试

数据库迁移的测试方法包括执行以下活动:

  1. 开发验证测试。 使用 SQL 查询来测试数据库迁移。 创建对源数据库和目标数据库都运行的验证查询。 验证查询应涵盖已定义的范围。
  2. 设置测试环境。 测试环境应包含源数据库和目标数据库的副本。 请确保隔离测试环境。
  3. 运行验证测试。 针对源和目标运行验证测试,然后分析结果。
  4. 运行性能测试。 针对源和目标运行性能测试,然后分析和比较结果。

提示

借助数据库实验助手 (DEA) 评估目标 SQL Server 的性能。

优化

对于协调任何与数据准确性和完整性有关的问题以及解决潜在的工作负载性能问题,迁移后阶段至关重要。

有关这些问题的详细信息和用于缓解这些问题的具体步骤,请参阅以下资源:

后续步骤