为 Azure Arc 启用的 SQL Server 配置最佳做法评估

适用范围:SQL Server

最佳做法评估功能提供了一种机制来评估 SQL Server 实例的配置。 启用该功能后,评估会扫描 SQL Server 实例和数据库,以提供以下方面的建议:

  • SQL Server 和数据库配置
  • 索引管理
  • 弃用的功能
  • 已启用或缺少跟踪标志
  • 统计信息

评估运行的持续时间可以是几分钟到一小时,具体取决于你的环境(例如数据库和对象的数量)。 评估结果的大小也取决于环境。

评估针对实例以及该实例上的所有数据库运行。 在测试中,我们观察到评估运行对计算机具有高达 10% 的 CPU 影响。 在这些测试中,我们运行评估,而类似于 TPC-C 基准的应用程序则针对 SQL Server 实例运行。

本文介绍了如何在已启用 Azure Arc 的 SQL Server 实例上使用最佳做法评估。

重要

最佳做法评估仅适用于通过软件保障即用即付许可选项购买的 SQL Server 实例。

有关配置适当许可证类型的说明,请查看配置 Azure Arc 启用的 SQL Server

先决条件

  • 确保基于 Windows 的 SQL Server 实例已连接到 Azure。 按照自动将 SQL Server 连接到 Azure Arc 中的说明进行操作。

    注意

    最佳做法评估当前限用于在 Windows 计算机上运行的 SQL Server。 评估目前不适用于 Linux 计算机上的 SQL Server。

  • 如果服务器托管单个 SQL Server 实例,请确保 SQL Server 的 Azure 扩展 (WindowsAgent.SqlServer) 的版本是 1.1.2202.47 ”或更高版本。

    如果服务器托管多个 SQL Server 实例,请确保适用于 SQL Server 的 Azure 扩展 (WindowsAgent.SqlServer) 的版本是比 1.1.2231.59 更高的版本。

    要检查 SQL Server 的 Azure 扩展版本并更新到最新版本,请查看升级扩展

  • 如果服务器托管 SQL Server 的命名实例,SQL Server Browser 服务必须处于运行状态。

  • Log Analytics 工作区必须与 Azure Arc 启用的 SQL Server 资源位于同一订阅中。

  • 配置 SQL 最佳做法评估的用户必须具有以下权限:

    • Log Analytics 工作区资源组或订阅上的 Log Analytics 参与者角色。
    • 已启用 Arc 的 SQL Server 实例的资源组或订阅上的 Azure Connected Machine 资源管理员角色。
    • Log Analytics 工作区的资源组或订阅上或启用了 Azure Arc 的计算机的订阅上的监视参与者角色。

    分配至内置角色(如参与者或所有者)的用户拥有足够的权限。 有关详细信息,请查看使用 Azure 门户分配 Azure 角色

  • 访问或读取评估报表所需的最低权限如下:

    下面是访问或阅读评估报表的更多要求:

    • SQL Server 的内置登录名 NT AUTHORITY\SYSTEM 必须是计算机上运行的所有 SQL Server 实例的 SQL Server sysadmin 服务器角色的成员。

    • 如果防火墙或代理服务器限制出站连接,请确保它允许这些 URL 通过 TCP 端口 443 连接到 Azure Arc:

      • global.handler.control.monitor.azure.com
      • *.handler.control.monitor.azure.com
      • <log-analytics-workspace-id>.ods.opinsights.azure.com
      • *.ingest.monitor.azure.com
  • SQL Server 实例必须启用 TCP/IP

  • SQL Server 最佳做法评估使用 Azure Monitor 代理 (AMA) 从 SQL Server 服务器收集和分析数据。 如果在启用最佳做法评估之前已在 SQL Server 实例上安装 AMA,则评估使用相同的 AMA 代理和代理设置。 你无需执行任何其他操作。

    如果未在 SQL Server 实例上安装 AMA,最佳做法评估会为你安装它。 最佳做法评估不会自动为 AMA 设置代理设置。 你需要使用所需的代理设置重新部署 AMA。

    有关 AMA 网络和代理设置的详细信息,请查看代理配置

  • 如果使用“将安装了 SQL Server 扩展的已启用 Arc 的服务器配置为启用或禁用 SQL 最佳做法评估”Azure Policy 来大规模启用评估,则需要创建 Azure Policy 分配。 订阅需要针对目标范围的资源策略参与者角色分配。 范围可以是订阅或资源组。

    如果计划创建新的用户分配的托管标识,还需要订阅中的用户访问管理员角色分配。

启用最佳做法评估

  1. 登录到 Azure 门户并转到已启用 Azure Arc 的 SQL Server 资源

  2. 在左窗格中,选择“最佳做法评估”

    显示如何为已启用 Azure Arc 的 SQL Server 资源打开最佳做法评估设置的屏幕截图。

    另一种方法是在左窗格中选择“概述”,选择“功能”选项卡,然后选择“最佳做法评估”

  3. 在“Log Analytics 工作区”下拉列表中,选择工作区。

    显示为 SQL Server 最佳做法评估指定 Log Analytics 工作区的框的屏幕截图。

    如果未创建 Log Analytics 工作区,或者没有分配资源组或订阅的 Log Analytics 参与者角色,则无法启动按需 SQL 评估。 请查看先决条件

  4. 选择“启用评估”

    显示启用已启用 Azure Arc 的 SQL Server 资源的最佳做法评估按钮的屏幕截图。

    设置和配置可能需要几分钟。 此过程完成后,为计算机上运行的所有 SQL Server 实例启用最佳做法评估,并全面评估 SQL Server 主机。

  5. 确认已成功启用该功能。 默认情况下,评估计划在本地时间每个星期日上午 12:00 运行。

    显示成功启用已启用 Azure Arc 的 SQL Server 资源的最佳做法评估的屏幕截图。

使用 Azure Policy 大规模启用最佳做法评估

可以使用名为“将安装了 SQL Server 扩展的已启用 Arc 的服务器配置为启用或禁用 SQL 最佳做法评估”的 Azure 策略定义来大规模地对多个已启用 Azure Arc 的 SQL Server 实例自动启用最佳做法评估。

默认情况下,此策略定义不会分配给某个范围。 如果将此策略定义分配给所选范围,它将启用对定义范围内所有已启用 Azure Arc 的 SQL Server 实例的 SQL 最佳做法评估。 默认情况下,评估计划在本地时间每个星期日上午 12:00 运行。

  1. 在 Azure 门户中,转到“Azure Policy”>“定义”

  2. 搜索“将安装了 SQL Server 扩展的已启用 Arc 的服务器配置为启用或禁用 SQL 最佳做法评估”,然后选择策略。

  3. 选择“分配”

  4. 选择范围。

  5. 选择下一步

  6. “参数” 选项卡上:

    1. 选择“仅显示需要输入以供审阅的参数”(如果尚未选中该复选框)。
    2. 分别从下拉菜单中选择“Log Analytics 工作区”和“Log Analytics 工作区位置”
    3. Enablement 值设置为 true 以启用最佳做法评估。 (将此值设置为 false 会禁用评估。)
    4. 选择下一步
  7. 在“修正”选项卡上:

    1. 选择“创建修正任务”
    2. 选择“系统分配的托管标识”(建议)或“用户分配的托管标识”
  8. 选择“查看 + 创建”

  9. 选择“创建”。

有关如何使用 Azure 门户或所选的 API 分配 Azure Policy 的一般说明,请参阅 Azure Policy 文档

注意

如果从 SQL Server 资源之外的资源组中选择 Log Analytics 工作区,则 Azure Policy 的范围必须是整个订阅。

修改许可证类型

如果使用“仅限许可证”类型的许可证配置 SQL Server 实例,则需要更改许可证类型以配置最佳做法评估。 在门户的“最佳做法评估”窗格中,选择“更改许可证类型”。 有关更多信息,请参阅配置 Azure Arc 启用的 SQL Server

在 Azure 门户中更改许可证类型的按钮的屏幕截图。

管理最佳做法评估

启用最佳做法评估后,可以根据需要在“最佳实践评估”窗格中运行或配置评估。

注意

对特定的 SQL Server 实例执行以下任一任务时,任务将应用于计算机上运行的所有 SQL Server 实例。

  • 若要从门户按需运行评估,请选择“运行评估”

    显示运行评估的按钮的屏幕截图。

  • 若要查看评估结果,请选择“查看评估结果”按钮。

    在 Log Analytics 工作区中的结果就绪之前,“查看评估结果”处于非活动状态。 在目标计算机上处理数据文件后,此进程最长可能需要两个小时才能完成。

  • 若要计划评估,请选择“配置”,根据需要更改信息,然后选择“计划评估”

    显示用于配置评估计划的窗格的屏幕截图。

  • 若要禁用评估,请选择“配置”>“禁用评估”

    显示禁用评估的按钮的屏幕截图。

查看最佳做法评估的结果

要查看结果,可以在“最佳做法评估”窗格中选择任意的行项。

结果

“结果”窗格报告了根据计算机上运行的所有 SQL Server 实例的严重性分类的所有问题。 可以分别使用菜单“实例名称”和“收集位置”,在计算机上运行的 SQL Server 实例和评估执行时间之间切换结果视图。

建议将组织到以下选项卡中,以帮助你跟踪运行之间的进度:

  • 全部:当前所选运行中的所有建议。
  • 新增:与上一次运行相比,更新的建议。
  • 已解决:上一次运行中已解决的建议。
  • 见解:最经常出现的问题以及问题数量最多的数据库。

图形按不同的严重性类别(信息)将评估结果分组。 选择每个类别以查看建议列表,或者在搜索框中搜索关键短语。 最好从严重性最高的建议开始,然后在列表中查看后面的建议。

第一个网格显示每条建议以及存在报告的问题的环境中受影响的实例。 选择第一个网格中的行时,第二个网格将列出该特定建议的所有受影响实例。 如果未选择建议,则第二个网格将显示所有建议。

你可以执行以下任一操作:

  • 如果评估报告了大量建议,则可以筛选结果。 若要筛选结果,请使用网格上方的下拉列表菜单选择“名称”、“严重性”或“检查 ID”

  • 若要下载结果,请使用“导出到 Excel”

  • 若要在 Log Analytics 中打开结果,请使用“在日志视图中打开上次运行查询”

  • 要查看系统已遵循的建议,请查看图形的“已通过”部分。

  • 要查看每条建议的详细信息,例如长说明和相关联机资源,请选择“消息”

“趋势”窗格使用三个图表显示一段时间的变化:所有问题、新问题和已解决的问题。 图表可帮助你查看进度。

理想情况下,建议的数量应会减少,而已解决的问题数量应会增加。 图例显示每个严重性级别的平均问题数。 将鼠标悬停在条形上可查看每个运行的各项值。

如果在一天中完成了多个运行,则“趋势”窗格上的图形只会包含最新的运行。

注意事项

  • 最佳做法评估当前限用于在 Windows 计算机上运行的 SQL Server。 评估不适用于 Linux 计算机上的 SQL Server。

  • 在“最佳做法评估”窗格上填充以前执行评估的历史记录可能需要几秒钟时间。

  • 你还可以通过直接查询 Log Analytics 工作区来查看评估结果。 有关示例查询,请参阅已启用 Azure Arc 的 SQL Server 资源的最佳做法评估博客文章

  • 在 Azure Policy 修正不符合的已启用 Azure Arc 的 SQL Server 资源时,请勿进行任何其他扩展配置更改。 跟踪策略的修正任务进度

故障排除

请参阅故障排除指南