Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W poniższych sekcjach opisano znane problemy z SQL Server on Linux.
Ogólne
W poniższej tabeli wymieniono najczęstsze problemy z SQL Server on Linux.
| Problematyka | Rezolucja |
|---|---|
| Długość nazwy hosta, na której zainstalowany jest SQL Server, musi wynosić 15 znaków lub krótsza. | Zmień nazwę na /etc/hostname wartość o długości 15 znaków lub krótszą. |
| Ręczne ustawienie czasu systemowego wstecznie powoduje, że SQL Server przestaje aktualizować wewnętrzny czas systemowy w Database Engine. | Uruchom ponownie SQL Server. |
| Obsługiwane są tylko instalacje pojedynczej instancji. | Aby mieć więcej niż jedną instancję na danym hostie, rozważ użycie maszyn wirtualnych lub kontenerów Linuksa. |
| Menedżer konfiguracji SQL Server nie może połączyć się z SQL Server działającym na Linux. | Configuration Manager nie jest obsługiwana w systemie Linux. Zamiast tego użyj mssql-conf, aby zarządzać programem SQL Server w systemie Linux. |
Domyślnym językiem sa konta jest angielski. |
Zmień język konta sa za pomocą instrukcji ALTER LOGIN. |
Dostawca OLE DB rejestruje następujące ostrzeżenie: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. |
Nie trzeba podejmować żadnych działań. Dostawca OLE DB używa podpisu SHA256. SQL Server Database Engine nie weryfikuje poprawnie podpisanej .dll. |
Polecenie resetowania hasła w wywołuje mssql-conf następujący błąd:Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information. |
Komunikat o błędzie jest fałszywie ujemny. Reset hasła się powiódł i możesz dalej używać nowego hasła. Dotyczy to tylko: obrazów kontenerowych SQL Server 2022 (16.x). |
Baz danych
Nie możesz przenieść bazy
masterdanych za pomocąmssql-conftego narzędzia. Możesz przenosić inne bazy danych systemowych za pomocąmssql-conf.Podczas przywracania bazy danych, której kopia zapasowa została utworzona na SQL Server w Windows, należy użyć klauzuli
WITH MOVEw instrukcji Transact-SQL. Aby uzyskać więcej informacji, zobacz Migrate a SQL Server database from Windows to Linux using backup and restore (Tworzenie kopii zapasowych i przywracanie).Niektóre algorytmy (zestawy szyfrowania) dla protokołu Transport Layer Security (TLS) nie działają prawidłowo z SQL Server on Linux. To zachowanie powoduje awarie połączenia podczas próby połączenia z SQL Server oraz problemy z nawiązywaniem połączeń między replikami w grupach o wysokiej dostępności.
Aby rozwiązać ten problem, zmodyfikuj
mssql.confskrypt konfiguracyjny SQL Server on Linux, aby wyłączyć problematyczne zestawy szyfrów:Dodaj następującą sekcję do
/var/opt/mssql/mssql.conf. Symbol wykrzyknika (!) neguje wyrażenie. Ta negacja nakazuje OpenSSL nie używać następującego pakietu szyfrów.[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-SHAUruchom ponownie SQL Server za pomocą następującego polecenia.
sudo systemctl restart mssql-server
Nie możesz przywrócić SQL Server baz danych z 2014 roku (12.x) na Windows, które korzystają z In-Memory OLTP, aby SQL Server on Linux. Jeśli baza danych SQL Server 2014 (12.x) używa In-Memory OLTP, najpierw uaktualnij bazy danych do nowszej wersji SQL Server na Windows. Następnie przenieś go na SQL Server on Linux, z kopią zapasową/przywróceniem lub odłączyć/dołączyć.
Linux obecnie nie obsługuje uprawnień
ADMINISTER BULK OPERATIONSużytkownika.Nie można przywrócić kopii zapasowych skompresowanych przez Transparent Data Encryption (TDE), wykonanych w wersjach SQL Server 2019 (15.x) CU 16 i nowszych, do wcześniejszych wersji SQL Server 2019 (15.x). Aby uzyskać więcej informacji, zobacz FIX: Błąd 3241 występuje podczas wykonywania RESTORE LOG lub RESTOREDATABASE.
Wciąż można używać SQL Server 2019 (15.x) CU 16 i nowszych wersji, aby przywrócić kopie zapasowe skompresowane przez TDE, wykonane z poprzednich wersji SQL Server 2019 (15.x).
Podczas instalowania SQL Server 2022 (16.x) w systemie Ubuntu 22.04 może zostać wyświetlony następujący komunikat o błędzie:
Failed to start Microsoft SQL Server Database Engine. Jeśli przeglądasz dziennik błędów, zobaczysz nieprawidłową ścieżkę dla systemowych baz danych.Aby obejść ten problem, uruchom wystąpienie w trybie pojedynczego użytkownika i użyj polecenia
ALTER DATABASE ... MODIFY FILE, aby przenieść skonfigurowaną lokalizację systemowych baz danych do domyślnej lokalizacji/var/opt/mssql/data. Po wprowadzeniu tej zmiany zrestartuj usługę.
Sieć
Funkcje wymagające wychodzących połączeń TCP z sqlservr procesu, takie jak serwery połączone, PolyBase czy grupy dostępności, mogą nie działać, jeśli obowiązują oba następujące warunki:
Serwer docelowy jest określony jako nazwa hosta, a nie adres IP.
Wystąpienie źródłowe ma wyłączony protokół IPv6 w jądrze. Aby sprawdzić, czy system ma włączony protokół IPv6 w jądrze, wszystkie następujące testy muszą przejść:
-
cat /proc/cmdlinedrukuje wiersz polecenia rozruchowego bieżącego jądra. Dane wyjściowe nie mogą zawierać elementuipv6.disable=1. - Katalog
/proc/sys/net/ipv6/musi istnieć. - Program C, który wywołuje połączenia
socket(AF_INET6, SOCK_STREAM, IPPROTO_IP), powinien się sprawdzić. Syscall musi zwrócić afd != -1i nie może zawiódć zEAFNOSUPPORT.
-
Dokładny błąd zależy od funkcji. W przypadku serwerów połączonych zostanie wyświetlony błąd przekroczenia limitu czasu logowania. W przypadku grup dostępności, ALTER AVAILABILITY GROUP JOIN DDL na wtórnym przestaje działać po pięciu minutach z powodu download configuration timeout błędu.
Aby obejść ten problem, wykonaj jedną z następujących opcji:
Użyj adresów IP zamiast nazw hostów, aby określić cel połączenia TCP.
Włącz protokół IPv6 w jądrze, usuwając z
ipv6.disable=1wiersza polecenia rozruchu. Metoda zależy od dystrybucji systemu Linux i bootloadera, takiego jak grub. Jeśli chcesz wyłączyć protokół IPv6, możesz go nadal wyłączyć, ustawiającnet.ipv6.conf.all.disable_ipv6 = 1w konfiguracjisysctl(na przykład/etc/sysctl.conf). Mimo że to ustawienie uniemożliwia karcie sieciowej systemu uzyskanie adresu IPv6, pozwala funkcyjnym elementomsqlservrdziałać poprawnie.
Protokół TLS 1.3 nie jest obsługiwany w SQL Server 2022
Dotyczy tylko SQL Server 2022 (16.x).
Chociaż protokół TLS 1.3 jest obsługiwany w SQL Server 2022 (16.x) dla Windows, należy użyć protokołu TLS 1.2 w systemie Linux.
Uwaga / Notatka
Protokół TLS 1.3 jest obsługiwany w wersji SQL Server 2025 (17.x) w systemie Ubuntu 22.04, Ubuntu 24.04, RHEL 9 i RHEL 10. Protokół TLS 1.3 jest domyślnie włączony.
Sieciowy system plików (NFS)
Jeśli używasz zdalnych udziałów NFS w środowisku produkcyjnym, należy pamiętać o następujących wymaganiach wsparcia:
Użyj systemu plików NFS w wersji 4.2 lub nowszej. Starsze wersje NFS nie obsługują wymaganych funkcji, takich jak
fallocatei tworzenie plików rozrzedzonych, typowych dla nowoczesnych systemów plików.Tylko katalogi
/var/opt/mssqlsą obsługiwane na montażu NFS. Inne pliki, takie jak pliki binarne systemu SQL Server, nie są obsługiwane.Upewnij się, że klienci systemu plików NFS używają
nolockopcji podczas instalowania udziału zdalnego.
Łączność IPv6 z uwierzytelnianiem Microsoft Entra
Jeśli serwer lub kontener jest włączony dla protokołu IPv6, upewnij się, że adresy IPv6 są osiągalne i routingowe. Jeśli protokół IPv6 nie jest w pełni skonfigurowany, żądania uwierzytelniania do Microsoft Entra ID mogą zakończyć się niepowodzeniem z powodu nieosiągalnych punktów końcowych protokołu IPv6.
Aby kontrolować sposób rozpoznawania nazw DNS dla protokołu IPv6 w programie SQL Server 2022 CU 19 i nowszych wersjach, ustaw opcję network.ipv6dnsrecordslimit w mssql-conf. Aby uzyskać więcej informacji, zobacz network.ipv6dnsrecordslimit.
Lokalizacja
Jeśli ustawienia regionalne nie są angielskie (
en_us) podczas konfiguracji, należy użyć kodowania UTF-8 w sesji/terminalu Bash. Jeśli używasz kodowania ASCII, może zostać wyświetlony błąd podobny do następujących danych wyjściowych:UnicodeEncodeError: koder kodowy „ascii” nie może zakodować znaku u'\xf1' na pozycji 8: wartość nie mieści się w zakresie (128)
Jeśli nie możesz używać kodowania UTF-8, uruchom setup z
MSSQL_LCIDzmienną środowiskową, aby określić wybór języka.sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setupGdy uruchamiasz i wykonujesz
mssql-conf setupinstalację SQL Server w języku nieangielskim, możesz zobaczyć błędne znaki rozszerzone po lokalnym tekście "Congesting SQL Server... ". Lub, w przypadku instalacji nielatynicznych, zdanie może być całkowicie nieobecne. Brakujące zdanie powinno wyświetlać następujący zlokalizowany ciąg znaków:Pomyślnie przetworzono identyfikator PID licencjonowania. Nowe wydanie to [<Nazwa> edycja].
Ten ciąg zawiera wyłącznie informacje i nie wpływa na instalację SQL Server.
Wyszukiwanie pełnotekstowe
Nie wszystkie filtry są dostępne w tej wersji, w tym filtry dla dokumentów Microsoft Office. Aby uzyskać listę obsługiwanych filtrów, zobacz Install SQL Server Full-Text Search w systemie Linux.
SQL Server Integration Services (SSIS)
Pakiet mssql-server-is nie jest obsługiwany w systemie SUSE Linux Enterprise Server (SLES). Pakiet jest obsługiwany na Ubuntu oraz Red Hat Enterprise Linux (RHEL).
Pakiety usług Integration Services mogą używać połączeń ODBC w systemie Linux. Ta funkcjonalność działa z sterownikami SQL Server i MySQL ODBC, a także powinna działać z każdym sterownikiem Unicode ODBC, który spełnia specyfikację ODBC. W czasie projektowania podaj albo DSN, albo parametry połączenia, aby połączyć się z danymi ODBC; możesz także użyć Windows authentication. Aby uzyskać więcej informacji, zobacz wpis w blogu informujący o obsłudze ODBC w systemie Linux.
Ta wersja nie obsługuje następujących funkcji podczas uruchamiania pakietów SSIS na Linuksie:
- Baza danych katalogu usług Integration Services
- Zaplanowane wykonywanie pakietu przez SQL Server Agent
- Uwierzytelnianie Windows
- Komponenty stron trzecich
- Przechwytywanie zmian danych (CDC)
- Skalowanie w poziomie usług Integration Services
- Pakiet funkcji Azure dla SSIS
- Obsługa usług Hadoop i HDFS
- Microsoft Connector for SAP BW (Łącznik Microsoft dla systemu SAP BW)
Listę wbudowanych komponentów SSIS z ograniczonym lub żadnym wsparciem można znaleźć w artykule Feature support and considerations for SQL Server Integration Services (SSIS) na Linuksie.
Aby uzyskać więcej informacji o usłudze SSIS w systemie Linux, zobacz następujące artykuły:
- Wpis w blogu informujący o obsłudze usług SSIS dla systemu Linux.
- Install SQL Server Integration Services (SSIS) w systemie Linux
- wyodrębnianie, przekształcanie i ładowanie danych w systemie Linux przy użyciu usługi SSIS
SQL Server Management Studio (SSMS)
Następujące ograniczenia dotyczą SQL Server Management Studio Windows połączonych z SQL Server on Linux.
Plany konserwacji nie są wspierane.
Management Data Warehouse (MDW) i kolektor danych w SQL Server Management Studio nie są obsługiwane.
SQL Server Management Studio składniki interfejsu użytkownika, które mają uwierzytelnianie Windows lub opcje dziennika zdarzeń Windows nie działają w systemie Linux. Nadal można używać tych funkcji z innymi opcjami, takimi jak loginy SQL Server.
Nie możesz zmieniać liczby plików logów, które chcą zachować.
Wysoka dostępność i odzyskiwanie po awarii
Dotyczy tylko SQL Server 2022 (16.x).
Po uruchomieniu SQL Server 2022 (16.x) CU 16 i starszych wersji w systemie RHEL 9 jako aplikacji z ograniczeniami przy włączonej opcji SELinux, klastrowanie Pacemaker może nie działać zgodnie z oczekiwaniami. Aby korzystać z funkcji klastrowania Pacemakerów, musisz zainstalować SQL Server 2022 (16.x) jako aplikację nielimitowaną z włączonym SELinux. Ten problem został rozwiązany w SQL Server 2022 (16.x) CU 17.
usługi Machine Learning
Dotyczy tylko SQL Server 2022 (16.x).
W przypadku pakietów SQL Server 2022 (16.x) dla RHEL 9 i Ubuntu 22.04 należy rozważyć te cgroup-v1 wymagania przed instalacją Machine Learning Services.
Warunkiem wstępnym jest włączenie
cgroup-v1opisanego w Używaniu cgroupfs do ręcznego zarządzania cgroups Red Hat Enterprise Linux 9 od Red Hat.Następnie postępuj zgodnie z instrukcjami, aby instalować usługi SQL Machine Learning Services zgodnie z dokumentacją.
Wyłącz izolację przestrzeni nazw sieci.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Uruchom ponownie
mssql-launchpaddusługę, aby te zmiany zaczęły obowiązywać.sudo systemctl restart mssql-launchpadd
Znane problemy w SQL Server 2025 r.
Następujące problemy mają wpływ na SQL Server 2025 (17.x).
SQL Server on Linux nie można uruchomić na maszynach z architekturą hybrydowego procesora CPU
Issue: Instancje SQL Server w systemie Linux mogą się nie uruchomić, jeśli maszyna używa procesora Intel 12. generacji z architekturą hybrydową, a system operacyjny hosta to Linux.
Może zostać wyświetlony komunikat o błędzie podobny do następujących danych wyjściowych:
Reason: 0x00000004 Message: ASSERT: Expression=(result * DrtlGetProcessorCoreCount() == DrtlGetProcessorCount()) File=LibOS\Windows\Kernel\SQLPal\common\dk\sos\src\sosnumap.cpp Line=208
Jeśli chcesz użyć hosta z systemem Linux, możesz obejść ten problem, wyłączając rdzenie efektywności (E-rdzenie) w systemie BIOS. Jeśli używasz kontenerów lub hipernadzorcy, jak Hyper-V na Windows (w tym WSL), problem nie dotyczy Ciebie.
Lokalne modele ONNX nie są obsługiwane w systemach operacyjnych Linux
UTWÓRZ MODEL ZEWNĘTRZNY lokalne modele ONNX hostowane bezpośrednio na SQL Server nie są obecnie dostępne dla systemu Linux w SQL Server 2025 (17.x).