5.4. Microsoft SQL Server 工作负载

使用全局 Filter by tags 功能,Red Hat Insights for Red Hat Enterprise Linux 用户可以选择运行 Microsoft SQL Server 工作负载的系统组。

2019 年 5 月,Red Hat Insights 团队为在 Red Hat Enterprise Linux (RHEL)上运行的 Microsoft SQL Server 引进了一组新的 Insights for Red Hat Enterprise Linux 建议。这些规则向管理员发出没有遵守 Microsoft 和 Red Hat 记录的建议的操作系统级别配置。

这些规则的一个限制是,它们主要分析操作系统,而不是数据库本身。最新版本的 Insights for Red Hat Enterprise Linux 和 RHEL 8.5 引入了 Microsoft SQL assessment API。SQL 评估 API 提供了一种机制来评估 MS SQL Server 的数据库配置以了解最佳实践。API 提供了一个规则集,其中包含 Microsoft SQL Server 团队推荐的最佳实践规则。虽然此规则集通过新版本改进,但 API 构建旨在提供高度可自定义的可扩展解决方案,让用户能够自行调优默认规则并自行创建。

SQL 评估 API 由 Linux 的 PowerShell 支持(可从 Microsoft 使用),Microsoft 开发了可用于调用 API 的 PowerShell 脚本,并将其结果存储为 JSON 格式的文件。在 RHEL 8.5 中,Insights 客户端现在上传此 JSON 文件,并在 Insights for Red Hat Enterprise Linux UI 中以易于理解的格式显示结果。

有关 Insights for Red Hat Enterprise Linux 中的 SQL Server 评估的更多信息,请参阅 SQL Server 数据库最佳实践现在通过 Red Hat Insights 获得

5.4.1. 设置 SQL Server 评估

要将 Microsoft SQL 评估 API 配置为向 Red Hat Insights 提供信息,数据库管理员需要执行以下步骤。

流程

  1. 在您要评估的数据库中,使用 SQL Authentication 为 SQL Server 创建登录评估。以下 Transact-SQL 创建一个登录。将 <*PASSWORD*& gt; 替换为强密码:

    USE [master]
    GO
    CREATE LOGIN [assessmentLogin] with PASSWORD= N'<*PASSWORD*>’
    ALTER SERVER ROLE [sysadmin] ADD MEMBER [assessmentLogin]
    GO
  2. 按如下所示存储用于登录的凭证,再次将 <*PASSWORD*> 替换为在第 1 步中使用的密码。

    # echo "assessmentLogin" > /var/opt/mssql/secrets/assessment
    # echo "<*PASSWORD*>" >> /var/opt/mssql/secrets/assessment
  3. 通过确保只有 mssql 用户可以访问凭证来保护评估工具使用的凭证。

    # chmod 0600 /var/opt/mssql/secrets/assessment
    # chown mssql:mssql /var/opt/mssql/secrets/assessment
  4. 从 microsoft-tools 存储库下载 PowerShell。这与您在安装 mssql-toolsmssqlodbc17 软件包作为 SQL Server 安装的一部分时配置的存储库相同。

    # yum -y  install powershell
  5. 为 PowerShell 安装 SQLServer 模块。此模块包括评估 API。

    # su mssql -c "/usr/bin/pwsh -Command Install-Module SqlServer"
  6. 从 Microsoft 示例 GitHub 存储库下载 runassessment 脚本。确保它归 mssql 所有并由其执行。

    # /bin/curl -LJ0 -o /opt/mssql/bin/runassessment.ps1 https://raw.githubusercontent.com/microsoft/sql-server-samples/master/samples/manage/sql-assessment-api/RHEL/runassessment.ps1
    # chown mssql:mssql /opt/mssql/bin/runassessment.ps1
    # chmod 0700 /opt/mssql/bin/runassessment.ps1
  7. 创建用于存储 Red Hat Insights 使用的日志文件目录。同样,请确保它归 mssql 所有并可执行。

    # mkdir /var/opt/mssql/log/assessments/
    # chown mssql:mssql /var/opt/mssql/log/assessments/
    # chmod 0700 /var/opt/mssql/log/assessments/
  8. 现在,您可以创建第一个评估,但请务必以 mssql 用户身份这样做,以便后续评估可以作为 mssql 用户更加安全地通过 cron 或 systemd 自动运行。

    # su mssql -c "pwsh -File /opt/mssql/bin/runassessment.ps1"
  9. Insights for Red Hat Enterprise Linux 在下次运行时会自动包含评估,或者您可以通过运行以下命令来启动 Insights 客户端:

    # insights-client

5.4.1.1. 在计时器上设置 SQL 评估

由于 SQL Server 评估可能需要 10 分钟或更长时间来完成,所以您可以每天自动运行评估过程,也可能不意义。如果要自动运行它们,Red Hat SQL Server 社区已创建了 systemd 服务和计时器文件,以用于评估工具。

流程

  1. 从红帽公共 SQL Server 社区下载以下文件,以实践 GitHub 站点

    • mssql-runassessment.service
    • mssql-runassessment.timer
  2. /etc/systemd/system/ 目录中安装这两个文件:

    # cp mssql-runassessment.service /etc/systemd/system/
    # cp mssql-runassessment.timer /etc/systemd/system/
    # chmod 644 /etc/systemd/system/
  3. 启用计时器:

    # systemctl enable --now mssql-runassessment.timer