Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В следующих разделах описываются известные проблемы с SQL Server on Linux.
Общие
В следующей таблице перечислены наиболее распространенные проблемы с SQL Server on Linux.
| Проблема | Решение |
|---|---|
| Длина имени узла, в котором установлен SQL Server, должна составлять 15 символов или меньше. | Измените имя /etc/hostname на значение 15 символов длиной или меньше. |
| Установка системного времени назад вручную приводит к тому, что SQL Server переходит в состояние, в котором перестает обновлять внутренние системные часы в СУБД. | Перезапустите SQL Server. |
| Поддерживаются только установки с одним экземпляром системы. | Если вы хотите иметь несколько экземпляров на определенном узле, рассмотрите возможность использования виртуальных машин или контейнеров Linux. |
| SQL Server Configuration Manager не удается подключиться к SQL Server on 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 неправильно проверяет подпись в .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 on Linux. Это приводит к сбоям подключения при попытке подключиться к SQL Server и проблемам с установкой подключений между репликами в группах высокой доступности.
Чтобы устранить эту проблему, измените скрипт конфигурации
mssql.confдля SQL Server on 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 on 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 Database Engine. Если просмотреть журнал ошибок, вы увидите неверный путь к системным базам данных.Чтобы обойти эту проблему, запустите экземпляр в однопользовательском режиме и используйте
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 Agent
- проверка подлинности Windows
- Сторонние компоненты
- Отслеживание измененных данных (CDC)
- Горизонтальное масштабирование служб Integration Services
- пакет дополнительных компонентов Azure для служб SSIS
- Поддержка Hadoop и HDFS
- Microsoft Connector для SAP BW
Список встроенных компонентов SSIS, которые сейчас не поддерживаются или поддерживаются с ограничениями, см. в разделе Ограничения и известные проблемы для служб 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 on 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.
Службы Machine Learning
Применяется только к: SQL Server 2022 (16.x).
Для пакетов SQL Server 2022 (16.x) для RHEL 9 и Ubuntu 22.04 необходимо учитывать некоторые предварительные условия с cgroup-v1 перед установкой служб машинного обучения.
В качестве предусловия необходимо включить
cgroup-v1, как указано в документе «Использование cgroupfs для управления cgroups» для Red Hat Enterprise Linux 9 от Red Hat.Затем следуйте инструкциям, чтобы установить SQL Machine Learning Services, как описано.
Отключите изоляцию сетевого пространства имен.
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 on 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