Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В следующих разделах описываются известные проблемы с 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 с резервным копированием/восстановлением или отключением/присоединением.
Linux сейчас не поддерживает разрешение пользователя
ADMINISTER BULK OPERATIONS.Вы не можете восстановить сжатые с помощью прозрачное шифрование данных (TDE) резервные копии, созданные с использованием SQL Server 2019 (15.x) CU 16 и более поздних версий, на предыдущие версии SQL Server 2019 (15.x). Дополнительные сведения см. в FIX: ошибка 3241 возникает при выполнении RESTORE LOG или RESTOREDATABASE.
Вы по-прежнему можете использовать SQL Server 2019 (15.x) CU 16 и более поздние версии для восстановления резервных копий, сжатых с помощью TDE и созданных в предыдущих версиях CU для SQL Server 2019 (15.x).
При установке 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.
-
Конкретная ошибка зависит от функции. Для связанных серверов отображается ошибка времени ожидания входа. Для групп доступности выполнение DDL на вторичном экземпляре ALTER AVAILABILITY GROUP JOIN завершается сбоем через пять минут с ошибкой 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и создание разреженных файлов, общие для современных файловых систем.В точке монтирования NFS поддерживаются только каталоги
/var/opt/mssql. Другие файлы, такие как SQL Server системные двоичные файлы, не поддерживаются.При подключении удаленной общей папки клиенты NFS должны использовать параметр
nolock.
Подключение IPv6 с проверкой подлинности Microsoft Entra
Если сервер или контейнер включены для IPv6, убедитесь, что IPv6-адреса доступны и маршрутизируются. Если протокол IPv6 не полностью настроен, запросы проверки подлинности в Microsoft Entra ID могут завершиться ошибкой из-за недоступности конечных точек IPv6.
Чтобы управлять поведением разрешения DNS IPv6 на SQL Server 2022 CU 19 и более поздних версий, установите network.ipv6dnsrecordslimit параметр в mssql-conf. Дополнительные сведения см. в разделе network.ipv6dnsrecordslimit.
Локализация
Если ваша локаль не английская (
en_us) во время установки, в сеансе bash или в терминале необходимо использовать кодировку UTF-8. Если вы используете кодировку ASCII, может появиться ошибка, аналогичная следующим выходным данным:UnicodeEncodeError: кодек ascii не может кодировать символ u'\xf1' в позиции 8: порядковый номер не в диапазоне(128)
Если вы не можете использовать кодировку UTF-8, запустите setup с
MSSQL_LCIDпеременной среды, чтобы указать ваш язык.sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setupПри запуске
mssql-conf setupи выполнении неанглийской установки SQL Server вы можете увидеть неправильные расширенные символы после локализованного текста «Configuring 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, а также должна работать с любым драйвером Unicode ODBC, который соблюдает спецификацию ODBC. Во время проектирования предоставьте либо DSN, либо строка подключения для подключения к данным ODBC; также можно использовать проверка подлинности Windows. Дополнительные сведения см. в записи блога с объявлением поддержки ODBC в Linux.
В этом выпуске не поддерживаются следующие функции при запуске SSIS-пакетов на Linux:
- База данных каталога служб интеграции
- Запланированное выполнение пакета с помощью агент SQL Server
- проверка подлинности Windows
- Сторонние компоненты
- Отслеживание измененных данных (CDC)
- Горизонтальное масштабирование служб Integration Services
- пакет дополнительных компонентов Azure для служб SSIS
- Поддержка Hadoop и HDFS
- соединитель Microsoft для SAP BW
Для списка встроенных компонентов SSIS с ограниченной или отсутствующей поддержкой см. раздел Поддержка функций и соображения для 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 требования до установки Машинное обучение Services.
В качестве предварительного требования включите
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).