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, w której zainstalowano SQL Server, musi wynosić 15 znaków lub mniej. | Zmień nazwę w na wartość mającą 15 znaków lub mniej. |
| Ręczne ustawienie systemowego czasu wstecz powoduje, że SQL Server zatrzymuje aktualizowanie czasu wewnętrznego w ramach Database Engine. | Uruchom ponownie SQL Server. |
| Obsługiwane są tylko instalacje pojedynczej instancji. | Jeśli chcesz mieć więcej niż jedno wystąpienie na danym hoście, rozważ użycie maszyn wirtualnych lub kontenerów systemu Linux. |
| SQL Server Configuration Manager nie może połączyć się z SQL Server na Linuxie. | Żaden. |
| Domyślnym językiem konta jest angielski. | Zmień język konta za pomocą instrukcji . |
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 jest podpisany przy użyciu algorytmu SHA256. SQL Server Database Engine nie weryfikuje poprawnie podpisanej .dll. |
Polecenie Resetuj hasło przy użyciu narzędzia mssql-conf zgłasza 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. Resetowanie hasła zakończyło się pomyślnie i można kontynuować korzystanie z nowego hasła. Dotyczy: tylko obrazów kontenerów SQL Server 2022 (16.x). |
Baz danych
Nie można przenieść bazy danych za pomocą narzędzia mssql-conf. Inne systemowe bazy danych można przenosić za pomocą narzędzia 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. Powoduje to błędy połączeń podczas próby nawiązania połączenia z SQL Server oraz problemy z nawiązywaniem połączeń między replikami w grupach wysokiej dostępności.
Aby rozwiązać ten problem, zmodyfikuj skrypt konfiguracji
mssql.confdla SQL Server on Linux, aby wyłączyć problematyczne zestawy szyfrowania, wykonując następujące kroki:Dodaj następującą sekcję do . Symbol wykrzyknika () neguje wyrażenie. Informuje to, że biblioteka OpenSSL nie używa następującego pakietu szyfrowania.
[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
SQL Server 2014 (12.x) baz danych w Windows, które używają In-Memory OLTP, nie można przywrócić do 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 możesz przenieść go do SQL Server on Linux, wykonując kopię zapasową i przywracanie, lub odłączając i załączając.
Obecnie uprawnienia użytkownika nie są obsługiwane w systemie Linux.
Nie można przywrócić kopii zapasowych skompresowanych przez funkcję TDE wykonanych przy użyciu SQL Server 2019 (15.x) CU 16 i nowszych wersji do wcześniejszych wersji CU SQL Server 2019 (15.x). Aby uzyskać więcej informacji, zobacz FIX: Błąd 3241 występuje podczas wykonywania funkcji RESTORE LOG lub RESTORE DATABASE.
Skompresowane kopie zapasowe z użyciem Transparent Data Encryption (TDE), które są tworzone przy użyciu poprzednich wersji aktualizacji CU dla SQL Server 2019 (15.x), można nadal przywracać za pomocą SQL Server 2019 (15.x) CU 16 i nowszych wersji.
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 , aby przenieść skonfigurowaną lokalizację systemowych baz danych do domyślnej lokalizacji . Po wprowadzeniu tej zmiany uruchom ponownie usługę.
Sieć
Funkcje obejmujące wychodzące połączenia TCP z procesu, takie jak serwery połączone, PolyBase lub grupy dostępności, mogą nie działać, jeśli spełnione są 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ść:
- drukuje wiersz polecenia rozruchowego bieżącego jądra. Dane wyjściowe nie mogą zawierać elementu .
- Katalog musi istnieć.
- Program języka C, który wywołuje , powinien zakończyć się powodzeniem — wywołanie systemowe musi zwrócić i nie może zakończyć się niepowodzeniem .
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, DDL na głównym serwerze zapasowym zakończy się niepowodzeniem po pięciu minutach z powodu 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 wiersza 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ąc w konfiguracji (na przykład ). Mimo że to ustawienie uniemożliwia karcie sieciowej systemu uzyskanie adresu IPv6, pozwala funkcyjnym elementom działać poprawnie.
Protokół TLS 1.3 nie jest obsługiwany w SQL Server 2022
Applies to: SQL Server 2022 (tylko 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 i tworzenie plików rozrzedzonych, typowych dla nowoczesnych systemów plików.
Znajdź tylko katalogi na montowaniu NFS. Inne pliki, takie jak pliki binarne systemu SQL Server, nie są obsługiwane.
Upewnij się, że klienci systemu plików NFS używają opcji podczas instalowania udziału zdalnego.
Lokalizacja
Jeśli ustawienia regionalne nie są angielskie () 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żyć kodowania UTF-8, uruchom instalatora przy użyciu zmiennej środowiskowej , aby określić wybór języka.
sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setupPo uruchomieniu
mssql-conf setupi zainstalowaniu SQL Server w innym języku niż angielski, po zlokalizowanym tekście "Konfigurowanie SQL Server..." mogą być wyświetlane niepoprawne znaki rozszerzone. 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 jest przeznaczony tylko do celów informacyjnych, nie wpływa na pomyślną instalację SQL Server w żaden sposób.
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 nie jest obsługiwany w systemie SUSE Linux Enterprise Server (SLES). Pakiet jest obsługiwany w systemach Ubuntu i Red Hat Enterprise Linux (RHEL).
Pakiety usług Integration Services mogą używać połączeń ODBC w systemie Linux. Ta funkcja została przetestowana przy użyciu SQL Server i sterowników ODBC MySQL, ale oczekuje się również, że będzie działać z dowolnym sterownikiem Unicode ODBC, który obserwuje specyfikację ODBC. W czasie projektowania można podać nazwę DSN lub ciąg połączenia w celu nawiązania połączenia z danymi ODBC; można również użyć uwierzytelniania Windows. Aby uzyskać więcej informacji, zobacz wpis w blogu informujący o obsłudze ODBC w systemie Linux.
Następujące funkcje nie są obsługiwane w tej wersji podczas uruchamiania pakietów usług SSIS w systemie Linux:
- 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
- Azure Feature Pack dla SSIS
- Obsługa usług Hadoop i HDFS
- Microsoft Konektor dla SAP BW
Aby uzyskać listę wbudowanych składników usług SSIS, które nie są obecnie obsługiwane lub które są obsługiwane z ograniczeniami, zobacz Ograniczenia i znane problemy dotyczące usług SSIS w systemie Linux.
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.
Magazyn Danych Zarządzania (MDW) oraz zbieracz 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. Można nadal używać tych funkcji z innymi opcjami, takimi jak loginy SQL Server.
Nie można modyfikować liczby zachowywanych plików dziennika.
Wysoka dostępność i odzyskiwanie po awarii
Applies to: SQL Server 2022 (tylko 16.x).
Po uruchomieniu SQL Server 2022 (16.x) CU 16 oraz wcześniejszych wersji na RHEL 9 jako ograniczonej aplikacji z włączonym SELinux, klastrowanie Pacemaker może nie działać zgodnie z oczekiwaniami. Aby korzystać z możliwości klastrowania Pacemaker, musisz zainstalować SQL Server 2022 (16.x) jako aplikację bez ograniczeń z włączonym programem SELinux. Ten problem został rozwiązany w SQL Server 2022 (16.x) CU 17.
usługi Machine Learning
Applies to: SQL Server 2022 (tylko 16.x).
W przypadku pakietów SQL Server 2022 (16.x) dla systemów RHEL 9 i Ubuntu 22.04 należy uwzględnić pewne wymagania wstępne dotyczące cgroup-v1 przed zainstalowaniem usług Machine Learning.
- RHEL 9
- Ubuntu 22.04
Aby ręcznie zarządzać grupami kontrolnymi w Red Hat Enterprise Linux 9 za pomocą cgroupfs, należy włączyć zgodnie z dokumentacją „Using cgroupfs to manually manage cgroups Red Hat Enterprise Linux 9” dostarczoną przez 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 usł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: Wystąpienia SQL Server na systemie Linux mogą zakończyć się niepowodzeniem, jeśli maszyna używa procesora Intel 12. generacji lub nowszej architektury hybrydowej, 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 funkcji hypervisor, takiej jak Hyper-V w Windows (w tym WSL), nie ma to wpływu.
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).