Настройка SQL Server на Linux с помощью средства mssql-con

Область применения: SQL Server — Linux

mssql-conf — это скрипт конфигурации, который устанавливается с SQL Server 2017 (14.x) для Red Hat Enterprise Linux, SUSE Linux Enterprise Server и Ubuntu. Он изменяет файл mssql.conf file где хранятся значения конфигурации. С помощью служебной программы mssql-conf можно настраивать перечисленные ниже параметры.

Параметр Описание
Агент Включение агента SQL Server.
Проверка подлинности с помощью Windows Параметры проверки подлинности Windows Server Active Directory.
Параметры сортировки Задание новых параметров сортировки для SQL Server на Linux.
Отзывы пользователей Включение или отключение отправки отзывов в корпорацию Майкрософт из SQL Server.
Профиль компонента Database Mail Настройка профиля Database Mail по умолчанию для SQL Server на Linux.
Каталог данных по умолчанию Изменение каталога по умолчанию для новых файлов данных (MDF) SQL Server.
Каталог журналов по умолчанию Изменение каталога по умолчанию для новых файлов журналов (LDF) базы данных SQL Server.
Каталог базы данных master по умолчанию Изменение каталога по умолчанию для базы данных master и файлов журнала.
Имя файла базы данных master по умолчанию Изменение имени для файлов базы данных master.
Каталог дампа по умолчанию Изменение каталога по умолчанию для новых дампов памяти и других файлов, предназначенных для устранения неполадок.
Каталог журналов ошибок по умолчанию Изменяет каталог по умолчанию для нового журнала ошибок SQL Server, трассировки профилировщика по умолчанию, XE сеанса работоспособности системы и XE-файлов сеанса Hekaton.
Каталог резервного копирования по умолчанию Изменение каталога по умолчанию для новых файлов резервных копий.
Тип дампа Выбор типа файла с дампом памяти для сбора.
Выпуск Задает выпуск SQL Server.
Высокая доступность Включение групп доступности.
Каталог локального аудита Указание каталога для добавления файлов локального аудита.
Локаль Указание языкового стандарта для SQL Server.
Предельный объем памяти Указание предельного объема памяти для SQL Server.
Параметры сети Дополнительные параметры сети для SQL Server.
Координатор распределенных транзакций Майкрософт Настройка координатора распределенных транзакций Майкрософт на платформе Linux.
TCP-порт Изменение порта, через который SQL Server ожидает передачи данных.
TLS Настройка протокола TLS.
Флаги трассировки Задайте флаги трассировки, которые будет использоваться службой.

mssql-conf — это скрипт конфигурации, который устанавливается с SQL Server 2019 (15.x) для Red Hat Enterprise Linux, SUSE Linux Enterprise Server и Ubuntu. С помощью этой служебной программы можно настраивать перечисленные ниже параметры.

Параметр Описание
Агент Включение агента SQL Server
Проверка подлинности с помощью Windows Параметры проверки подлинности Windows Server Active Directory.
Параметры сортировки Задание новых параметров сортировки для SQL Server на Linux.
Отзывы пользователей Включение или отключение отправки отзывов в корпорацию Майкрософт из SQL Server.
Профиль компонента Database Mail Настройка профиля Database Mail по умолчанию для SQL Server на Linux.
Каталог данных по умолчанию Изменение каталога по умолчанию для новых файлов данных (MDF) SQL Server.
Каталог журналов по умолчанию Изменение каталога по умолчанию для новых файлов журналов (LDF) базы данных SQL Server.
Каталог файлов базы данных master по умолчанию Изменение каталога по умолчанию для файлов базы данных master в существующей установке SQL.
Имя файла базы данных master по умолчанию Изменение имени для файлов базы данных master.
Каталог дампа по умолчанию Изменение каталога по умолчанию для новых дампов памяти и других файлов, предназначенных для устранения неполадок.
Каталог журналов ошибок по умолчанию Изменяет каталог по умолчанию для нового журнала ошибок SQL Server, трассировки профилировщика по умолчанию, XE сеанса работоспособности системы и XE-файлов сеанса Hekaton.
Каталог резервного копирования по умолчанию Изменение каталога по умолчанию для новых файлов резервных копий.
Тип дампа Выбор типа файла с дампом памяти для сбора.
Выпуск Задает выпуск SQL Server.
Высокая доступность Включение групп доступности.
Каталог локального аудита Указание каталога для добавления файлов локального аудита.
Локаль Указание языкового стандарта для SQL Server.
Предельный объем памяти Указание предельного объема памяти для SQL Server.
Координатор распределенных транзакций Майкрософт Настройка координатора распределенных транзакций Майкрософт на платформе Linux.
EULAs служб Машинное обучение Примите EULA R и Python для mlservices пакетов. Применяется только к SQL Server 2019 (15.x).
Параметры сети Дополнительные параметры сети для SQL Server.
outboundnetworkaccess Включение исходящего сетевого доступа для расширений R, Python и Java Службы машинного обучения.
TCP-порт Изменение порта, через который SQL Server ожидает передачи данных.
TLS Настройка протокола TLS.
Флаги трассировки Задайте флаги трассировки, которые будет использоваться службой.

mssql-conf — это скрипт конфигурации, который устанавливается вместе с SQL Server 2022 (16.x) для Red Hat Enterprise Linux, а также Ubuntu. С помощью этой служебной программы можно настраивать перечисленные ниже параметры.

Параметр Описание
Агент Включение агента SQL Server
Проверка подлинности в Microsoft Entra ID Параметры проверки подлинности с помощью идентификатора Microsoft Entra (ранее — Azure Active Directory).
Проверка подлинности с помощью Windows Параметры проверки подлинности Windows Server Active Directory.
Параметры сортировки Задание новых параметров сортировки для SQL Server на Linux.
Отзывы пользователей Включение или отключение отправки отзывов в корпорацию Майкрософт из SQL Server.
Профиль компонента Database Mail Настройка профиля Database Mail по умолчанию для SQL Server на Linux.
Каталог данных по умолчанию Изменение каталога по умолчанию для новых файлов данных (MDF) SQL Server.
Каталог журналов по умолчанию Изменение каталога по умолчанию для новых файлов журналов (LDF) базы данных SQL Server.
Каталог файлов базы данных master по умолчанию Изменение каталога по умолчанию для файлов базы данных master в существующей установке SQL.
Имя файла базы данных master по умолчанию Изменение имени для файлов базы данных master.
Каталог дампа по умолчанию Изменение каталога по умолчанию для новых дампов памяти и других файлов, предназначенных для устранения неполадок.
Каталог журналов ошибок по умолчанию Изменяет каталог по умолчанию для нового журнала ошибок SQL Server, трассировки профилировщика по умолчанию, XE сеанса работоспособности системы и XE-файлов сеанса Hekaton.
Каталог резервного копирования по умолчанию Изменение каталога по умолчанию для новых файлов резервных копий.
Тип дампа Выбор типа файла с дампом памяти для сбора.
Выпуск Задает выпуск SQL Server.
Высокая доступность Включение групп доступности.
Каталог локального аудита Указание каталога для добавления файлов локального аудита.
Локаль Указание языкового стандарта для SQL Server.
Предельный объем памяти Указание предельного объема памяти для SQL Server.
Координатор распределенных транзакций Майкрософт Настройка координатора распределенных транзакций Майкрософт на платформе Linux.
EULAs служб Машинное обучение Примите EULA R и Python для mlservices пакетов. Применяется только к SQL Server 2019 (15.x).
Параметры сети Дополнительные параметры сети для SQL Server.
Исходящий сетевой доступ Включение исходящего сетевого доступа для расширений R, Python и Java Службы машинного обучения.
Соединитель SQL Server Настройте уровень ведения журнала для соединителя SQL Server.
TCP-порт Изменение порта, через который SQL Server ожидает передачи данных.
TLS Настройка протокола TLS.
Флаги трассировки Задайте флаги трассировки, которые будет использоваться службой.

Совет

Некоторые их этих параметров можно также настроить с помощью переменных среды. Дополнительные сведения см. в разделе "Настройка параметров SQL Server" с переменными среды в Linux.

Советы по использованию

  • В случае с группами доступности 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.

    [sqlagent]
    enabled = true
    

    Контейнер можно развернуть с помощью следующих команд:

    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
    -p 5433:1433 --name sql1 \
    -v /container/sql1:/var/opt/mssql \
    -d mcr.microsoft.com/mssql/server:2019-latest
    

    Дополнительные сведения см. в разделе "Создание файлов конфигурации для использования контейнером SQL Server".

Включение агента SQL Server

Параметр sqlagent.enabled включает агент SQL Server. По умолчанию агент SQL Server отключен. Если sqlagent.enabled в файле параметров mssql.conf отсутствует, SQL Server внутренне предполагает, что агент SQL Server отключен.

Чтобы изменить этот параметр, выполните указанные ниже действия.

  1. Включите агент SQL Server:

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Перезапустите службу SQL Server:

    sudo systemctl restart mssql-server
    

Настройка профиля компонента Database Mail по умолчанию для SQL Server на Linux

Позволяет sqlagent.databasemailprofile задать профиль почты базы данных по умолчанию для оповещений электронной почты.

sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile <profile_name>

Журналы ошибок агента SQL

Параметры sqlagent.errorlogfile и sqlagent.errorlogginglevel параметры позволяют задать путь к файлу журнала агента SQL и уровень ведения журнала соответственно.

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogfile <path>

Уровни ведения журнала Агента SQL — это значения битовой маски, которые равны:

  • 1 = ошибки
  • 2 = предупреждения
  • 4 = сведения

Если вы хотите захватить все уровни, используйте в качестве значения 7.

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogginglevel <level>

Настройка проверки подлинности Microsoft Entra

Начиная с SQL Server 2022 (16.x), можно настроить идентификатор Microsoft Entra для SQL Server. Чтобы настроить идентификатор Microsoft Entra, необходимо установить расширение Azure для SQL Server после установки SQL Server. Сведения о настройке идентификатора Microsoft Entra см. в руководстве по настройке проверки подлинности Microsoft Entra для SQL Server.

Изменение пути сертификата идентификатора Microsoft Entra id по умолчанию

По умолчанию файл сертификата Microsoft Entra хранится в /var/opt/mssql/aadsecrets/. Этот путь можно изменить, если используется хранилище сертификатов или зашифрованный диск. Чтобы изменить путь, можно использовать следующую команду:

sudo /opt/mssql/bin/mssql-conf set network.aadcertificatefilepath /path/to/new/location.pfx

В предыдущем примере /path/to/new/location.pfx — ваш предпочтительный путь, включая имя сертификата.

Сертификат для проверки подлинности Microsoft Entra, скачанный расширением Azure для SQL Server, хранится в этом расположении. Вы не можете изменить его на /var/opt/mssql/secrets.

Примечание.

Путь сертификата идентификатора Microsoft Entra по умолчанию можно изменить в любое время после установки SQL Server, но необходимо изменить перед включением идентификатора Microsoft Entra.

Параметры конфигурации идентификатора Microsoft Entra

Следующие параметры используются проверкой подлинности Microsoft Entra для экземпляра SQL Server, работающего в Linux.

Предупреждение

Параметры идентификатора Microsoft Entra настраиваются расширением Azure для SQL Server и не должны быть перенастроены вручную. Они перечислены здесь для информационных целей.

Вариант Описание
network.aadauthenticationendpoint Конечная точка для проверки подлинности Microsoft Entra
network.aadcertificatefilepath Путь к файлу сертификата для проверки подлинности в идентификаторе Microsoft Entra
network.aadclientcertblacklist Список блокировок сертификатов клиента идентификатора Microsoft Entra
network.aadclientid GUID клиента Microsoft Entra
network.aadfederationmetadataendpoint Конечная точка для метаданных федерации Microsoft Entra
network.aadgraphapiendpoint Конечная точка для API Graph Azure AD
network.aadgraphendpoint Конечная точка Azure AD Graph
network.aadissuerurl URL-адрес издателя Microsoft Entra
network.aadmsgraphendpoint Конечная точка Microsoft Entra MS Graph
network.aadonbehalfofauthority Идентификатор Microsoft Entra От имени центра
network.aadprimarytenant Guid основного клиента Microsoft Entra
network.aadsendx5c Microsoft Entra ID Send X5C
network.aadserveradminname Имя учетной записи Microsoft Entra, которая будет выполнена sysadmin
network.aadserveradminsid ИДЕНТИФИКАТОР учетной записи Microsoft Entra, которая будет выполнена sysadmin
network.aadserveradmintype Тип учетной записи Microsoft Entra, которая будет выполнена sysadmin
network.aadserviceprincipalname Имя субъекта-службы Microsoft Entra
network.aadserviceprincipalnamenoslash Имя субъекта-службы Microsoft Entra без косой черты
network.aadstsurl URL-адрес STS Microsoft Entra

Настройка проверки подлинности Windows Active Directory

Этот setup-ad-keytab параметр можно использовать для создания ключа, но имена пользователей и субъектов-служб (SPN) должны быть созданы для использования этого параметра. Для создания пользователей, имен субъектов-служб и файлов keytab можно использовать служебную программу adutil Active Directory.

Для использования setup-ad-keytabпараметров выполните следующую команду:

sudo /opt/mssql/bin/mssql-conf setup-ad-keytab --help

Параметр validate-ad-config проверяет конфигурацию для проверки подлинности Active Directory.

Изменение параметров сортировки SQL Server

Параметр set-collation изменяет значение сортировки на любой из поддерживаемых параметров сортировки. Чтобы внести это изменение, необходимо остановить службу SQL Server.

  1. Сначала выполните резервное копирование всех пользовательских баз данных на сервере.

  2. Затем используйте хранимую процедуру sp_detach_db для отключения пользовательских баз данных.

  3. set-collation Запустите параметр и следуйте инструкциям:

    sudo /opt/mssql/bin/mssql-conf set-collation
    
  4. Программа mssql-conf пытается изменить указанное значение сортировки и перезапустить службу. Если возникнут ошибки, будет произведен откат к прежним параметрам сортировки.

  5. Восстановите пользовательские базы данных из резервных копий.

Чтобы получить список поддерживаемых параметров сортировки, выполните функцию sys.fn_helpcollations: SELECT Name from sys.fn_helpcollations().

Настройка отзывов клиентов

Параметр telemetry.customerfeedback изменяет, отправляет ли SQL Server отзыв корпорации Майкрософт или нет. По умолчанию это значение имеет true значение для всех выпусков. Чтобы изменить значение, выполните следующие команды:

Внимание

Отключить отправку отзывов для бесплатных выпусков SQL Server, Express и Developer невозможно.

  1. Запустите скрипт mssql-conf в качестве корневого set каталога с помощью команды.telemetry.customerfeedback В следующем примере отключается отзыв клиентов, указывая false.

    sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
    
  2. Перезапустите службу SQL Server:

    sudo systemctl restart mssql-server
    

Дополнительные сведения см. в разделе "Настройка сбора данных об использовании и диагностике" для SQL Server на Linux и дополнения к конфиденциальности SQL Server.

Изменение расположения данных или каталога журнала по умолчанию

filelocation.defaultlogdir Параметры filelocation.defaultdatadir изменяют расположение, в котором создаются новые файлы базы данных и журналов. По умолчанию, это расположение /var/opt/mssql/data. Чтобы изменить эти параметры, выполните указанные ниже действия.

  1. Создайте целевой каталог для новых файлов данных и журналов базы данных. В следующем примере создается новый /tmp/data каталог:

    sudo mkdir /tmp/data
    
  2. Измените владельца и группу каталога mssql пользователю:

    sudo chown mssql /tmp/data
    sudo chgrp mssql /tmp/data
    
  3. Используйте mssql-conf , чтобы изменить каталог данных по умолчанию с set помощью команды:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /tmp/data
    
  4. Перезапустите службу SQL Server:

    sudo systemctl restart mssql-server
    
  5. Теперь все файлы базы данных для новых баз данных хранятся в этом новом расположении. Если вы хотите изменить расположение файлов журнала (LDF) новых баз данных, можно использовать следующую set команду:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /tmp/log
    
  6. Эта команда также предполагает, что каталог /tmp/log существует, и что он находится под пользователем и группой mssql.

Изменение расположения каталога файлов базы данных master по умолчанию

filelocation.masterlogfile И filelocation.masterdatafile параметр изменяет расположение, в котором sql Server ядро СУБД ищет master файлы базы данных. По умолчанию, это расположение /var/opt/mssql/data.

Чтобы изменить эти параметры, выполните указанные ниже действия.

  1. Создайте целевой каталог для новых файлов с журналами ошибок. В следующем примере создается новый /tmp/masterdatabasedir каталог:

    sudo mkdir /tmp/masterdatabasedir
    
  2. Измените владельца и группу каталога mssql пользователю:

    sudo chown mssql /tmp/masterdatabasedir
    sudo chgrp mssql /tmp/masterdatabasedir
    
  3. Используйте mssql-conf , чтобы изменить каталог базы данных по умолчанию master для основных данных и файлов журналов set с помощью команды:

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /tmp/masterdatabasedir/master.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.masterlogfile /tmp/masterdatabasedir/mastlog.ldf
    

    Примечание.

    Помимо перемещения файлов основных данных и журналов, при этом также изменяется расположение для всех остальных системных баз данных.

  4. Остановите службу SQL Server:

    sudo systemctl stop mssql-server
    
  5. master.mdf Перемещение и mastlog.ldf файлы:

    sudo mv /var/opt/mssql/data/master.mdf /tmp/masterdatabasedir/master.mdf
    sudo mv /var/opt/mssql/data/mastlog.ldf /tmp/masterdatabasedir/mastlog.ldf
    
  6. Запустите службу SQL Server:

    sudo systemctl start mssql-server
    

    Примечание.

    Если SQL Server не удается найти master.mdf и mastlog.ldf файлы в указанном каталоге, шаблонная копия системных баз данных автоматически создается в указанном каталоге, и SQL Server успешно запускается. Однако метаданные, такие как пользовательские базы данных, имена входа сервера, сертификаты сервера, ключи шифрования, задания агента SQL или старый пароль входа SA, не обновляются в новой master базе данных. Вам придется остановить SQL Server и переместить старый master.mdf и mastlog.ldf в новое указанное расположение и запустить SQL Server, чтобы продолжить использование существующих метаданных.

Изменение имени для файлов базы данных master

filelocation.masterlogfile И filelocation.masterdatafile параметр изменяет расположение, в котором sql Server ядро СУБД ищет master файлы базы данных. С их помощью можно также изменить имена файлов базы данных master и ее журналов.

Чтобы изменить эти параметры, выполните указанные ниже действия.

  1. Остановите службу SQL Server:

    sudo systemctl stop mssql-server
    
  2. Используйте mssql-conf , чтобы изменить ожидаемые master имена баз данных для master файлов данных и журналов set с помощью команды:

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /var/opt/mssql/data/masternew.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.mastlogfile /var/opt/mssql/data/mastlognew.ldf
    

    Внимание

    Имя базы данныхmaster и файлов журналов можно изменить только после успешного запуска SQL Server. Перед начальным запуском SQL Server ожидает, что файлы будут именованы master.mdf и mastlog.ldf.

  3. Измените имя данных базы данных и файлов журналов master :

    sudo mv /var/opt/mssql/data/master.mdf /var/opt/mssql/data/masternew.mdf
    sudo mv /var/opt/mssql/data/mastlog.ldf /var/opt/mssql/data/mastlognew.ldf
    
  4. Запустите службу SQL Server:

    sudo systemctl start mssql-server
    

Изменение расположения каталога дампа по умолчанию

Параметр filelocation.defaultdumpdir изменяет расположение по умолчанию, в котором создаются дампы памяти и SQL при сбое. По умолчанию эти файлы создаются в /var/opt/mssql/log.

Чтобы задать новое расположение, используйте приведенные ниже команды.

  1. Создайте целевой каталог для новых файлов дампа. В следующем примере создается новый /tmp/dump каталог:

    sudo mkdir /tmp/dump
    
  2. Измените владельца и группу каталога mssql пользователю:

    sudo chown mssql /tmp/dump
    sudo chgrp mssql /tmp/dump
    
  3. Используйте mssql-conf , чтобы изменить каталог данных по умолчанию с set помощью команды:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /tmp/dump
    
  4. Перезапустите службу SQL Server:

    sudo systemctl restart mssql-server
    

Изменение расположения каталога файла журнала ошибок по умолчанию

Этот filelocation.errorlogfile параметр изменяет расположение, в котором создаются файлы XE нового журнала ошибок, трассировки профилировщика по умолчанию, сеанса работоспособности системы и XE сеанса Hekaton. По умолчанию, это расположение /var/opt/mssql/log. Каталог, в котором задан файл журнала ошибок SQL Server, становится каталогом журналов по умолчанию для других журналов.

Чтобы изменить этот параметр, выполните указанные ниже действия.

  1. Создайте целевой каталог для новых файлов с журналами ошибок. В следующем примере создается новый /tmp/logs каталог:

    sudo mkdir /tmp/logs
    
  2. Измените владельца и группу каталога mssql пользователю:

    sudo chown mssql /tmp/logs
    sudo chgrp mssql /tmp/logs
    
  3. Используйте mssql-conf , чтобы изменить имя файла журнала ошибок по умолчанию с помощью set команды:

    sudo /opt/mssql/bin/mssql-conf set filelocation.errorlogfile /tmp/logs/errorlog
    
  4. Перезапустите службу SQL Server:

    sudo systemctl restart mssql-server
    

Этот errorlog.numerrorlogs параметр позволяет указать количество журналов ошибок, которые сохраняются перед циклом журнала.

Изменение расположения каталога резервного копирования по умолчанию

Параметр filelocation.defaultbackupdir изменяет расположение по умолчанию, в котором создаются файлы резервной копии. По умолчанию эти файлы создаются в /var/opt/mssql/data.

Чтобы задать новое расположение, используйте приведенные ниже команды.

  1. Создайте целевой каталог для новых файлов резервных копий. В следующем примере создается новый /tmp/backup каталог:

    sudo mkdir /tmp/backup
    
  2. Измените владельца и группу каталога mssql пользователю:

    sudo chown mssql /tmp/backup
    sudo chgrp mssql /tmp/backup
    
  3. Используйте mssql-conf , чтобы изменить каталог резервного копирования по умолчанию с set помощью команды:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /tmp/backup
    
  4. Перезапустите службу SQL Server:

    sudo systemctl restart mssql-server
    

Указание параметров основного дампа

Если в одном из процессов SQL Server возникает исключение или сбой, SQL Server создает дамп памяти. Запись дампа памяти может занять много времени и занять значительное пространство. Чтобы сохранить ресурсы и избежать повторяющихся дампов памяти, можно отключить автоматическую coredump.disablecoredump запись дампа с помощью параметра.

sudo /opt/mssql/bin/mssql-conf set coredump.disablecoredump <true or false>

Пользователи по-прежнему могут создавать дампы памяти вручную при отключении автоматического дампа ядра (coredump.disablecoredump задано значение true).

Существует два способа управления типом дампов памяти, собираемых SQL Server: coredump.coredumptype и coredump.captureminiandfull. Каждый из них связан с одним из двух этапов записи дампа ядра.

Первый этап отслеживания управляется coredump.coredumptype параметром, который определяет тип файла дампа, созданного во время исключения. Второй этап включен при настройке coredump.captureminiandfull . Если coredump.captureminiandfull задано значение true, создается файл дампа, указанный в coredump.coredumptype файле, а второй мини-дампа также создается. Значение coredump.captureminiandfull false отключает вторую попытку захвата.

  1. Определите, следует ли записывать мини-и полные дампы с coredump.captureminiandfull помощью параметра.

    sudo /opt/mssql/bin/mssql-conf set coredump.captureminiandfull <true or false>
    

    По умолчанию: false

  2. Укажите тип файла дампа с параметром coredump.coredumptype .

    sudo /opt/mssql/bin/mssql-conf set coredump.coredumptype <dump_type>
    

    По умолчанию: miniplus

    В следующей таблице перечислены возможные coredump.coredumptype значения.

    Тип Описание
    mini Mini — это тип файла дампа наименьшего размера. Он предполагает использование системных сведений Linux для определения потоков и модулей процесса. Дамп содержит только стеки и модули среды размещения. Он не содержит косвенных ссылок на память или глобальных переменных.
    miniplus Тип MiniPlus похож на mini, но в него включаются дополнительные области памяти. Он поддерживает внутренние процессы SQLPAL и среды размещения, благодаря чему в дамп добавляются следующие области памяти:

    — различные глобальные переменные;
    — все память выше 64 ТБ
    — Все именованные регионы, найденные в /proc/$pid/maps
    — косвенная память из потоков и стеков;
    — Сведения о потоках, включая связанные блоки среды потоков (TEBS) и блоки среды обработки (PEBS)
    — Сведения о модуле
    — VMM и дерево VAD.
    filtered Тип filtered основан на механизме исключения: в дамп включается вся память процесса, кроме явно исключенной. Он поддерживает внутренние процессы SQLPAL и среды размещения, причем из дампа исключаются определенные области.
    full Full — это полный дамп процесса, включающий все регионы, расположенные в /proc/$pid/maps. Это не контролируется параметром coredump.captureminiandfull .

Выпуск

Выпуск SQL Server можно изменить с помощью set-edition параметра. Чтобы изменить выпуск SQL Server, сначала необходимо остановить службу SQL Server. Дополнительные сведения о доступных выпусках SQL Server на Linux см. в выпусках SQL Server.

Высокая доступность

Этот hadr.hadrenabled параметр включает группы доступности в экземпляре SQL Server. Следующая команда включает группы доступности, установив hadr.hadrenabled значение 1. Чтобы этот параметр вступил в силу, необходимо перезапустить SQL Server.

sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled  1
sudo systemctl restart mssql-server

Сведения об использовании этого параметра с группами доступности см. в следующих двух статьях.

Настройка локального каталога аудита

Этот telemetry.userrequestedlocalauditdirectory параметр включает локальный аудит и позволяет задать каталог, в котором создаются журналы локального аудита.

  1. Создайте целевой каталог для новых журналов локального аудита. В следующем примере создается новый /tmp/audit каталог:

    sudo mkdir /tmp/audit
    
  2. Измените владельца и группу каталога mssql пользователю:

    sudo chown mssql /tmp/audit
    sudo chgrp mssql /tmp/audit
    
  3. Запустите скрипт mssql-conf в качестве корневого set файла с помощью команды:telemetry.userrequestedlocalauditdirectory

    sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit
    
  4. Перезапустите службу SQL Server:

    sudo systemctl restart mssql-server
    

Дополнительные сведения см. в разделе "Настройка сбора данных об использовании и диагностике" для SQL Server на Linux.

Изменение языкового стандарта SQL Server

Параметр language.lcid изменяет языковой стандарт SQL Server на любой поддерживаемый идентификатор языка (LCID).

  1. В следующем примере языковой стандарт изменяется на французский (1036):

    sudo /opt/mssql/bin/mssql-conf set language.lcid 1036
    
  2. Перезапустите службу SQL Server, чтобы применить изменения:

    sudo systemctl restart mssql-server
    

Установка ограничения памяти

Параметр memory.memorylimitmb управляет объемом физической памяти (в МБ), доступной для SQL Server. Значение по умолчанию составляет 80 % физической памяти, чтобы предотвратить отсутствие памяти (OOM).

Внимание

Параметр memory.memorylimitmb ограничивает объем физической памяти, доступной процессу SQL Server. Параметр максимальной памяти сервера (МБ) можно использовать для настройки объема памяти, доступной для буферного пула SQL Server, но он никогда не может превышать объем физической памяти, доступной для SQL Server. Дополнительные сведения о параметрах конфигурации сервера с максимальным объемом памяти сервера (МБ) см. в разделе "Параметры конфигурации памяти сервера".

  1. Запустите скрипт mssql-conf в качестве корневого set каталога с помощью команды.memory.memorylimitmb В следующем примере память, доступная для SQL Server, изменяется на 3,25 ГБ (3328 МБ).

    sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 3328
    
  2. Перезапустите службу SQL Server, чтобы применить изменения:

    sudo systemctl restart mssql-server
    

Дополнительные параметры памяти

В параметрах памяти доступны следующие пункты.

Вариант Описание
memory.disablememorypressure Отключение нехватки памяти для SQL Server. Значения могут быть true или false (по умолчанию). Отключение давления памяти препятствует тому, что SQL Server использует для ограничения использования физической памяти memory.memorylimitmb, что приводит к тому, что использование в конечном итоге выходит за рамки этого ограничения.
memory.memory_optimized Включение или выключение функций SQL Server, оптимизированных для операций в памяти, — постоянный компонент паравиртуализации файлов памяти, защита памяти. Возможные значения — true или false.
memory.enablecontainersharedmemory Применимо только для контейнеров SQL Server. Используйте этот параметр., чтобы включить общую память в контейнерах SQL Server. Дополнительные сведения см. в разделе "Включение резервного копирования и восстановления VDI" в контейнерах. Значения могут быть true или false (по умолчанию).

Настройка MSDTC

Параметры network.rpcport используются distributedtransaction.servertcpport для настройки координатора распределенных транзакций (MSDTC). Чтобы изменить эти параметры, выполните приведенные ниже команды.

  1. Запустите скрипт mssql-conf в качестве корневого set файла с помощью команды:network.rpcport

    sudo /opt/mssql/bin/mssql-conf set network.rpcport <rcp_port>
    
  2. Затем задайте distributedtransaction.servertcpport параметр:

    sudo /opt/mssql/bin/mssql-conf set distributedtransaction.servertcpport <servertcpport_port>
    

Помимо задания этих значений, необходимо также настроить маршрутизацию и обновить настройки брандмауэра для порта 135. Дополнительные сведения о том, как это сделать, см. в разделе "Настройка координатора распределенных транзакций Майкрософт" (MSDTC) в Linux.

Существует несколько других параметров для mssql-conf, которые можно использовать для мониторинга и устранения неполадок MSDTC. Они вкратце описываются в приведенной ниже таблице. Дополнительные сведения об их использовании см. в статье о поддержке Windows, чтобы включить трассировку диагностики для MS DTC на компьютере с Windows 10.

Вариант Описание
distributedtransaction.allowonlysecurerpccalls Настройка только безопасных удаленных вызовов процедур (RPC) для распределенных транзакций
distributedtransaction.fallbacktounsecurerpcifnecessary Настройка только безопасных удаленных вызовов процедур (RPC) для распределенных транзакций
distributedtransaction.maxlogsize Размер файла журнала транзакций для координатора распределенных транзакций в МБ. Значение по умолчанию — 64 МБ
distributedtransaction.memorybuffersize Размер циклического буфера, в котором хранятся трассировки. Размер указан в МБ. Значение по умолчанию — 10 МБ
distributedtransaction.servertcpport Порт RPC-сервера координатора распределенных транзакций Майкрософт
distributedtransaction.trace_cm Трассировки в диспетчере подключений
distributedtransaction.trace_contact Трассировка пула контактов и контактов
distributedtransaction.trace_gateway Трассировка службы шлюза
distributedtransaction.trace_log Трассировка журнала
distributedtransaction.trace_misc Трассировки, не относящиеся к другим категориям
distributedtransaction.trace_proxy Трассировки, создаваемые на прокси-сервере координатора распределенных транзакций Майкрософт
distributedtransaction.trace_svc Трассировка запуска служб и файлов EXE
distributedtransaction.trace_trace Инфраструктура трассировки
distributedtransaction.trace_util Трассировка служебных подпрограмм, вызываемых из разных мест
distributedtransaction.trace_xa Источник трассировки диспетчера транзакций XA (XATM)
distributedtransaction.tracefilepath Папка, в которой должны храниться файлы трассировки
distributedtransaction.turnoffrpcsecurity Включение или отключение безопасности RPC для распределенных транзакций

Принятие EULA служб Машинное обучение

Добавление пакетов R или Python машинного обучения в ядро СУБД требует принятия условий лицензирования для дистрибутивов R и Python с открытым кодом. В следующей таблице перечислены все доступные команды или параметры, связанные с mlservices EULAs. Для R и Python используются одни и те же параметры.

# For all packages: database engine and mlservices
# Setup prompts for mlservices EULAs, which you need to accept
sudo /opt/mssql/bin/mssql-conf setup

# Add R or Python to an existing installation
sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml

# Alternative valid syntax
# Adds the EULA section to the INI and sets acceptulam to yes
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y

# Rescind EULA acceptance and removes the setting
sudo /opt/mssql/bin/mssql-conf unset EULA accepteulaml

Принятие лицензионных соглашений можно также настроить непосредственно в файле mssql.conf.

[EULA]
accepteula = Y
accepteulaml = Y

Включение исходящего сетевого доступа

Исходящий сетевой доступ для расширений R, Python и Java в Службах машинного обучения SQL Server по умолчанию отключен. Чтобы включить исходящие запросы, задайте outboundnetworkaccess логическое свойство с помощью mssql-conf.

Задав это свойство, перезапустите службу панели запуска SQL Server, чтобы считать обновленные значения из файла INI. При изменении любого свойства, связанного с расширяемостью, появляется сообщение с напоминанием о необходимости перезапуска.

# Adds the extensibility section and property.
# Sets "outboundnetworkaccess" to true.
# This setting is required if you want to access data or operations off the server.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1

# Turns off network access but preserves the setting
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 0

# Removes the setting and rescinds network access
sudo /opt/mssql/bin/mssql-conf unset extensibility.outboundnetworkaccess

Вы также можете добавить outboundnetworkaccess непосредственно в файл mssql.conf:

[extensibility]
outboundnetworkaccess = 1

Изменение уровня ведения журнала для соединителя SQL Server для Azure Key Vault

В SQL Server 2022 (16.x) с накопительным пакетом обновления 14 и более поздних версий SQL Server на Linux поддерживает управление расширяемыми ключами TDE с помощью Azure Key Vault. Для уровня ведения журнала можно задать одно из следующих значений:

Level Description
0 (по умолчанию) Информация
1 Ошибка
2 Нет журнала

Чтобы изменить уровень ведения журнала для соединителя SQL Server, используйте следующий пример:

sudo /opt/mssql/bin/mssql-conf set sqlconnector.logginglevel 1

Дополнительные сведения см. в разделе "Использование соединителя SQL Server с функциями шифрования SQL".

Изменение TCP-порта

Параметр network.tcpport изменяет TCP-порт, в котором SQL Server прослушивает подключения. По умолчанию используется порт 1433. Чтобы изменить порт, выполните приведенные ниже команды.

  1. Запустите скрипт mssql-conf в качестве корневого set файла с помощью команды:network.tcpport

    sudo /opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>
    
  2. Перезапустите службу SQL Server:

    sudo systemctl restart mssql-server
    
  3. Теперь при подключении к SQL Server нужно указывать пользовательский порт с запятой (,) после имени узла или IP-адреса. Например, чтобы подключиться к sqlcmd, используйте следующую команду:

    sqlcmd -S localhost,<new_tcp_port> -U test -P test
    

Указание параметров TLS

Ниже приведены параметры, которые служат для настройки протокола TLS для экземпляра SQL Server, работающего на платформе Linux.

Вариант Описание
network.forceencryption Если задано значение 1, SQL Server требует, чтобы все подключения были зашифрованными. По умолчанию этот параметр имеет значение 0.
network.tlscert Абсолютный путь к файлу сертификата, используемому SQL Server для TLS. Пример: /etc/ssl/certs/mssql.pem. Файл сертификата должен быть доступен учетной записи mssql. Корпорация Майкрософт рекомендует ограничивать доступ к этому файлу с помощью chown mssql:mssql <file>; chmod 400 <file>.
network.tlskey Абсолютный путь к файлу закрытого ключа, используемому SQL Server для TLS. Пример: /etc/ssl/private/mssql.key. Файл сертификата должен быть доступен учетной записи mssql. Корпорация Майкрософт рекомендует ограничивать доступ к этому файлу с помощью chown mssql:mssql <file>; chmod 400 <file>.
network.tlsprotocols Разделенный запятыми список протоколов TLS, которые SQL Server разрешает использовать. SQL Server всегда пытается использовать самый надежный из допустимых протоколов. Если клиент не поддерживает какой-либо разрешенный протокол, SQL Server отклоняет попытку подключения. В целях совместимости по умолчанию разрешены все поддерживаемые протоколы (1.2, 1.1, 1.0). Если клиенты поддерживают протокол TLS 1.2, корпорация Майкрософт рекомендует разрешать использовать только эту версию.
network.tlsciphers Определяет шифры, разрешенные к использованию для TLS в SQL Server. Строка должна соответствовать формату списка шифров OpenSSL. Как правило, изменять этот параметр не требуется.
По умолчанию разрешены следующие шифры:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
network.kerberoskeytabfile Путь к KEYTAB-файлу Kerberos

Пример использования параметров TLS см. в разделе "Шифрование подключений к SQL Server на Linux".

Параметры сети

См. руководство по использованию проверки подлинности Active Directory с SQL Server на Linux для получения исчерпывающей информации об использовании проверки подлинности Active Directory с SQL Server на Linux.

Ниже приведены дополнительные параметры сети, настраиваемые с помощью mssql-conf.

Вариант Описание
network.disablesssd Отключите запросы SSSD для сведений учетной записи Active Directory и вызовов LDAP по умолчанию. Возможные значения — true или false.
network.enablekdcfromkrb5conf Включение поиска сведений KDC из krb5.conf. Возможные значения — true или false.
network.forcesecureldap Принудительное использование протокола LDAPS для связи с контроллером домена. Возможные значения — true или false.
network.ipaddress IP-адрес для входящих подключений.
network.kerberoscredupdatefrequency Время в секундах между проверками учетных данных Kerberos, которые необходимо обновить. Значение — целое число.
network.privilegedadaccount Привилегированный пользователь Active Directory для проверки подлинности Active Directory. Значение — <username>. Дополнительные сведения см. в руководстве по использованию проверки подлинности Active Directory с SQL Server на Linux
uncmapping Сопоставляет UNC-путь с локальным путем. Например, sudo /opt/mssql/bin/mssql-conf set uncmapping //servername/sharename /tmp/folder.
ldaphostcanon Определяет, следует ли OpenLDAP канонизировать имена узлов на этапе привязки. Возможные значения — true или false.

Включение или отключение флагов трассировки

Параметр traceflag включает или отключает флаги трассировки для запуска службы SQL Server. Чтобы включить или отключить флаг трассировки, выполните приведенные ниже команды:

  1. Для включения флага трассировки используйте приведенную ниже команду. Например, для флага трассировки 1234:

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 on
    
  2. Вы можете включить несколько флагов трассировки, указав их отдельно:

    sudo /opt/mssql/bin/mssql-conf traceflag 2345 3456 on
    
  3. Аналогичным образом можно отключить один или несколько флагов трассировки, указав их и добавив off параметр:

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off
    
  4. Перезапустите службу SQL Server, чтобы применить изменения:

    sudo systemctl restart mssql-server
    

Удаление параметра

Чтобы удалить любой параметр, заданный с помощью mssql-conf set, вызовите программу mssql-conf с параметром unset и именем удаляемого параметра. В результате будет восстановлено значение параметра по умолчанию.

  1. Следующий пример очищает network.tcpport параметр.

    sudo /opt/mssql/bin/mssql-conf unset network.tcpport
    
  2. Перезапустите службу SQL Server.

    sudo systemctl restart mssql-server
    

Просмотр текущих параметров

Чтобы просмотреть все настроенные параметры, выполните следующую команду, чтобы вывести содержимое mssql.conf файла:

sudo cat /var/opt/mssql/mssql.conf

Некоторые параметры, отсутствующие в этом файле, имеют значения по умолчанию. В следующем разделе представлен пример mssql.conf файла.

Просмотр различных параметров

Чтобы просмотреть различные параметры, которые можно настроить с помощью служебной программы mssql-conf, выполните командуhelp:

sudo /opt/mssql/bin/mssql-conf --help

Результаты предоставляют различные параметры конфигурации и краткое описание для каждого из параметров.

Формат mssql.conf

В приведенном ниже файле /var/opt/mssql/mssql.conf представлен пример каждого параметра. Этот формат можно использовать для ручного внесения изменений в mssql.conf файл по мере необходимости. Чтобы внесенные вручную изменения вступили в силу, необходимо перезапустить SQL Server. Чтобы использовать mssql.conf файл с Docker, необходимо сохранить данные Docker. Сначала добавьте полный mssql.conf файл в каталог узла, а затем запустите контейнер. Ниже приведен пример настройки сбора данных об использовании и диагностике для SQL Server на Linux.

[EULA]
accepteula = Y

[coredump]
captureminiandfull = true
coredumptype = full

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456
[EULA]
accepteula = Y
accepteulaml = Y

[coredump]
captureminiandfull = true
coredumptype = full

[distributedtransaction]
servertcpport = 51999

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
rpcport = 13500
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456

Примите участие в разработке документации по SQL

Знаете ли вы, что содержимое SQL можно изменить самостоятельно? Это не только улучшит нашу документацию, но и даст вам статус участника в создании этой страницы.

Дополнительные сведения см. в разделе Участие в работе над документацией по SQL Server.