使用 mssql-conf 工具配置 Linux 上的 SQL Server

0    442    1

Tags:

👉 本文共约18478个字,系统预计阅读时间或需70分钟。

简介

mssql-conf 是随 SQL Server 2019 (15.x) for Red Hat Enterprise Linux、SUSE Linux Enterprise Server 和 Ubuntu 安装的配置脚本。 可以使用此实用工具设置以下参数:

参数描述
代理启用 SQL Server 代理
向 Windows 进行身份验证Windows Server Active Directory 身份验证的设置。
排序规则为 Linux 上的 SQL Server 设置新排序规则。
客户反馈选择 SQL Server 是否向 Microsoft 发送反馈。
数据库邮件配置文件为 Linux 上的 SQL Server 设置默认数据库邮件配置文件。
默认数据目录更改新 SQL Server 数据库数据文件 (.mdf) 的默认目录。
默认日志目录更改新 SQL Server 数据库日志 (.ldf) 文件的默认目录。
默认 master 数据库文件目录更改现有 SQL 安装中 master 数据库文件的默认目录。
默认 master 数据库文件名更改 master 数据库文件的名称。
默认转储目录更改新内存转储和其他故障诊断文件的默认目录。
默认错误日志目录更改新 SQL Server 错误日志、默认探查器跟踪、系统健康状况会话 XE 和 Hekaton 会话 XE 文件的默认目录。
默认备份目录更改新备份文件的默认目录。
转储类型选择要收集的转储内存转储文件的类型。
版本(Edition)设置 SQL Server 的版本。
高可用性启用可用性组。
本地审核目录设置目录以添加本地审核文件。
区域设置设置 SQL Server 要使用的区域设置。
内存限制设置 SQL Server 的内存限制。
Microsoft 分布式事务处理协调器在 Linux 上配置 MSDTC 并对其进行故障排除。
MLServices EULA对于 mlservices 包,接受 R 和 Python EULA。 仅适用于 SQL Server 2019 (15.x)。
网络设置SQL Server 的其他网络设置。
outboundnetworkaccessmlservices R、Python 和 Java 扩展启用出站网络访问。
TCP 端口更改 SQL Server 侦听连接的端口。
TLS配置传输级别安全性。
跟踪标志设置服务要使用的跟踪标志。

提示

还可以使用环境变量配置其中某些设置。 有关详细信息,请参阅使用环境变量配置 SQL Server 设置

使用提示

  • 对于 Always On 可用性组和共享磁盘群集,始终在每个节点上进行相同的配置更改。

  • 对于共享磁盘群集方案,请勿尝试重新启动 mssql-server 服务以应用更改。 SQL Server 作为应用程序运行。 应将资源脱机,然后重新联机。

  • 这些示例通过指定以下完整路径来运行 mssql-conf:/opt/mssql/bin/mssql-conf。 如果选择改为导航到该路径,请在当前目录 ./mssql-conf 的上下文中运行 mssql-conf。

  • 如果想要修改容器内部的 mssql.conf 文件,请在以所需配置运行容器的主机上创建 mssql.conf 文件,然后重新部署容器。 例如,对 mssql.conf 文件完成以下添加后,将启用 SQL Server 代理。

    可以使用以下命令部署容器:

    有关详细信息,请参阅创建 SQL Server 容器要使用的 config 文件

启用 SQL Server 代理

sqlagent.enabled 设置可启用 SQL Server 代理。 默认情况下,SQL Server 代理处于禁用状态。 如果 mssql.conf 设置文件中不存在 sqlagent.enabled,则 SQL Server 在内部假定已禁用 SQL Server 代理。

若要更改此设置,请使用以下步骤:

  1. 启用 SQL Server 代理:

  2. 重启 SQL Server 服务:

为 Linux 上的 SQL Server 设置默认数据库邮件配置文件

通过 sqlagent.databasemailprofile,可为电子邮件警报设置默认的 DB 邮件配置文件。

SQL 代理错误日志

通过 sqlagent.errorlogfilesqlagent.errorlogginglevel 设置,可分别设置 SQL 代理日志文件路径和日志记录级别。

SQL 代理日志记录级别是位掩码值,等于:

  • 1 = 错误
  • 2 = 警告
  • 4 = 信息

如果要捕获所有级别,请使用 7 作为值。

配置 Azure Active Directory 身份验证

从 SQL Server 2022 (16.x) 开始,可以为 SQL Server 配置 Azure Active Directory (Azure AD)。 若要配置 Azure AD,必须在安装 SQL Server 之后安装用于 SQL Server 的 Azure 扩展。 有关如何配置 Azure AD 的信息,请参阅教程:设置适用于 SQL Server 的 Azure Active Directory 身份验证

更改默认 Azure AD 证书路径

默认情况下,Azure AD 证书文件存储在 /var/opt/mssql/aadsecrets/ 中。 如果使用证书存储或加密驱动器,则可以更改此路径。 若要更改路径,可以使用以下命令:

在前面的示例中,/path/to/new/location.pfx 是首选路径,包括证书名称。

用于 SQL Server 的 Azure 扩展下载的 Azure AD 身份验证的证书存储在此位置。 你无法将其更改为 /var/opt/mssql/secrets

备注

安装 SQL Server 后,虽然可以随时更改默认的 Azure AD 证书路径,但必须在启用 Azure AD 之前更改。

Azure AD 配置选项

Azure AD 身份验证将以下选项用于 Linux 上运行的 SQL Server 实例。

警告

Azure AD 参数由用于 SQL Server 的 Azure 扩展配置,不应手动重新配置。 此处列出的选项仅供参考。

选项说明
network.aadauthenticationendpointAzure AD 身份验证的终结点
network.aadcertificatefilepath用于向 Azure AD 进行身份验证的证书文件的路径
network.aadclientcertblacklistAzure AD 客户端证书阻止列表
network.aadclientidAzure AD 客户端 GUID
network.aadfederationmetadataendpointAzure AD 联合元数据的终结点
network.aadgraphapiendpointAzure AD Graph API 的终结点
network.aadgraphendpointAzure AD Graph 终结点:
network.aadissuerurlAzure AD 颁发者 URL
network.aadmsgraphendpointAzure AD MS Graph 终结点
network.aadonbehalfofauthority代表授权机构的 Azure AD
network.aadprimarytenantAzure AD 主租户 GUID
network.aadsendx5cAzure AD Send X5C
network.aadserveradminname将作为 sysadmin 的 Azure AD 帐户的名称
network.aadserveradminsid将作为 sysadmin 的 Azure AD 帐户的 SID
network.aadserveradmintype将作为 sysadmin 的 Azure AD 帐户的类型
network.aadserviceprincipalnameAzure AD 服务主体名称
network.aadserviceprincipalnamenoslashAzure AD 服务主体名称(无斜杠)
network.aadstsurlAzure AD STS URL

配置 Windows Active Directory 身份验证

setup-ad-keytab 选项可用于创建密钥表,但必须创建了用户和服务主体名称 (SPN) 才能使用此选项。 Active Directory 实用工具 adutil 可用于创建用户、SPN 和密钥表。

有关使用 setup-ad-keytab 的选项,请运行以下命令:

validate-ad-config 选项将验证 Active Directory 身份验证配置。

更改 SQL Server 排序规则

set-collation 选项可将排序规则值更改为支持的任何排序规则。 若要进行此更改,需要停止 SQL Server 服务。

  1. 首先,备份服务器上的所有用户数据库

  2. 然后,使用 sp_detach_db 存储过程分离用户数据库。

  3. 运行 set-collation 选项并按照提示进行操作:

  4. mssql-conf 实用工具会尝试更改为指定的排序规则值并重新启动该服务。 如果出现任何错误,它会将排序规则回滚到前一个值。

  5. 还原用户数据库备份。

若要获取支持的排序规则的列表,请运行 sys.fn_helpcollations 函数:SELECT Name from sys.fn_helpcollations()

配置客户反馈

使用 telemetry.customerfeedback 设置可更改 SQL Server 是否向 Microsoft 发送反馈。 默认情况下,对于所有版本,此值设置为 true。 若要更改该值,请运行以下命令:

重要

无法关闭 SQL Server、Express 和 Developer 免费版本的客户反馈。

  1. 使用 telemetry.customerfeedbackset 命令以 root 身份运行 mssql-conf 脚本。 以下示例通过指定 false 来关闭客户反馈。

  2. 重启 SQL Server 服务:

有关详细信息,请参阅 Linux 上的 SQL Server 的客户反馈SQL Server 隐私声明

更改默认数据或日志目录位置

使用 filelocation.defaultdatadirfilelocation.defaultlogdir 设置可更改创建新数据库和日志文件的位置。 默认情况下,此位置是 /var/opt/mssql/data。 若要更改这些设置,请使用以下步骤:

  1. 为新的数据库数据和日志文件创建目标目录。 以下示例创建新的 /tmp/data 目录:

  2. 将目录的所有者和组更改为 mssql 用户:

  3. 使用 mssql-conf 通过 set 命令更改默认数据目录:

  4. 重启 SQL Server 服务:

  5. 现在,为新数据库创建的所有数据库文件都将存储在此新位置。 如果要更改新数据库的日志文件 (.ldf) 位置,可以使用下面的 set 命令:

  6. 此命令还假定存在 /tmp/log 目录,并且它位于用户和组 mssql 下。

更改默认的 master 数据库文件目录位置

使用 filelocation.masterdatafilefilelocation.masterlogfile 设置可更改 SQL Server 数据库引擎查找 master 数据库文件的位置。 默认情况下,此位置是 /var/opt/mssql/data

若要更改这些设置,请使用以下步骤:

  1. 为新的错误日志文件创建目标目录。 以下示例创建新的 /tmp/masterdatabasedir 目录:

  2. 将目录的所有者和组更改为 mssql 用户:

  3. 使用 mssql-conf 通过 set 命令更改主数据和日志文件的默认 master 数据库目录:

    备注

    除了移动主数据和日志文件外,此操作还将移动所有其他系统数据库的默认位置。

  4. 停止 SQL Server 服务:

  5. 移动 master.mdfmastlog.ldf 文件:

  6. 启动 SQL Server 服务:

    备注

    如果 SQL Server 在指定目录中找不到 master.mdfmastlog.ldf 文件,将在指定目录中自动创建系统数据库的模板化副本,并且 SQL Server 将成功启动。 但是,诸如用户数据库、服务器登录名、服务器证书、加密密钥、SQL 代理作业或旧 SA 登录密码等元数据将不会在新 master 数据库中更新。 必须停止 SQL Server 并将旧的 master.mdfmastlog.ldf 移动到新的指定位置,然后启动 SQL Server 以继续使用现有元数据。

更改 master 数据库文件的名称

使用 filelocation.masterdatafilefilelocation.masterlogfile 设置可更改 SQL Server 数据库引擎查找 master 数据库文件的位置。 还可以使用它来更改 master 数据库和日志文件的名称。

若要更改这些设置,请使用以下步骤:

  1. 停止 SQL Server 服务:

  2. 使用 mssql-conf 通过 set 命令更改 master 数据和日志文件的预期 master 数据库名称:

    重要

    只能在 SQL Server 成功启动后更改 master 数据库和日志文件的名称。 在初始运行之前,SQL Server 会要求文件命名为 master.mdfmastlog.ldf

  3. 更改 master 数据库数据和日志文件的名称:

  4. 启动 SQL Server 服务:

更改默认转储目录位置

使用 filelocation.defaultdumpdir 设置可更改每当系统崩溃时生成内存和 SQL 转储的默认位置。 默认情况下,这些文件在 /var/opt/mssql/log 中生成。

若要设置新位置,请使用以下命令:

  1. 为新的转储文件创建目标目录。 以下示例创建新的 /tmp/dump 目录:

  2. 将目录的所有者和组更改为 mssql 用户:

  3. 使用 mssql-conf 通过 set 命令更改默认数据目录:

  4. 重启 SQL Server 服务:

    本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
    AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
    验证码:
    获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复