将 SQL Server 升级到最新版本

在本指南中,你将了解如何使用数据迁移助手 (DMA) 将用户数据库从早期版本的 SQL Server 升级到 SQL Server 2022 (16.x)。

有关其他迁移指南,请参阅 Azure 数据库迁移

先决条件

在开始迁移项目之前,请务必满足相关先决条件。 了解升级 SQL Server 支持的版本和注意事项。

若要准备迁移,请下载并安装以下项:

预迁移

确认源环境受支持并满足任何先决条件后,可以开始预迁移阶段。 该过程涉及清点需要迁移的数据库。 接下来,评估数据库是否存在潜在的迁移问题或阻碍因素,然后解决可能已发现的任何迁移问题或阻碍因素。 以下两个部分介绍了发现、评估的预迁移步骤。

发现

Azure Migrate:发现和评估工具可发现并评估要迁移到 Azure 的本地 VMware VM、Hyper-V VM 和物理服务器。

可以使用此工具执行以下步骤:

  • Azure 迁移就绪性:评估本地服务器、SQL Server 实例和 Web 应用是否已准备好迁移到 Azure。
  • Azure 大小调整:估算迁移后的 Azure VMs/Azure SQL 配置大小/Azure VMware Solution 节点数量。
  • Azure 成本估算:估算在 Azure 中运行本地服务器的成本。
  • 依赖关系分析:确定跨服务器依赖关系和优化策略,以便将相互依赖的服务器移动到 Azure。 详细了解使用依赖关系分析进行的发现和评估。

发现和评估工具使用本地部署的轻型 Azure Migrate 设备

  • 该设备在 VM 或物理服务器上运行。 可以使用下载的模板轻松安装它。
  • 设备会发现本地服务器。 它还持续向 Azure Migrate 发送服务器元数据和性能数据。
  • 设备发现是无代理的。 无需在已发现的服务器上安装任何组件。
  • 完成设备发现后,可将发现的服务器收集到组中,然后对每个组运行评估。

评估和转换

确定数据源之后,下一步是评估本地 SQL Server 实例。 在升级 SQL Server 实例之前,请使用数据迁移助手 (DMA) 评估源数据库。

若要使用 DMA 创建评估,请完成以下步骤。

  1. 下载 DMA 工具,然后安装。

  2. 创建一个新评估项目。

    1. 选择“新建”(+) 图标,选择“评估”项目类型,指定项目名称,选择“SQL Server”作为源和目标,然后选择“创建”

      新评估的屏幕截图。

    2. 选择计划要迁移到并需要针对其运行评估的目标 SQL Server 版本,选择以下一种或两种评估报表类型(“兼容性问题”和“新功能建议”),然后选择“下一步”

      报表类型的屏幕截图。

    3. 在“连接到服务器”中,指定要连接到的 SQL Server 实例的名称,指定身份验证类型和连接属性,然后选择“连接”

    4. 在“添加源”面板中,选择要评估的数据库,然后选择“添加”。

      “添加数据库”的屏幕截图。

    5. 选择“开始评估”

      现在等待评估结果;评估的持续时间取决于添加的数据库数量和每个数据库的架构大小。 结果一旦可用,就会按数据库显示。

    6. 选择已完成评估的数据库,然后使用切换器在“兼容性问题”和“功能建议”之间切换。

      评估结果的屏幕截图。

    7. 通过分析在“中断性变更”、“行为变更”和“已弃用的功能”下确定的每个问题的受影响对象及其详细信息,查看兼容性问题。

    8. 查看“性能”、“存储”和“安全”方面的功能建议。

      功能建议涵盖了各种功能,例如内存中 OLTP 和列存储、Always Encrypted (AE)、动态数据掩码 (DDM) 以及透明数据加密 (TDE)。

  3. 查看评估结果。

    1. 完成所有数据库评估后,选择“导出报表”将结果导出到 JSON 或 CSV 文件中,供在你方便时分析数据。

可选 A/B 测试

此步骤为可选步骤,对于完成迁移不是必需的。 若要使用 DEA 进行数据库迁移测试,请完成以下步骤。

  1. 下载 DMA 工具,然后安装。

  2. 运行跟踪捕获

    1. 在左侧导航树上,选择相机图标以转到“所有捕获”

      新跟踪捕获的屏幕截图。

    2. 若要开始新的捕获,请选择“新建捕获”

    3. 若要配置捕获,请指定跟踪名称、持续时间、SQL Server 实例名称、数据库名称以及用于在运行 SQL Server 的计算机上存储跟踪文件的共享位置。

      提供跟踪捕获输入的屏幕截图。

    4. 选择“开始”以开始跟踪捕获。

  3. 运行跟踪重播

    1. 在左侧导航树上,选择播放图标以转到“所有重播”。

      新跟踪重播的屏幕截图。

    2. 若要开始新的重播,请选择“新建重播”

    3. 若要配置重播,请指定重播名称、控制器计算机名称、指向控制器上源跟踪文件的路径、SQL Server 实例名称,以及用于在运行 SQL Server 的计算机上存储目标跟踪文件的路径。

    4. 选择“开始”以开始重播捕获。

  4. 创建新的分析报表

    1. 在左侧导航树上,选择清单图标以转到“分析报表”

      新分析报告的屏幕截图。

    2. 连接到要在其上存储报表数据库的 SQL Server。

      将看到服务器中所有报告的列表。

    3. 选择“新建报表”

    4. 若要配置报表,请指定报表名称,并指定源和目标 SQL Server 实例的跟踪路径。

      提供报告分析输入的屏幕截图。

  5. 查看分析报表

    1. 在报表的第一页上,将显示运行试验的目标服务器的版本和编译信息。

      阈值的作用是调整 A/B 测试分析的灵敏度或容差。

      注意

      默认情况下,阈值设置为 5%;大于或等于 5% 的任何性能改进都被归类为“改进”。 下拉列表选择器的作用是使用不同的性能阈值评估报表。

    2. 选择饼图的各个部分以查看有关性能的详细指标。

      向下钻取报告的屏幕截图。

      在性能更改类别的详细信息页面上,将看到该类别中的查询列表。

      向下钻取报告查询的屏幕截图。

    3. 选择单个查询,以获取性能摘要统计信息、错误信息和查询计划信息。

      摘要统计信息的屏幕截图。

转换

在评估了要迁移的一个或多个源数据库实例之后,对于异构迁移,需要将架构转换为在目标环境中工作。 由于升级到较新版本的 SQL Server 被视为是同构迁移,因此转换步骤不是必需的。

迁移概述

在满足必需的先决条件并完成与预迁移阶段相关的任务后,便可完成架构和数据迁移。 成功迁移和升级意味着已解决在预迁移阶段发现的所有问题。

查看使用 DMA 工具发现的兼容性问题。

通过创建系统数据库 msdb 的备份来保留备份日志、维护计划和其他自动化任务,包括作业。

使用 SQL Server Management Studio 查看链接服务器。 在对象资源管理器中,右键单击服务器对象以展开列表。

根据数据和环境的复杂性,可能需要考虑其他因素。

迁移架构和数据

评估数据库之后,下一步是开始使用 DMA 迁移架构和数据库的过程。

迁移架构和数据同步

若要使用 DMA 创建迁移项目,请完成以下步骤。

  1. 创建新迁移项目

    1. 选择“新建”图标,选择“迁移”项目类型,然后选择“SQL Server”作为源和目标类型,最后选择“创建”

      新迁移的屏幕截图。

    2. 提供源和目标 SQL Server 连接详细信息,然后选择“下一步”

      源和目标详细信息的屏幕截图。

    3. 从要迁移的源中选择数据库,然后为备份操作指定源和目标 SQL Server 可以访问的共享位置

      注意

      确保运行源 SQL Server 实例的服务帐户对共享位置具有写入权限,目标 SQL Server 服务帐户对共享位置具有读取权限。

      选择要迁移的数据库的屏幕截图。

    4. 选择“下一步”,选择要迁移的登录名,然后选择“开始迁移”

      迁移登录的屏幕截图。

    5. 现在,在“查看结果”屏幕中监视迁移进度。

  2. 查看迁移结果

    1. 选择“导出报表”,将迁移结果保存到 .csv 或 .json 文件中。

    2. 查看保存的文件,了解有关数据和登录名迁移的详细信息,并验证该过程是否成功完成。

数据同步和直接转换

对于停机时间最短的迁移,迁移的源在一次性迁移后会继续更改,数据和架构可能与目标有所不同。 在此过程中,需要确保捕获源中的所有更改,并几乎实时地应用到目标。 在确认源中的更改都已应用到目标后,从源环境直接转换到目标环境。

此方案尚不支持停机时间最短的迁移,因此数据同步和切换计划目前不适用。

迁移之后

成功完成迁移阶段后,需要完成一系列的迁移后任务,以确保一切都能尽量顺利高效地进行。 迁移后阶段对于协调所有数据准确性问题、验证完整性以及解决工作负载的性能问题至关重要。

若要在迁移后详细了解这些问题以及用于缓解问题的具体步骤,请参阅迁移后验证和优化指南

验证应用程序

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