Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le sezioni seguenti descrivono i problemi noti relativi alle SQL Server on Linux.
Generale
Nella tabella seguente sono elencati i problemi più comuni relativi alla SQL Server on Linux.
| Problema | Risoluzione |
|---|---|
| La lunghezza del nome host in cui è installato SQL Server deve essere di almeno 15 caratteri. | Cambia il nome in /etc/hostname con un valore lungo al massimo 15 caratteri. |
| Impostando manualmente il tempo di sistema indietro nel tempo, SQL Server interrompe l'aggiornamento dell'ora di sistema interna all'interno del Database Engine. | Riavviare SQL Server. |
| Sono supportate solo le installazioni a istanza singola. | Se si vuole avere più di un'istanza in un determinato host, valutare di usare le macchine virtuali o i contenitori Linux. |
| SQL Server Configuration Manager non è possibile connettersi a SQL Server on Linux. | Nessuno. |
La lingua predefinita dell'account sa è inglese. |
Modificare la lingua dell'account sa con l'istruzione ALTER LOGIN . |
Il provider OLE DB registra l'avviso seguente: 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. |
Non è necessaria alcuna azione. Il provider OLE DB viene firmato con SHA256. Il SQL Server Database Engine non convalida correttamente il .dll firmato. |
Il comando Reset password che utilizza mssql-conf genera l'errore seguente:Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information. |
Il messaggio di errore è un falso negativo. La reimpostazione della password ha avuto esito positivo ed è possibile continuare a usare la nuova password. Applica solo a: le immagini dei container di SQL Server 2022 (16.x). |
Database
Non è possibile spostare il database
mastercon l'utilità mssql-conf. Si possono invece spostare altri database di sistema con mssql-conf.Quando si ripristina un database di cui è stato eseguito il backup in SQL Server in Windows, è necessario usare la clausola
WITH MOVEnell'istruzione Transact-SQL. Per altre informazioni, vedere Migrate a SQL Server database da Windows a Linux tramite backup e ripristino.Alcuni algoritmi (pacchetti di crittografia) per Transport Layer Security (TLS) non funzionano correttamente con SQL Server on Linux. Ciò comporta errori di connessione quando si tenta di connettersi a SQL Server e problemi durante la definizione delle connessioni tra le repliche in gruppi di disponibilità elevata.
Per risolvere questo problema, modificare lo script di configurazione
mssql.confper SQL Server on Linux per disabilitare pacchetti di crittografia problematici, seguendo questa procedura:Aggiungere la sezione riportata di seguito a
/var/opt/mssql/mssql.conf. Il simbolo esclamativo (!) nega l'espressione. Questo indica a OpenSSL di non usare il pacchetto di crittografia successivo.[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-SHARiavviare SQL Server con il comando seguente.
sudo systemctl restart mssql-server
SQL Server database 2014 (12.x) in Windows che usano In-Memory OLTP non possono essere ripristinati in SQL Server on Linux. Se il database SQL Server 2014 (12.x) usa In-Memory OLTP, aggiornare prima i database a una versione più recente di SQL Server in Windows. È quindi possibile spostarlo in SQL Server on Linux, con backup/ripristino o scollegamento/collegamento.
L'autorizzazione utente
ADMINISTER BULK OPERATIONSnon è attualmente supportata in Linux.I backup compressi TDE eseguiti con SQL Server 2019 (15.x) CU 16 e versioni successive non possono essere ripristinati nelle versioni cu precedenti di SQL Server 2019 (15.x). Per altre informazioni, vedere CORREZIONE: si verifica l'errore 3241 durante l'esecuzione di RESTORE DATABASE o RESTORE LOG.
i backup compressi Transparent Data Encryption (TDE) eseguiti con le versioni cu precedenti di SQL Server 2019 (15.x) possono comunque essere ripristinati usando SQL Server 2019 (15.x) CU 16 e versioni successive.
Quando si installa SQL Server 2022 (16.x) in Ubuntu 22.04, è possibile che venga visualizzato il messaggio di errore seguente:
Failed to start Microsoft SQL Server Database Engine. Se si esamina il log degli errori, viene visualizzato un percorso errato per i database di sistema.Per aggirare questo problema, avviare l'istanza in modalità utente singolo e usare
ALTER DATABASE ... MODIFY FILEper spostare il percorso configurato dei database di sistema nel percorso predefinito/var/opt/mssql/data. Dopo aver apportato questa modifica, riavviare il servizio.
Rete
Le funzionalità che coinvolgono le connessioni TCP in uscita dal processo sqlservr, ad esempio i server collegati, PolyBase o i gruppi di disponibilità, potrebbero non funzionare se vengono soddisfatte entrambe le condizioni seguenti:
Il server di destinazione è specificato come nome host e non come indirizzo IP.
L'istanza di origine ha IPv6 disabilitato nel kernel. Per verificare se il sistema ha IPv6 abilitato nel kernel, è necessario che vengano superati tutti i test seguenti:
-
cat /proc/cmdlinestampa la riga di comando di avvio del kernel corrente. L'output non deve contenereipv6.disable=1. - La directory
/proc/sys/net/ipv6/deve esistere. - Un programma C che chiama
socket(AF_INET6, SOCK_STREAM, IPPROTO_IP)deve avere esito positivo. Syscall deve restituirefd != -1e non deve verificarsi l'erroreEAFNOSUPPORT.
-
L'errore esatto dipende dalla funzionalità. Per i server collegati, viene visualizzato un errore di timeout di accesso. Per i gruppi di disponibilità, il DDL ALTER AVAILABILITY GROUP JOIN sul server secondario fallirà dopo 5 minuti con un errore download configuration timeout.
Per aggirare il problema, optare per una delle seguenti possibilità:
Usare gli IP invece dei nomi host per specificare la destinazione della connessione TCP.
Abilitare IPv6 nel kernel rimuovendo
ipv6.disable=1dalla riga di comando di avvio. Il metodo dipende dalla distribuzione di Linux e dal bootloader, ad esempio grub. Se si vuole disabilitare IPv6, si può comunque farlo impostandonet.ipv6.conf.all.disable_ipv6 = 1nella configurazionesysctl(ad esempio,/etc/sysctl.conf). Anche se questa operazione impedisce alla scheda di rete del sistema di ottenere un indirizzo IPv6, consente comunque di usare le funzionalità disqlservr.
TLS 1.3 non supportato in SQL Server 2022
Applica solo a: SQL Server 2022 (16.x).
Sebbene TLS 1.3 sia supportato in SQL Server 2022 (16.x) per Windows, è necessario usare TLS 1.2 in Linux.
Annotazioni
TLS 1.3 è supportato per SQL Server 2025 (17.x) in Ubuntu 22.04, Ubuntu 24.04, RHEL 9 e RHEL 10. TLS 1.3 è abilitato per impostazione predefinita.
File system di rete (NFS)
Se si usano condivisioni di rete NFS (Network File System, file system di rete) nell'ambiente di produzione, tenere presenti i requisiti di supporto seguenti:
Usare NFS versione 4.2 o versioni successive. Le versioni precedenti di NFS non supportano le funzionalità necessarie, ad esempio
fallocatee la creazione di file sparse, comuni ai file system moderni.Individuare solo le directory
/var/opt/mssqlnel mount NFS. Altri file, ad esempio i file binari di sistema SQL Server, non sono supportati.Assicurarsi che i client NFS usino l'opzione
nolockper il montaggio della condivisione remota.
Localizzazione
Se le impostazioni locali non sono in inglese (
en_us) durante l'installazione, è necessario usare la codifica UTF-8 nella sessione o nel terminale Bash. Se si usa la codifica ASCII, potrebbe essere visualizzato un errore simile all’output seguente:UnicodeEncodeError: il codec “ascii” non può codificare il carattere u'\xf1' nella posizione 8: ordinale non compreso nell'intervallo(128)
Se non è possibile usare la codifica UTF-8, eseguire il programma di installazione usando la variabile di ambiente
MSSQL_LCIDper specificare la lingua scelta.sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setupQuando si esegue
mssql-conf setuped si esegue un'installazione non in lingua inglese di SQL Server, è possibile visualizzare caratteri estesi non corretti dopo il testo localizzato, "Configurazione SQL Server... ". Invece, per le installazioni non basate sull'alfabeto latino, la frase potrebbe mancare completamente. La frase mancante dovrebbe corrispondere alla stringa localizzata seguente:Il PID di licenze è stato elaborato con successo. La nuova edizione è [edizione <Nome>].
Questa stringa viene restituita solo a scopo informativo, non influisce sull'installazione corretta di SQL Server in alcun modo.
Ricerca testuale completa
Non tutti i filtri sono disponibili con questa versione, inclusi i filtri per i documenti di Microsoft Office. Per un elenco dei filtri supportati, vedere Installare ricerca SQL Server Full-Text in Linux.
SQL Server Integration Services (SSIS)
Il pacchetto mssql-server-is non è supportato in SUSE Linux Enterprise Server (SLES). Il pacchetto è supportato in Ubuntu e Red Hat Enterprise Linux (RHEL).
I pacchetti di Integration Services possono usare connessioni ODBC in Linux. Questa funzionalità è stata testata con i driver ODBC SQL Server e MySQL, ma è previsto che funzioni anche con qualsiasi driver ODBC Unicode che osserva la specifica ODBC. In fase di progettazione è possibile fornire un DSN o un connection string per connettersi ai dati ODBC. È anche possibile usare Windows authentication. Per altre informazioni, vedere il post di blog che annuncia il supporto ODBC in Linux.
Le funzionalità seguenti non sono supportate in questa versione quando si eseguono pacchetti SSIS in Linux:
- Database del catalogo di Integration Services
- Esecuzione pianificata dei pacchetti per SQL Server Agent
- autenticazione Windows
- Componenti di terze parti
- Acquisizione dei dati modificati (CDC)
- Servizi di Integrazione Espansione Orizzontale
- Azure Feature Pack per SSIS
- Supporto di Hadoop e HDFS
- Microsoft Connector per SAP BW
Per un elenco di componenti SSIS predefiniti non attualmente supportati oppure supportati con limitazioni, vedere Limitazioni e problemi noti di SSIS in Linux.
Per altre informazioni su SSIS in Linux, vedere gli articoli seguenti:
- Post di blog che annuncia il supporto SSIS per Linux.
- Installare SQL Server Integration Services (SSIS) in Linux
- Estrarre, trasformare e caricare i dati in Linux con SSIS
SQL Server Management Studio (SSMS)
Le limitazioni seguenti si applicano alle SQL Server Management Studio Windows connesse a SQL Server on Linux.
I piani di manutenzione non sono supportati.
Le Data Warehouse di gestione (MDW) e l'agente di raccolta dati in SQL Server Management Studio non sono supportate.
SQL Server Management Studio componenti dell'interfaccia utente con opzioni di autenticazione Windows o Windows registro eventi non funzionano con Linux. È comunque possibile usare queste funzionalità con altre opzioni, ad esempio le autenticazioni di SQL Server.
Non è possibile modificare il numero di file di log da conservare.
Disponibilità elevata e ripristino di emergenza
Applica solo a: SQL Server 2022 (16.x).
Quando si esegue SQL Server 2022 (16.x) CU 16 e versioni precedenti su RHEL 9 come applicazione confinata con SELinux abilitato, il clustering Pacemaker potrebbe non funzionare come previsto. È necessario installare SQL Server 2022 (16.x) come applicazione non definita con SELinux attivata per usare le funzionalità di clustering pacemaker. Questo problema viene risolto in SQL Server 2022 (16.x) CU 17.
Servizi di Machine Learning
Applica solo a: SQL Server 2022 (16.x).
Per i pacchetti di SQL Server 2022 (16.x) per RHEL 9 e Ubuntu 22.04, ci sono alcuni prerequisiti da tenere in considerazione con cgroup-v1, prima di installare i Servizi di Machine Learning.
Come prerequisito,
cgroup-v1deve essere abilitato in base all'uso di cgroupfs per gestire manualmente i cgroup Red Hat Enterprise Linux 9 da Red Hat.Seguire quindi le istruzioni per installare i servizi sql Machine Learning come documentato.
Disabilitare l'isolamento dello spazio dei nomi di rete.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Riavviare quindi il servizio
mssql-launchpaddper applicare le modifiche.sudo systemctl restart mssql-launchpadd
Problemi noti in SQL Server 2025
I problemi seguenti interessano SQL Server 2025 (17,x).
SQL Server on Linux non è possibile avviare nei computer con l'architettura della CPU ibrida
Issue: le istanze di SQL Server in Linux potrebbero non riuscire se il computer usa una CPU dell'architettura ibrida Intel 12th Gen o successiva e il sistema operativo host è Linux.
Potrebbe essere visualizzato un messaggio di errore simile all'output seguente:
Reason: 0x00000004 Message: ASSERT: Expression=(result * DrtlGetProcessorCoreCount() == DrtlGetProcessorCount()) File=LibOS\Windows\Kernel\SQLPal\common\dk\sos\src\sosnumap.cpp Line=208
Se si vuole usare un sistema operativo host Linux, è possibile risolvere il problema disabilitando i core di efficienza (E-core) nel BIOS. Se si usano contenitori o un hypervisor come Hyper-V su Windows (incluso WSL), non si è soggetti a problemi.
Modelli ONNX locali non supportati nei sistemi operativi Linux
CREATE EXTERNAL MODEL modelli ONNX locali ospitati direttamente nella SQL Server non sono attualmente disponibili per Linux in SQL Server 2025 (17.x).