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

适用于:SQL Server

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

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

评估运行时间取决于环境(数据库、对象等的数量),持续时间从几分钟到一个小时不等。 同样,评估结果的大小也取决于环境。 评估针对实例以及该实例上的所有数据库运行。 在测试中,我们观察到评估运行对计算机具有高达 5-10% 的 CPU 影响。 在这些测试中,评估是在类似 TPC-C 的应用程序针对 SQL Server 运行时执行。

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

重要

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

有关配置相应许可证类型的说明,请查看管理 SQL Server 许可证和计费选项

先决条件

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

    注意

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

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

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

    提示

    要检查版本和更新,以更新到最新版本,请查看升级扩展

  • 如果服务器上具有 SQL Server 的命名实例,SQL Server 浏览器服务必须处于运行状态。

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

  • 用户必须具有以下权限才能配置 SQL 最佳做法评估 (BPA)。

    • Log Analytics 工作区资源组或订阅上的 Log Analytics 参与者角色。
    • 已启用 Arc 的 SQL Server 资源组或订阅上的 Azure Connected Machine 资源管理员角色。
    • Log Analytics 工作区和资源组或订阅上和 Arc 计算机资源组或订阅上的监视参与者角色。
    • 分配至内置角色(如参与者或所有者)的用户拥有足够的权限。 有关详细信息,请参阅使用 Azure 门户分配 Azure 角色
  • 访问或读取评估报表所需的最低权限如下:

    • 已启用 Arc 的 SQL Server 资源的资源组或订阅上的读取者角色。

    • Log Analytics 读取者

    • Log Analytics 工作区的资源组/订阅上的读取者角色

    • 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 BPA 使用 Azure Monitor 代理 (AMA) 从 SQL 服务器收集和分析数据。 如果在启用 BPA 之前已在 SQL 服务器上安装了 AMA,BPA 将使用相同的 AMA 代理和代理设置。 你无需执行任何其他操作。 但是,如果没有在 SQL 服务器上安装 AMA,BPA 会为你安装它。 BPA 不会自动为 AMA 设置代理设置。 需要使用所需的代理设置重新部署 AMA。 有关 AMA 网络和代理设置的详细信息,请查看 AMA 网络设置和代理配置

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

启用最佳做法评估

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

  2. 打开已启用 Arc 的 SQL Server 资源,然后在左窗格中选择“最佳做法评估”,或选择“概述”页中“功能”选项卡中的“最佳做法评估”选项卡。

    Screenshot showing how to enable the best practices assessment screen of an Arc-enabled SQL Server resource.

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

    Screenshot showing how to specify the Log Analytics workspace for SQL Server best practices assessment.

  4. 从下拉菜单中选择“Log Analytics 工作区”,然后选择“启用评估”

    Screenshot showing the enable best practices assessment screen of an Arc-enabled SQL Server resource.

    注意

    启用评估后,安装和配置可能需要几分钟时间。

    为计算机上运行的所有 SQL Server 实例启用最佳做法评估,并全面评估 SQL Server 主机。

  5. 成功完成最佳做法评估部署后,默认情况下,评估按计划于当地时间每周日凌晨 12:00 运行。

    Screenshot showing the successful enablement of best practices assessment of an Arc-enabled SQL Server resource.

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

可以使用名为“将安装了 SQL Server 扩展的已启用 Arc 的服务器配置为启用或禁用 SQL 最佳做法评估”的 Azure 策略定义来大规模地对多个已启用 Arc 的 SQL Server 实例自动启用最佳做法评估。默认情况下,此策略定义不会分配给范围。 如果将此策略定义分配给所选范围,它将启用对定义范围内所有已启用 Azure Arc 的 SQL Server 实例的 SQL 最佳做法评估,并默认自动计划到当地时间每个星期日中午 12:00。

重要

策略仅对通过软件保障即用即付 (PAYG) 许可选项购买的 SQL Server 实例启用最佳做法评估。

有关配置相应许可证类型的说明,请查看管理 SQL Server 许可证和计费选项

  1. 导航到 Azure 门户中的“Azure Policy”,然后选择“定义”
  2. 搜索“将安装了 SQL Server 扩展的已启用 Arc 的服务器配置为启用或禁用 SQL 最佳做法评估”,然后选择策略。
  3. 选择“分配”
  4. 选择范围。
  5. 选择“下一步”
  6. 在“参数”选项卡上,选择“仅显示需要输入以供审阅的参数”(如果尚未选中该复选框)。
    1. 分别从下拉菜单中选择“Log Analytics 工作区”、“Log Analytics 工作区位置”
    2. Enablement 值设置为 true 以启用最佳做法评估。 设置为 false 可禁用评估。
    3. 选择“下一步”
  7. 在“修正”选项卡上,选择“创建修正任务”
  8. 选择“系统分配的托管标识”(建议)或“用户分配的托管标识”
  9. 选择“查看 + 创建”
  10. 选择“创建”

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

注意

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

修改许可证类型

如果使用仅限许可证类型的许可证配置 SQL Server 实例,则需要更改许可证类型以配置最佳做法评估。 有关详细信息,请参阅管理 SQL Server 许可证和计费选项

Screenshot of Azure portal change license type.

管理最佳做法评估

启用最佳做法评估后,可以根据需要运行或配置评估。

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

    Screenshot showing run assessment.

    注意

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

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

    Screen shot showing configuration control and schedule control.

  • 若要计划评估,请选择“配置”>“计划评估”

    Screen shot showing configuration control and disable assessment control.

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

查看最佳做法评估结果

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

结果页

“结果”页报告了根据计算机上运行的所有 SQL Server 实例的严重性分类的所有问题。 可以分别使用自上而下菜单“实例名称”和“收集位置”,在计算机上运行的 SQL Server 实例和评估执行时间之间切换结果视图。 建议已整理到“全部”、“新增”和“已解决”选项卡。 这些选项卡可用于分别查看当前所选运行中的所有建议、与上一次运行相比更新的建议以及之前运行中各自已解决的建议。 这些选项卡有助于跟踪运行之间的进度。 “见解”选项卡列出最经常出现的问题以及问题数量最多的数据库。

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

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

若要筛选结果,请使用网格上方的下拉菜单。 也就是说,

  • 名称
  • 严重性
  • 检查 ID

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

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

图形的“已通过”部分列出系统已遵循的建议。 通过选择“消息”字段查看每条建议的详细信息,例如长说明和相关联机资源。

“趋势”页上提供三个图表用于显示一段时间的变化:所有问题、新问题和已解决的问题。 图表可帮助你查看进度。 理想情况下,建议的数量应会减少,而已解决的问题数量应会增加。 图例显示每个严重性级别的平均问题数。 将鼠标悬停在条形上可查看每个运行的各项值。

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

已知问题

  • 最佳做法评估当前限用于在 Windows 计算机上运行的 SQL Server。 评估不适用于 Linux 计算机上的 SQL。
  • 在最佳做法主页上填充以前执行评估的历史记录可能需要几秒钟时间。
  • 还可以通过直接查询 Log Analytics 工作区来查看评估结果。 有关示例查询,请参阅最佳做法评估 - 已启用 Arc 的 SQL Server
  • 在 Azure Policy 修正不符合的已启用 Arc 的 SQL Server 资源时,请勿进行任何其他扩展配置更改。 跟踪 Azure Policy 修正任务进度。

故障排除

有关详细信息,请参阅故障排除指南