Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В следующих разделах описываются известные проблемы с SQL Server на Linux.
Общие
В следующей таблице перечислены наиболее распространенные проблемы с SQL Server на Linux.
| Проблема | Решение |
|---|---|
| Длина имени узла, в котором установлен SQL Server, должна составлять 15 символов или меньше. | Измените имя /etc/hostname на значение 15 символов длиной или меньше. |
| Установка системного времени вручную назад приводит к тому, что SQL Server перестает обновлять внутреннее системное время в системе управления базами данных. | Перезапустите SQL Server. |
| Поддерживаются только установки с одним экземпляром системы. | Если вы хотите иметь несколько экземпляров на определенном узле, рассмотрите возможность использования виртуальных машин или контейнеров Linux. |
| диспетчер конфигурации SQL Server не удается подключиться к SQL Server на Linux. | Configuration Manager не поддерживается в Linux. Вместо этого используйте mssql-conf для управления SQL Server на Linux. |
Язык учетной sa записи по умолчанию — английский. |
Измените язык учетной записи sa с помощью инструкции ALTER LOGIN. |
Поставщик OLE DB регистрирует следующее предупреждение:Failed to verify the Authenticode signature of 'C:\binn\msoledbsql.dll'. Signature verification of SQL Server DLLs will be skipped. Genuine copies of SQL Server are signed. Failure to verify the Authenticode signature might indicate that this isn't an authentic release of SQL Server. Install a genuine copy of SQL Server or contact customer support. |
Предпринимать какие-либо действия не требуется. Поставщик OLE DB подписан с помощью SHA256. SQL Server Database Engine не валидирует подписанный .dll правильно. |
Команда сброса пароля с помощью mssql-conf выдает следующую ошибку:Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information. |
Сообщение об ошибке является ложным отрицательным. Сброс пароля выполнен успешно, и вы можете продолжить использование нового пароля. Применяется только к образам контейнеров : SQL Server 2022 (16.x). |
Базы данных
Базу данных
masterнельзя переместить с помощью служебной программы mssql-conf. Другие базы данных можно переместить с помощью mssql-conf.При восстановлении базы данных, резервная копия которой была создана на SQL Server в Windows, необходимо использовать оператор
WITH MOVEв инструкции Transact-SQL. Дополнительные сведения см. в статье Перенос базы данных SQL Server с Windows на Linux с использованием резервного копирования и восстановления.Некоторые алгоритмы (наборы шифров) для протокола TLS не работают должным образом с SQL Server на Linux. Это приводит к сбоям подключения при попытке подключиться к SQL Server и проблемам с установкой подключений между репликами в группах высокой доступности.
Чтобы устранить эту проблему, измените скрипт конфигурации
mssql.confдля SQL Server на Linux, чтобы отключить проблемные наборы шифров, выполнив следующие действия:Добавьте следующий раздел в
/var/opt/mssql/mssql.conf. Восклицательный символ (!) отрицает выражение. Это сообщает OpenSSL не использовать указанный набор шифров.[network] tlsciphers=AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!ECDHE-RSA-AES128-GCM-SHA256:!ECDHE-RSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES128-GCM-SHA256:!ECDHE-ECDSA-AES256-SHA384:!ECDHE-ECDSA-AES128-SHA256:!ECDHE-ECDSA-AES256-SHA:!ECDHE-ECDSA-AES128-SHA:!ECDHE-RSA-AES256-SHA384:!ECDHE-RSA-AES128-SHA256:!ECDHE-RSA-AES256-SHA:!ECDHE-RSA-AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-DSS-AES256-SHA256:!DHE-DSS-AES128-SHA256:!DHE-DSS-AES256-SHA:!DHE-DSS-AES128-SHA:!DHE-DSS-DES-CBC3-SHA:!NULL-SHA256:!NULL-SHAПерезапустите SQL Server с помощью следующей команды.
sudo systemctl restart mssql-server
базы данных SQL Server 2014 (12.x) в Windows, которые используют In-Memory OLTP, не могут быть восстановлены в SQL Server на Linux. Если база данных SQL Server 2014 (12.x) использует In-Memory OLTP, сначала обновите базы данных до более новой версии SQL Server на Windows. Затем можно перенести его на SQL Server под управлением Linux, используя резервное копирование и восстановление, либо отсоединение и подключение.
Разрешение
ADMINISTER BULK OPERATIONSпользователя на данный момент не поддерживается в Linux.Сжатые с помощью TDE резервные копии, сделанные с помощью SQL Server 2019 (15.x) CU 16 и более поздних версий, не могут быть восстановлены до предыдущих версий CU SQL Server 2019 (15.x). Дополнительные сведения см. в разделе Исправление: при выполнении инструкции RESTORE LOG или RESTORE DATABASE возникает ошибка 3241.
прозрачное шифрование данных (TDE) сжатые резервные копии, созданные с использованием предыдущих версий CU SQL Server 2019 (15.x), можно восстановить в SQL Server 2019 (15.x) CU 16 и последующих версиях.
При установке SQL Server 2022 (16.x) в Ubuntu 22.04 может появиться следующее сообщение об ошибке:
Failed to start ядро СУБД Microsoft SQL Server. Если просмотреть журнал ошибок, вы увидите неверный путь к системным базам данных.Чтобы обойти эту проблему, запустите экземпляр в однопользовательском режиме и используйте
ALTER DATABASE ... MODIFY FILEдля перемещения настроенного расположения системных баз данных в расположение/var/opt/mssql/dataпо умолчанию. После внесения этого изменения перезапустите службу.
Сеть
Функции, которые включают исходящие TCP-подключения из процесса sqlservr, такие как связанные серверы, PolyBase или группы высокой доступности, могут не работать, если выполняются оба следующих условия:
Целевой сервер указан в виде имени узла, а не IP-адреса.
В ядре для экземпляра источника отключен протокол IPv6. Чтобы проверить, включена ли в ядре поддержка протокола IPv6, необходимо успешно выполнить все следующие проверки.
-
cat /proc/cmdlineотображает командную строку загрузки текущего ядра. Выходные данные не должны содержатьipv6.disable=1. - Каталог
/proc/sys/net/ipv6/должен существовать. - Программа на языке C, которая вызывает
socket(AF_INET6, SOCK_STREAM, IPPROTO_IP), должна выполняться успешно — системный вызов должен возвращатьfd != -1, а не завершаться с ошибкойEAFNOSUPPORT.
-
Конкретная ошибка зависит от функции. Для связанных серверов отображается ошибка времени ожидания входа. Для групп ALTER AVAILABILITY GROUP JOIN доступности DDL в дополнительном объекте завершится сбоем через пять минут с ошибкой download configuration timeout .
Чтобы обойти эту проблему, выполните одно из следующих действий.
Используйте IP-адреса вместо имен узлов, чтобы указать целевой объект подключения по протоколу TCP.
Включите протокол IPv6 в ядре, удалив
ipv6.disable=1из командной строки загрузки. Метод зависит от дистрибутива Linux и загрузчика, например grub. Если вы хотите отключить протокол IPv6, это можно сделать, задавnet.ipv6.conf.all.disable_ipv6 = 1в конфигурацииsysctl(например,/etc/sysctl.conf). Хотя этот параметр не позволяет сетевому адаптеру системы получать IPv6-адрес, он позволяет функциямsqlservrработать.
TLS 1.3 не поддерживается в SQL Server 2022 г.
Применяется только к: SQL Server 2022 (16.x).
Хотя tls 1.3 поддерживается в SQL Server 2022 (16.x) для Windows, необходимо использовать TLS 1.2 в Linux.
Замечание
TLS 1.3 поддерживается для SQL Server 2025 (17.x) в Ubuntu 22.04, Ubuntu 24.04, RHEL 9 и RHEL 10. ПРОТОКОЛ TLS 1.3 включен по умолчанию.
Сетевая файловая система NFS
При использовании удаленных общих папок NFS в рабочей среде необходимо обратить внимание на следующие требования к поддержке.
Используйте NFS версии 4.2 или более поздней. Более старые версии NFS не поддерживают необходимые возможности, такие как использование команды
fallocateи создание разреженных файлов, общие для современных файловых систем.Найдите только
/var/opt/mssqlкаталоги на подключении NFS. Другие файлы, такие как SQL Server системные двоичные файлы, не поддерживаются.При подключении удаленной общей папки клиенты NFS должны использовать параметр
nolock.
Локализация
Если ваша локаль не английская (
en_us) во время установки, в сеансе bash или в терминале необходимо использовать кодировку UTF-8. Если вы используете кодировку ASCII, может появиться ошибка, аналогичная следующим выходным данным:UnicodeEncodeError: кодек ascii не может кодировать символ u'\xf1' в позиции 8: порядковый номер не в диапазоне(128)
Если вы не можете использовать кодирование UTF-8, запустите программу установки с помощью переменной среды
MSSQL_LCID, чтобы указать требуемый язык.sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setupПри выполнении
mssql-conf setupи выполнении установки SQL Server на неанглийском языке, неправильные расширенные символы могут отображаться после локализованного текста "Настройка SQL Server...". Или, для установок на языках, не основанных на латинице, это предложение может полностью отсутствовать. В отсутствующем предложении должна отображаться следующая локализованная строка:Идентификатор PID лицензирования успешно обработан. Новый выпуск — [<Имя> выпуска].
Эта строка выводится только для информационных целей, не влияет на успешную установку SQL Server каким-либо образом.
Полнотекстовый поиск
Не все фильтры доступны в этом выпуске, включая фильтры для Microsoft Office документов. Список поддерживаемых фильтров см. в разделе Install SQL Server Full-Text Search в Linux.
SQL Server Integration Services (SSIS)
Пакет mssql-server-is не поддерживается в SUSE Linux Enterprise Server (SLES). Пакет поддерживается в Ubuntu и Red Hat Enterprise Linux (RHEL).
Пакеты Integration Services могут использовать подключения ODBC на Linux. Эта функция была протестирована с драйверами SQL Server и MySQL ODBC, но должна также работать с любым драйвером ODBC, который соответствует спецификации ODBC. На этапе проектирования можно предоставить либо DSN, либо строку подключения для подключения к данным ODBC; кроме того, можно использовать аутентификацию Windows. Дополнительные сведения см. в записи блога с объявлением поддержки ODBC в Linux.
Следующие функции не поддерживаются в этом выпуске при запуске пакетов служб SSIS в Linux:
- База данных каталога служб интеграции
- Запланированное выполнение пакета с помощью агент SQL Server
- проверка подлинности Windows
- Сторонние компоненты
- Отслеживание измененных данных (CDC)
- Горизонтальное масштабирование служб Integration Services
- пакет дополнительных компонентов Azure для служб SSIS
- Поддержка Hadoop и HDFS
- соединитель Microsoft для SAP BW
Список встроенных компонентов служб SSIS, которые в настоящее время не поддерживаются или поддерживаются с ограничениями, см. статью Feature support and considerations for SQL Server Integration Services (SSIS) на Linux.
Дополнительные сведения о службах SSIS в Linux см. в следующих статьях.
- Запись блога с объявлением о поддержке SSIS для Linux
- Install SQL Server Integration Services (SSIS) в Linux
- Извлечение, преобразование и загрузка данных в Linux с помощью служб SSIS
SQL Server Management Studio (SSMS)
Следующие ограничения применяются к SQL Server Management Studio при подключении Windows к SQL Server на Linux.
Планы обслуживания не поддерживаются.
Хранилище данных (MDW) и сборщик данных в SQL Server Management Studio не поддерживаются.
Компоненты пользовательского интерфейса SQL Server Management Studio, поддерживающие Windows-аутентификацию или параметры журнала событий Windows, не работают с Linux. Эти функции по-прежнему можно использовать с другими параметрами, такими как учетные записи SQL Server.
Количество сохраненных файлов журнала невозможно изменить.
Высокий уровень доступности и аварийное восстановление
Применяется только к: SQL Server 2022 (16.x).
При запуске SQL Server 2022 (16.x) CU 16 и более ранних версий в RHEL 9 в качестве ограниченного приложения с поддержкой SELinux кластеризация Pacemaker может не работать должным образом. Чтобы использовать возможности кластеризации Pacemaker, необходимо установить SQL Server 2022 (16.x) в качестве неопределенного приложения с включенной функцией SELinux. Эта проблема устранена в SQL Server 2022 (16.x) CU 17.
Службы Машинное обучение
Применяется только к: SQL Server 2022 (16.x).
Для пакетов SQL Server 2022 (16.x) для RHEL 9 и Ubuntu 22.04 необходимо учитывать некоторые предварительные условия перед установкой службы машинного обучения.
В качестве предусловия необходимо включить
cgroup-v1, как указано в документе «Использование cgroupfs для управления cgroups» для Red Hat Enterprise Linux 9 от Red Hat.Затем следуйте инструкциям, чтобы установить службу машинного обучения SQL, как описано в документации.
Отключите изоляцию сетевого пространства имен.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Перезапустите
mssql-launchpaddслужбу, чтобы эти изменения вступили в силу.sudo systemctl restart mssql-launchpadd
Известные проблемы в SQL Server 2025 г.
Следующие проблемы влияют на SQL Server 2025 г. (17.x).
SQL Server на Linux не удается запустить на компьютерах с гибридной архитектурой ЦП
Issue: экземпляры SQL Server в Linux могут не запускаться, если компьютер использует процессор Intel 12-го поколения или более поздней версии с гибридной архитектурой, и операционная система хоста — Linux.
Может появиться сообщение об ошибке, аналогичное следующему выводу:
Reason: 0x00000004 Message: ASSERT: Expression=(result * DrtlGetProcessorCoreCount() == DrtlGetProcessorCount()) File=LibOS\Windows\Kernel\SQLPal\common\dk\sos\src\sosnumap.cpp Line=208
Если вы хотите использовать операционную систему узла Linux, вы можете обойти проблему, отключив ядра эффективности (E-core) в BIOS. Если вы используете контейнеры или гипервизор, например Hyper-V на Windows (включая WSL), вы не пострадали.
Локальные модели ONNX не поддерживаются в операционных системах Linux
CREATE EXTERNAL MODEL локальные модели ONNX, размещенные непосредственно на SQL Server, в настоящее время недоступны для Linux на SQL Server 2025 (17.x).
Связанный контент
- Заметки к выпуску SQL Server 2022 на Linux
- Редакции и поддерживаемые функции SQL Server 2022 в Linux
- Устранение неполадок SQL Server на Linux