Configurare SQL Server in Linux con lo strumento mssql-conf

Si applica a:SQL Server - Linux

mssql-conf è uno script di configurazione che viene installato con SQL Server 2017 (14.x) per Red Hat Enterprise Linux, SUSE Linux Enterprise Server e Ubuntu. Modifica il file mssql.conf in cui vengono archiviati i valori di configurazione. È possibile usare l'utilità mssql-conf per impostare i parametri seguenti:

Parametro Descrizione
Agente Abilitare SQL Server Agent.
Eseguire l'autenticazione con Windows Impostazioni per l'autenticazione di Windows Server Active Directory.
Regole di confronto Impostare nuove regole di confronto per SQL Server in Linux.
Commenti e suggerimenti degli utenti Scegliere se in SQL Server è possibile o meno inviare commenti e suggerimenti a Microsoft.
Profilo di Posta elettronica database Impostare il profilo predefinito di Posta elettronica database per SQL Server in Linux.
Directory predefinita dati Cambiare la directory predefinita per i nuovi file di dati (con estensione mdf) di un database di SQL Server.
Directory predefinita log Cambiare la directory predefinita per i nuovi file di log (con estensione ldf) di un database di SQL Server.
Directory predefinita del database master Cambiare la directory predefinita per il database master e i file di log.
Nome file predefinito del database master Modificare il nome dei file di database master.
Directory dump predefinita Cambiare la directory predefinita per i dump della memoria e altri file per la risoluzione dei problemi.
Directory predefinita del log degli errori Cambiare la directory predefinita per i nuovi file di log degli errori di SQL Server, Analisi profiler predefinita, file XE di sessione di integrità del sistema e file XE di sessioni Hekaton.
Directory di backup predefinita Cambiare la directory predefinita per i nuovi file di backup.
Tipo di dump Scegliere il tipo di file di dump della memoria da raccogliere.
Edizione Impostare l'edizione di SQL Server.
Disponibilità elevata Abilitare i gruppi di disponibilità.
Directory del controllo locale Impostare una directory per aggiungere i file del controllo locale.
impostazioni locali Specificare le impostazioni locali da usare in SQL Server.
Limite memoria Impostare il limite di memoria per SQL Server.
Impostazioni di rete Impostazioni di rete aggiuntive per SQL Server.
Microsoft Distributed Transaction Coordinator Configurare e risolvere i problemi relativi a MSDTC in Linux.
Porta TCP Modificare la porta su cui SQL Server è in ascolto delle connessioni.
TLS Configurare Transport Layer Security.
Flag di traccia Impostare i flag di traccia che verranno usati dal servizio.

mssql-conf è uno script di configurazione che viene installato con SQL Server 2019 (15.x) per Red Hat Enterprise Linux, SUSE Linux Enterprise Server e Ubuntu. È possibile usare questa utilità per impostare i parametri seguenti:

Parametro Descrizione
Agente Abilitare SQL Server Agent
Eseguire l'autenticazione con Windows Impostazioni per l'autenticazione di Windows Server Active Directory.
Regole di confronto Impostare nuove regole di confronto per SQL Server in Linux.
Commenti e suggerimenti degli utenti Scegliere se in SQL Server è possibile o meno inviare commenti e suggerimenti a Microsoft.
Profilo di Posta elettronica database Impostare il profilo predefinito di Posta elettronica database per SQL Server in Linux.
Directory predefinita dati Cambiare la directory predefinita per i nuovi file di dati (con estensione mdf) di un database di SQL Server.
Directory predefinita log Cambiare la directory predefinita per i nuovi file di log (con estensione ldf) di un database di SQL Server.
Directory file predefinita del database master Cambiare la directory predefinita per i file di database master nell'installazione di SQL esistente.
Nome file predefinito del database master Modificare il nome dei file di database master.
Directory dump predefinita Cambiare la directory predefinita per i dump della memoria e altri file per la risoluzione dei problemi.
Directory predefinita del log degli errori Cambiare la directory predefinita per i nuovi file di log degli errori di SQL Server, Analisi profiler predefinita, file XE di sessione di integrità del sistema e file XE di sessioni Hekaton.
Directory di backup predefinita Cambiare la directory predefinita per i nuovi file di backup.
Tipo di dump Scegliere il tipo di file di dump della memoria da raccogliere.
Edizione Impostare l'edizione di SQL Server.
Disponibilità elevata Abilitare i gruppi di disponibilità.
Directory del controllo locale Impostare una directory per aggiungere i file del controllo locale.
impostazioni locali Specificare le impostazioni locali da usare in SQL Server.
Limite memoria Impostare il limite di memoria per SQL Server.
Microsoft Distributed Transaction Coordinator Configurare e risolvere i problemi relativi a MSDTC in Linux.
Contratto di licenza dei servizi di Machine Learning Accettare i Contratti di licenza con l'utente finale di R e Python per i pacchetti mlservices. Si applica a: solo SQL Server 2019 (15.x).
Impostazioni di rete Impostazioni di rete aggiuntive per SQL Server.
outboundnetworkaccess Abilitare l'accesso alla rete in uscita per le estensioni R, Python e Java di Machine Learning Services.
Porta TCP Modificare la porta su cui SQL Server è in ascolto delle connessioni.
TLS Configurare Transport Layer Security.
Flag di traccia Impostare i flag di traccia che verranno usati dal servizio.

mssql-conf è uno script di configurazione che viene installato con SQL Server 2022 (16.x) per Red Hat Enterprise Linux e Ubuntu. È possibile usare questa utilità per impostare i parametri seguenti:

Parametro Descrizione
Agente Abilitare SQL Server Agent
Eseguire l'autenticazione con ID Microsoft Entra Impostazioni per l'autenticazione con Microsoft Entra ID (già Azure Active Directory).
Eseguire l'autenticazione con Windows Impostazioni per l'autenticazione di Windows Server Active Directory.
Regole di confronto Impostare nuove regole di confronto per SQL Server in Linux.
Commenti e suggerimenti degli utenti Scegliere se in SQL Server è possibile o meno inviare commenti e suggerimenti a Microsoft.
Profilo di Posta elettronica database Impostare il profilo predefinito di Posta elettronica database per SQL Server in Linux.
Directory predefinita dati Cambiare la directory predefinita per i nuovi file di dati (con estensione mdf) di un database di SQL Server.
Directory predefinita log Cambiare la directory predefinita per i nuovi file di log (con estensione ldf) di un database di SQL Server.
Directory file predefinita del database master Cambiare la directory predefinita per i file di database master nell'installazione di SQL esistente.
Nome file predefinito del database master Modificare il nome dei file di database master.
Directory dump predefinita Cambiare la directory predefinita per i dump della memoria e altri file per la risoluzione dei problemi.
Directory predefinita del log degli errori Cambiare la directory predefinita per i nuovi file di log degli errori di SQL Server, Analisi profiler predefinita, file XE di sessione di integrità del sistema e file XE di sessioni Hekaton.
Directory di backup predefinita Cambiare la directory predefinita per i nuovi file di backup.
Tipo di dump Scegliere il tipo di file di dump della memoria da raccogliere.
Edizione Impostare l'edizione di SQL Server.
Disponibilità elevata Abilitare i gruppi di disponibilità.
Directory del controllo locale Impostare una directory per aggiungere i file del controllo locale.
impostazioni locali Specificare le impostazioni locali da usare in SQL Server.
Limite memoria Impostare il limite di memoria per SQL Server.
Microsoft Distributed Transaction Coordinator Configurare e risolvere i problemi relativi a MSDTC in Linux.
Contratto di licenza dei servizi di Machine Learning Accettare i Contratti di licenza con l'utente finale di R e Python per i pacchetti mlservices. Si applica a: solo SQL Server 2019 (15.x).
Impostazioni di rete Impostazioni di rete aggiuntive per SQL Server.
Accesso alla rete in uscita Abilitare l'accesso alla rete in uscita per le estensioni R, Python e Java di Machine Learning Services.
Porta TCP Modificare la porta su cui SQL Server è in ascolto delle connessioni.
TLS Configurare Transport Layer Security.
Flag di traccia Impostare i flag di traccia che verranno usati dal servizio.

Suggerimento

Alcune di queste impostazioni possono anche essere configurate tramite le variabili di ambiente. Per altre informazioni, vedere Configurare le impostazioni di SQL Server con variabili di ambiente in Linux.

Suggerimenti per l'uso

  • Per i gruppi di disponibilità Always On e i cluster di dischi condivisi, apportare sempre le stesse modifiche di configurazione in ogni nodo.

  • Per lo scenario con cluster di dischi condivisi, non tentare di riavviare il servizio mssql-server per applicare le modifiche. SQL Server viene eseguito come applicazione. In alternativa, portare la risorsa offline e quindi riportarla online.

  • In questi esempi viene eseguito mssql-conf specificando il percorso completo: /opt/mssql/bin/mssql-conf. Se invece si sceglie di passare a tale percorso, eseguire mssql-conf nel contesto della directory corrente: ./mssql-conf.

  • Se si vuole modificare il file mssql.conf all'interno di un contenitore, creare un file mssql.conf nell'host in cui è in esecuzione il contenitore con le impostazioni desiderate e ridistribuire quindi il contenitore. Ad esempio, l'aggiunta seguente al file mssql.conf abilita SQL Server Agent.

    [sqlagent]
    enabled = true
    

    È possibile implementare il contenitore con i seguenti comandi:

    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
    -p 5433:1433 --name sql1 \
    -v /container/sql1:/var/opt/mssql \
    -d mcr.microsoft.com/mssql/server:2019-latest
    

    Per ulteriori informazioni, vedere Creare i file di configurazione che verranno usati dal contenitore di SQL Server.

Abilitare SQL Server Agent

L'impostazione sqlagent.enabled consente di abilitare SQL Server Agent. Per impostazione predefinita, SQL Server Agent è disabilitato. Se sqlagent.enabled non è presente nel file di impostazioni mssql.conf, SQL Server internamente presuppone che SQL Server Agent sia disabilitato.

Per modificare questa impostazione, eseguire la procedura descritta di seguito:

  1. Abilitare SQL Server Agent:

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Riavviare il servizio SQL Server:

    sudo systemctl restart mssql-server
    

Impostare il profilo predefinito di Posta elettronica database per SQL Server in Linux.

sqlagent.databasemailprofile consente di impostare il profilo predefinito di posta elettronica del database per gli avvisi di posta elettronica.

sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile <profile_name>

Log degli errori di SQL Agent

Le impostazioni sqlagent.errorlogfile e sqlagent.errorlogginglevel consentono di configurare rispettivamente il percorso file di log e il livello di registrazione di SQL Agent.

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogfile <path>

I livelli di registrazione di SQL Agent sono valori di maschera di bit che equivalgono a quanto segue:

  • 1 = Errors (Errori)
  • 2 = Warnings (Avvisi)
  • 4 = Info (Informazioni)

Se si vogliono acquisire tutti i livelli, usare 7 come valore.

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogginglevel <level>

Configurare l'autenticazione di Microsoft Entra

A partire da SQL Server 2022 (16.x), è possibile configurare Microsoft Entra ID per SQL Server. Per configurare Microsoft Entra ID, è necessario installare l'estensione di Azure per SQL Server dopo l'installazione di SQL Server. Per ulteriori informazioni su come configurare Microsoft Entra ID, vedere Esercitazione: Configurare l'autenticazione di Microsoft Entra per SQL Server.

Modificare il percorso di certificazione predefinito di Microsoft Entra ID

Per impostazione predefinita, il file di certificato di Microsoft Entra viene archiviato in /var/opt/mssql/aadsecrets/. È possibile modificare questo percorso se si usa un archivio certificati o un'unità crittografata. Per modificare il percorso, è possibile usare il comando seguente:

sudo /opt/mssql/bin/mssql-conf set network.aadcertificatefilepath /path/to/new/location.pfx

Nell'esempio precedente, /path/to/new/location.pfx è il percorso preferito, che include il nome del certificato.

Il certificato per l'autenticazione di Microsoft Entra scaricato dall'estensione di Azure per SQL Server viene ora archiviato in questa posizione. Non può essere modificato in /var/opt/mssql/secrets.

Nota

Il percorso di certificazione predefinito di Microsoft Entra ID può essere modificato in qualsiasi momento dopo l'installazione di SQL Server, ma deve essere modificato prima di abilitare Microsoft Entra ID.

Opzioni di configurazione di Microsoft Entra ID

Le opzioni seguenti vengono usate dall'autenticazione di Microsoft Entra per un'istanza di SQL Server in esecuzione in Linux.

Avviso

I parametri di Microsoft Entra ID sono configurati dall'estensione di Azure per SQL Server e non devono essere riconfigurati manualmente. Sono elencati qui a solo scopo informativo.

Opzione Descrizione
network.aadauthenticationendpoint Endpoint per l’autenticazione di Microsoft Entra
network.aadcertificatefilepath Percorso del file di certificato per l'autenticazione in Microsoft Entra ID
network.aadclientcertblacklist Blocklist di certificati client di Microsoft Entra ID
network.aadclientid GUID client Microsoft Entra
network.aadfederationmetadataendpoint Endpoint per i metadati della federazione di Microsoft Entra
network.aadgraphapiendpoint Endpoint per l'API Graph di Azure AD
network.aadgraphendpoint Endpoint Azure AD Graph
network.aadissuerurl URL emittente Microsoft Entra
network.aadmsgraphendpoint Endpoint di Microsoft Entra MS Graph
network.aadonbehalfofauthority Microsoft Entra ID per conto dell'autorità
network.aadprimarytenant GUID del tenant primario di Microsoft Entra
network.aadsendx5c Send X5C di Microsoft Entra ID
network.aadserveradminname Nome dell'account Microsoft Entra che verrà reso sysadmin
network.aadserveradminsid SID dell'account Microsoft Entra che verrà reso sysadmin
network.aadserveradmintype Tipo dell'account Microsoft Entra che verrà reso sysadmin
network.aadserviceprincipalname Nome dell'entità servizio di Microsoft Entra
network.aadserviceprincipalnamenoslash nome dell'entità servizio di Microsoft Entra, senza barra
network.aadstsurl URL del servizio token di sicurezza di Microsoft Entra

Configurare l'autenticazione di Active Directory Windows

L'opzione setup-ad-keytab consente di creare un keytab, ma per usare l'opzione è necessario creare l'utente e i nomi dell'entità servizio. L'utilità Active Directory, adutil, consente di creare utenti, nomi dell'entità servizio e keytab.

Per opzioni sull'uso di setup-ad-keytab, eseguire questo comando:

sudo /opt/mssql/bin/mssql-conf setup-ad-keytab --help

L'opzione validate-ad-config convalida la configurazione per l'autenticazione di Active Directory.

Modificare le regole di confronto di SQL

L'opzione set-collation consente di modificare il valore delle regole di confronto in una delle regole di confronto supportate. Per apportare questa modifica, è necessario arrestare il servizio SQL Server.

  1. Eseguire innanzitutto il backup di tutti i database utente nel server.

  2. Usare quindi la stored procedure sp_detach_db per scollegare i database utente.

  3. Eseguire l'opzione set-collation e seguire le istruzioni:

    sudo /opt/mssql/bin/mssql-conf set-collation
    
  4. L'utilità mssql-conf tenta di modificare il valore di confronto specificato e di riavviare il servizio. Se si verificano errori, viene eseguito il rollback delle regole di confronto al valore precedente.

  5. Ripristinare i backup dei database utente.

Per un elenco delle regole di confronto supportate, eseguire la funzione sys.fn_helpcollations: SELECT Name from sys.fn_helpcollations().

Configurare i commenti e suggerimenti degli utenti

L’impostazione telemetry.customerfeedback cambia a prescindere dal fatto che l’SQL Server invii il feedback a Microsoft o meno. Per impostazione predefinita, questo valore è impostato su true per tutte le edizioni. Per modificare il valore, eseguire i comandi seguenti:

Importante

Non è possibile disattivare la raccolta dei commenti e suggerimenti degli utenti per le edizioni gratuite di SQL Server, Express e Developer.

  1. Eseguire lo script mssql-conf come root con il comando set per telemetry.customerfeedback. L'esempio seguente disattiva il feedback dei clienti specificando false.

    sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
    
  2. Riavviare il servizio SQL Server:

    sudo systemctl restart mssql-server
    

Per ulteriori informazioni, vedere Configurare la raccolta di dati di diagnostica e utilizzo per SQL Server in Linux e il Supplemento alla privacy di SQL Server.

Modificare il percorso predefinito della directory dei dati o dei log

Le impostazioni filelocation.defaultdatadir e filelocation.defaultlogdir consentono di modificare il percorso in cui vengono creati i nuovi file di database e di log. Per impostazione predefinita, il percorso è /var/opt/mssql/data. Per modificare queste impostazioni, eseguire la procedura descritta di seguito:

  1. Creare la directory di destinazione per i nuovi file di dati e di log del database. L'esempio seguente crea una nuova directory /tmp/data:

    sudo mkdir /tmp/data
    
  2. Sostituire il proprietario e il gruppo della directory con l'utente mssql:

    sudo chown mssql /tmp/data
    sudo chgrp mssql /tmp/data
    
  3. Usare mssql-conf per modificare la directory dati predefinita con il comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /tmp/data
    
  4. Riavviare il servizio SQL Server:

    sudo systemctl restart mssql-server
    
  5. Ora tutti i file di database per i nuovi database creati vengono archiviati in questa nuova posizione. Se si vuole modificare il percorso dei file di log (con estensione ldf) dei nuovi database, è possibile usare il comando set seguente:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /tmp/log
    
  6. Questo comando presuppone inoltre che esista una directory /tmp/log, accessibile con l'utente e il gruppo mssql.

Modificare il percorso della directory predefinita dei file di database master

Le impostazioni filelocation.masterdatafile e filelocation.masterlogfile modificano il percorso in cui il motore di database di SQL Server cerca i file di database master. Per impostazione predefinita, il percorso è /var/opt/mssql/data.

Per modificare queste impostazioni, eseguire la procedura descritta di seguito:

  1. Creare la directory di destinazione per i nuovi file di log degli errori. L'esempio seguente crea una nuova directory /tmp/masterdatabasedir:

    sudo mkdir /tmp/masterdatabasedir
    
  2. Sostituire il proprietario e il gruppo della directory con l'utente mssql:

    sudo chown mssql /tmp/masterdatabasedir
    sudo chgrp mssql /tmp/masterdatabasedir
    
  3. Usare mssql-conf per modificare la directory predefinita del database master per i dati master e i file di log con il comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /tmp/masterdatabasedir/master.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.masterlogfile /tmp/masterdatabasedir/mastlog.ldf
    

    Nota

    Oltre a spostare i file di dati master e dei log, viene modificato il percorso predefinito anche per tutti gli altri database di sistema.

  4. Arrestare il servizio SQL Server:

    sudo systemctl stop mssql-server
    
  5. Spostare i file master.mdf e mastlog.ldf:

    sudo mv /var/opt/mssql/data/master.mdf /tmp/masterdatabasedir/master.mdf
    sudo mv /var/opt/mssql/data/mastlog.ldf /tmp/masterdatabasedir/mastlog.ldf
    
  6. Avviare il servizio SQL Server:

    sudo systemctl start mssql-server
    

    Nota

    Se SQL Server non riesce a trovare i file master.mdf e mastlog.ldf nella directory specificata, viene creata automaticamente in tale directory una copia basata su modelli dei database di sistema e SQL Server viene avviato correttamente. I metadati come i database utente, gli account di accesso al server, i certificati del server, le chiavi di crittografia, i processi di SQL Agent o la password di accesso SA precedente, tuttavia, non saranno aggiornati nel nuovo database master. È necessario arrestare SQL Server, spostare i file master.mdf e mastlog.ldf precedenti nel nuovo percorso specificato e avviare SQL Server per continuare a usare i metadati esistenti.

Modificare il nome dei file di database master

Le impostazioni filelocation.masterdatafile e filelocation.masterlogfile modificano il percorso in cui il motore di database di SQL Server cerca i file di database master. È anche possibile usare tali impostazioni per modificare il nome del database master e dei file di log.

Per modificare queste impostazioni, eseguire la procedura descritta di seguito:

  1. Arrestare il servizio SQL Server:

    sudo systemctl stop mssql-server
    
  2. Usare mssql-conf per modificare i nomi del database master previsti per i dati master e i file di log con il comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /var/opt/mssql/data/masternew.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.mastlogfile /var/opt/mssql/data/mastlognew.ldf
    

    Importante

    È possibile modificare il nome del database master e dei file di log solo dopo che SQL Server è stato avviato correttamente. Prima dell'esecuzione iniziale, SQL Server prevede che i file siano denominati master.mdf e mastlog.ldf.

  3. Modificare il nome dei file di dati e di log del database master:

    sudo mv /var/opt/mssql/data/master.mdf /var/opt/mssql/data/masternew.mdf
    sudo mv /var/opt/mssql/data/mastlog.ldf /var/opt/mssql/data/mastlognew.ldf
    
  4. Avviare il servizio SQL Server:

    sudo systemctl start mssql-server
    

Modificare il percorso predefinito della directory dump

L'impostazione filelocation.defaultdumpdir modifica il percorso predefinito in cui vengono generati i dump della memoria e di SQL quando si verifica un arresto anomalo. Per impostazione predefinita, questi file vengono generati in /var/opt/mssql/log.

Per configurare il nuovo percorso, usare i comandi seguenti:

  1. Creare la directory di destinazione per i nuovi file di dump. L'esempio seguente crea una nuova directory /tmp/dump:

    sudo mkdir /tmp/dump
    
  2. Sostituire il proprietario e il gruppo della directory con l'utente mssql:

    sudo chown mssql /tmp/dump
    sudo chgrp mssql /tmp/dump
    
  3. Usare mssql-conf per modificare la directory dati predefinita con il comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /tmp/dump
    
  4. Riavviare il servizio SQL Server:

    sudo systemctl restart mssql-server
    

Modificare il percorso predefinito della directory dei file di log degli errori

L'impostazione filelocation.errorlogfile modifica il percorso in cui vengono creati i nuovi file di log degli errori, analisi profiler predefinita, file XE di sessione di integrità del sistema e file XE di sessioni Hekaton. Per impostazione predefinita, il percorso è /var/opt/mssql/log. La directory in cui è impostato il file del log degli errori SQL diventa la directory dei log predefinita per gli altri log.

Per modificare queste impostazioni:

  1. Creare la directory di destinazione per i nuovi file di log degli errori. L'esempio seguente crea una nuova directory /tmp/logs:

    sudo mkdir /tmp/logs
    
  2. Sostituire il proprietario e il gruppo della directory con l'utente mssql:

    sudo chown mssql /tmp/logs
    sudo chgrp mssql /tmp/logs
    
  3. Usare mssql-conf per modificare il nome file predefinito del log degli errori con il comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.errorlogfile /tmp/logs/errorlog
    
  4. Riavviare il servizio SQL Server:

    sudo systemctl restart mssql-server
    

L'impostazione errorlog.numerrorlogs consente di specificare il numero di log degli errori conservati prima di eseguire il ciclo del log.

Impostare il percorso predefinito della directory di backup

L'impostazione filelocation.defaultbackupdir modifica il percorso predefinito in cui vengono generati i file di backup. Per impostazione predefinita, questi file vengono generati in /var/opt/mssql/data.

Per configurare il nuovo percorso, usare i comandi seguenti:

  1. Creare la directory di destinazione per i nuovi file di backup. L'esempio seguente crea una nuova directory /tmp/backup:

    sudo mkdir /tmp/backup
    
  2. Sostituire il proprietario e il gruppo della directory con l'utente mssql:

    sudo chown mssql /tmp/backup
    sudo chgrp mssql /tmp/backup
    
  3. Usare mssql-conf per modificare la directory di backup predefinito con il comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /tmp/backup
    
  4. Riavviare il servizio SQL Server:

    sudo systemctl restart mssql-server
    

Specificare le impostazioni dei core dump

Se si verifica un'eccezione o un arresto anomalo del sistema in uno dei processi di SQL Server, SQL Server crea un dump della memoria. L'acquisizione di un dump di memoria potrebbe richiedere molto tempo e spazio significativo. Per salvare le risorse ed evitare dump di memoria ripetuti, è possibile disabilitare l'acquisizione automatica del dump con l'opzione coredump.disablecoredump.

sudo /opt/mssql/bin/mssql-conf set coredump.disablecoredump <true or false>

Gli utenti possono comunque generare dump di memoria manualmente quando il dump del core automatico è disabilitato (coredump.disablecoredump impostato su true).

Sono disponibili due opzioni per controllare il tipo di dump della memoria raccolti da SQL Server: coredump.coredumptype e coredump.captureminiandfull. Sono correlate alle due fasi dell'acquisizione dei core dump.

La prima fase di acquisizione è controllata dall'impostazione coredump.coredumptype, che determina il tipo di file di dump generato durante un'eccezione. La seconda fase viene abilitata quando l'impostazione coredump.captureminiandfull. Se coredump.captureminiandfull è impostato su true, viene generato il file dump specificato da coredump.coredumptype e viene generato anche un secondo minidump. L'impostazione di coredump.captureminiandfull su false consente di disabilitare il secondo tentativo di acquisizione.

  1. È possibile decidere se acquisire sia i minidump che i dump completi con l'impostazione coredump.captureminiandfull.

    sudo /opt/mssql/bin/mssql-conf set coredump.captureminiandfull <true or false>
    

    Impostazione predefinita: false

  2. Specificare il tipo di file di dump con l'impostazione coredump.coredumptype.

    sudo /opt/mssql/bin/mssql-conf set coredump.coredumptype <dump_type>
    

    Impostazione predefinita: miniplus

    La tabella seguente elenca i possibili valori coredump.coredumptype:

    Tipo Descrizione
    mini Mini è il tipo di file di dump più piccolo. Usa le informazioni di sistema di Linux per determinare i thread e i moduli nel processo. Il dump contiene solo i moduli e gli stack di thread dell'ambiente host. Non contiene riferimenti alla memoria indiretta né elementi globali.
    miniplus MiniPlus è simile a mini, ma include memoria aggiuntiva. Riconosce gli elementi interni di SQLPAL e l'ambiente host, aggiungendo al dump le aree di memoria seguenti:

    - Vari elementi globali
    - Tutta la memoria sopra 64 TB
    - Tutte le aree denominate rilevate in /proc/$pid/maps
    - Memoria indiretta da thread e stack
    - Informazioni sui thread, inclusi i blocchi di ambiente thread associati (TEB) e i blocchi di ambiente di processo (PEB)
    - Informazioni sui moduli
    - Albero VMM e VAD
    filtered Filtered usa una struttura basata sulla sottrazione in cui viene inclusa tutta la memoria del processo, a meno che non sia esplicitamente esclusa. La struttura riconosce gli elementi interni di SQLPAL e l'ambiente host, escludendo determinate aree dal dump.
    full Full è un dump di processo completo che include tutte le aree disponibili in /proc/$pid/maps. Questa impostazione non è controllata dall'impostazione coredump.captureminiandfull.

Edition

L'edizione di SQL Server può essere modificata con l'opzione set-edition. Per modificare l'edizione di SQL Server, il servizio SQL Server deve essere arrestato. Per altre informazioni sulle edizioni SQL Server disponibili in Linux, vedere edizioni SQL Server.

Disponibilità elevata

L'opzione hadr.hadrenabled abilita i gruppi di disponibilità nell'istanza di SQL Server. Il comando seguente abilita i gruppi di disponibilità impostando hadr.hadrenabled su 1. Per rendere effettiva l'impostazione, è necessario riavviare SQL Server.

sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled  1
sudo systemctl restart mssql-server

Per informazioni su come usare questa opzione con i gruppi di disponibilità, vedere i due articoli seguenti.

Impostare la directory del controllo locale

L’impostazione telemetry.userrequestedlocalauditdirectory abilita il controllo locale e consente di impostare la directory in cui vengono creati i log di controllo locale.

  1. Creare una directory di destinazione per i nuovi log di controllo locale. L'esempio seguente crea una nuova directory /tmp/audit:

    sudo mkdir /tmp/audit
    
  2. Sostituire il proprietario e il gruppo della directory con l'utente mssql:

    sudo chown mssql /tmp/audit
    sudo chgrp mssql /tmp/audit
    
  3. Eseguire lo script mssql-conf come root con il comando set per telemetry.userrequestedlocalauditdirectory:

    sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit
    
  4. Riavviare il servizio SQL Server:

    sudo systemctl restart mssql-server
    

Per ulteriori informazioni, vedere Configurare la raccolta di dati di diagnostica e utilizzo per SQL Server in Linux.

Modificare le impostazioni locali di SQL Server

L'impostazione language.lcid modifica le impostazioni locali di SQL Server in qualsiasi identificatore di lingua (LCID) supportato.

  1. Nell'esempio seguente le impostazioni locali vengono modificate in francese (1036):

    sudo /opt/mssql/bin/mssql-conf set language.lcid 1036
    
  2. Riavviare il servizio SQL Server per applicare le modifiche:

    sudo systemctl restart mssql-server
    

Impostare il limite di memoria

L'impostazione memory.memorylimitmb controlla la quantità di memoria fisica (in MB) disponibile per SQL Server. Il valore predefinito è l'80% della memoria fisica, per evitare condizioni di memoria insufficiente.

Importante

L'impostazione memory.memorylimitmb controlla la quantità di memoria fisica disponibile per il processo SQL Server. L'impostazione max server memory (MB) può essere usata per regolare la quantità di memoria disponibile per il pool di buffer di SQL Server, ma non può mai superare la quantità di memoria fisica disponibile per SQL Server. Per altre informazioni sull’opzione di configurazione del server memoria massima del server (MB), vedere Opzioni di configurazione della memoria del server.

  1. Eseguire lo script mssql-conf come root con il comando set per memory.memorylimitmb. Nell'esempio seguente la memoria disponibile per SQL Server viene impostata su 3,25 GB (3,328 MB).

    sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 3328
    
  2. Riavviare il servizio SQL Server per applicare le modifiche:

    sudo systemctl restart mssql-server
    

Impostazioni aggiuntive per la memoria

Le opzioni seguenti sono disponibili per le impostazioni della memoria.

Opzione Descrizione
memory.disablememorypressure Utilizzo elevato di memoria disabilitato da SQL Server. I valori possono essere true o false.
memory.memory_optimized Abilitare o disabilitare funzionalità ottimizzate per la memoria di SQL Server. Miglioramento del file di memoria permanente, protezione della memoria. I valori possono essere true o false.
memory.enablecontainersharedmemory Applicabile solo per i contenitori SQL Server. Usare questa impostazione per abilitare la memoria condivisa nei contenitori SQL Server. Per impostazione predefinita, il parametro è impostato su false. I valori possono essere true o false.

Configurare MSDTC

Le impostazioni network.rpcport e distributedtransaction.servertcpport vengono usate per configurare Microsoft Distributed Transaction Coordinator (MSDTC). Per modificare queste impostazioni, eseguire i comandi seguenti:

  1. Eseguire lo script mssql-conf come root con il comando set per network.rpcport:

    sudo /opt/mssql/bin/mssql-conf set network.rpcport <rcp_port>
    
  2. Stabilire quindi le impostazioni distributedtransaction.servertcpport.

    sudo /opt/mssql/bin/mssql-conf set distributedtransaction.servertcpport <servertcpport_port>
    

Oltre a impostare questi valori, è anche necessario configurare il routing e aggiornare il firewall per la porta 135. Per altre informazioni in tal senso, vedere Come configurare Microsoft Distributed Transaction Coordinator (MSDTC) in Linux.

Sono disponibili diverse altre impostazioni per mssql-conf che è possibile usare per monitorare e risolvere i problemi relativi a MSDTC. Nella tabella seguente viene fornita una breve descrizione delle impostazioni disponibili. Per altre informazioni sul relativo uso, vedere i dettagli nell'articolo del supporto tecnico di Windows Come attivare l'analisi diagnostica per MS DTC in un computer basato su Windows.

Opzione Descrizione
distributedtransaction.allowonlysecurerpccalls Configurare solo chiamate RPC protette per le transazioni distribuite
distributedtransaction.fallbacktounsecurerpcifnecessary Configurare solo le chiamate RPC di sicurezza per le transazioni distribuite
distributedtransaction.maxlogsize Dimensioni del file di log delle transazioni DTC in MB. Il valore predefinito è 64 MB
distributedtransaction.memorybuffersize Dimensioni del buffer circolare in cui sono archiviate le tracce. La dimensione è espressa in MB e il valore predefinito è 10 MB
distributedtransaction.servertcpport Porta server RPC MSDTC
distributedtransaction.trace_cm Tracce della gestione connessione
distributedtransaction.trace_contact Tracce di pool di contatti e contatti
distributedtransaction.trace_gateway Tracce dell'origine gateway
distributedtransaction.trace_log Traccia dei log
distributedtransaction.trace_misc Tracce che non possono essere classificate nelle altre categorie
distributedtransaction.trace_proxy Tracce generate nel proxy MSDTC
distributedtransaction.trace_svc Tracce dell'avvio di servizi e file con estensione exe
distributedtransaction.trace_trace Infrastruttura di traccia
distributedtransaction.trace_util Tracce delle routine dell'utilità chiamate da più posizioni
distributedtransaction.trace_xa Origine di traccia della gestione transazioni XA (XATM)
distributedtransaction.tracefilepath Cartella in cui archiviare i file di traccia
distributedtransaction.turnoffrpcsecurity Abilitare o disabilitare la sicurezza RPC per le transazioni distribuite

Accetta il Contratto di licenza dei servizi di Machine Learning

Per aggiungere pacchetti R o Python di Machine Learning al motore di database, è necessario accettare le condizioni di licenza per le distribuzioni open source di R e Python. Nella tabella seguente sono enumerati tutti i comandi o le opzioni disponibili correlati ai contratti di licenza con l'utente finale di mlservices. Lo stesso parametro per il contratto di licenza con l'utente finale viene usato per R e Python, a seconda di ciò che è stato installato.

# For all packages: database engine and mlservices
# Setup prompts for mlservices EULAs, which you need to accept
sudo /opt/mssql/bin/mssql-conf setup

# Add R or Python to an existing installation
sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml

# Alternative valid syntax
# Adds the EULA section to the INI and sets acceptulam to yes
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y

# Rescind EULA acceptance and removes the setting
sudo /opt/mssql/bin/mssql-conf unset EULA accepteulaml

È anche possibile aggiungere l'accettazione del contratto di licenza con l'utente finale direttamente al file mssql.conf:

[EULA]
accepteula = Y
accepteulaml = Y

Abilitare l'accesso alla rete in uscita

Per impostazione predefinita, l'accesso alla rete in uscita per le estensioni R, Python e Java nella funzionalità SQL Server Machine Learning Services è disabilitato. Per abilitare le richieste in uscita, impostare la proprietà booleana outboundnetworkaccess usando lo strumento mssql-conf.

Dopo aver impostato la proprietà, riavviare il servizio Launchpad di SQL Server per leggere i valori aggiornati dal file INI. Un messaggio di riavvio avverte ogni volta che viene modificata un'impostazione relativa all'estendibilità.

# Adds the extensibility section and property.
# Sets "outboundnetworkaccess" to true.
# This setting is required if you want to access data or operations off the server.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1

# Turns off network access but preserves the setting
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 0

# Removes the setting and rescinds network access
sudo /opt/mssql/bin/mssql-conf unset extensibility.outboundnetworkaccess

È anche possibile aggiungere outboundnetworkaccess direttamente al file mssql.conf:

[extensibility]
outboundnetworkaccess = 1

Modificare la porta TCP

L'impostazione network.tcpport consente di modificare la porta TCP su cui SQL Server è in ascolto delle connessioni. Per impostazione predefinita, tale porta è impostata su 1433. Per modificare la porta, eseguire i comandi seguenti:

  1. Eseguire lo script mssql-conf come root con il comando set per network.tcpport:

    sudo /opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>
    
  2. Riavviare il servizio SQL Server:

    sudo systemctl restart mssql-server
    
  3. Ora, al momento della connessione a SQL Server, è necessario specificare la porta personalizzata con una virgola (,) dopo il nome host o l'indirizzo IP. Ad esempio, per connettersi a sqlcmd, è necessario usare il comando seguente:

    sqlcmd -S localhost,<new_tcp_port> -U test -P test
    

Specificare le impostazioni TLS

Le opzioni seguenti consentono di configurare TLS per un'istanza di SQL Server eseguita in Linux.

Opzione Descrizione
network.forceencryption Se il valore è 1, SQL Server impone la crittografia di tutte le connessioni. Per impostazione predefinita, questa opzione è 0.
network.tlscert Percorso assoluto del file di certificato usato da SQL Server per TLS. Esempio: /etc/ssl/certs/mssql.pem Il file di certificato deve essere accessibile dall'account mssql. Microsoft consiglia di limitare l'accesso al file usando chown mssql:mssql <file>; chmod 400 <file>.
network.tlskey Percorso assoluto del file di chiave privata usato da SQL Server per TLS. Esempio: /etc/ssl/private/mssql.key Il file di certificato deve essere accessibile dall'account mssql. Microsoft consiglia di limitare l'accesso al file usando chown mssql:mssql <file>; chmod 400 <file>.
network.tlsprotocols Elenco delimitato da virgole dei protocolli TLS consentiti da SQL Server. SQL Server prova sempre a negoziare il protocollo più sicuro consentito. Se un client non supporta alcun protocollo consentito, SQL Server rifiuta il tentativo di connessione. Per compatibilità, tutti i protocolli supportati sono consentiti per impostazione predefinita (1.2, 1.1, 1.0). Se i client supportano TLS 1.2, Microsoft consiglia di consentire solo TLS 1.2.
network.tlsciphers Specifica le crittografie consentite da SQL Server per TLS. Questa stringa deve essere formattata in base al formato per l'elenco di crittografie di OpenSSL. In generale, non è necessario modificare questa opzione.
Per impostazione predefinita, sono consentite le crittografie seguenti:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
network.kerberoskeytabfile Percorso del file keytab Kerberos

Per un esempio di uso delle impostazioni TLS, vedere Crittografia delle connessioni a SQL Server in Linux.

Impostazioni di rete

Consultare Usare l'autenticazione di Active Directory con SQL Server in Linux per ottenere informazioni complete sull'uso dell'autenticazione di Active Directory con SQL Server in Linux.

Le opzioni seguenti sono impostazioni di rete aggiuntive che possono essere configurate con mssql-conf.

Opzione Descrizione
network.disablesssd Disabilitare l'esecuzione di query su SSSD per ottenere informazioni sull'account Active Directory e usare le chiamate LDAP per impostazione predefinita. I valori possono essere true o false.
network.enablekdcfromkrb5conf Consentire la ricerca di informazioni KDC da krb5.conf. I valori possono essere true o false.
network.forcesecureldap Forzare l'uso di LDAPS per contattare il controller di dominio. I valori possono essere true o false.
network.ipaddress Indirizzo IP per le connessioni in ingresso.
network.kerberoscredupdatefrequency Tempo in secondi tra i controlli per le credenziali Kerberos che devono essere aggiornate. Il valore è un numero intero.
network.privilegedadaccount Utente di Active Directory con privilegi da usare per l'autenticazione di Active Directory. Il valore è <username>. Per altre informazioni, vedere Esercitazione: Usare l'autenticazione di Active Directory con SQL Server in Linux.
uncmapping Mappa un percorso UNC a un percorso locale. Ad esempio, sudo /opt/mssql/bin/mssql-conf set uncmapping //servername/sharename /tmp/folder.
ldaphostcanon Impostare se OpenLDAP deve canonizzare i nomi host durante il passaggio BIND. I valori possono essere true o false.

Abilitare o disabilitare i flag di traccia

L'opzione traceflag consente di abilitare o disabilitare i flag di traccia per l'avvio del servizio SQL Server. Per abilitare/disabilitare un flag di traccia, usare i comandi seguenti:

  1. Abilitare un flag di traccia con il comando seguente. Ad esempio, per il flag di traccia 1234:

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 on
    
  2. È possibile abilitare più flag di traccia specificandoli separatamente:

    sudo /opt/mssql/bin/mssql-conf traceflag 2345 3456 on
    
  3. In modo analogo, è possibile disabilitare uno o più flag di traccia abilitati specificandoli e aggiungendo il parametro off:

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off
    
  4. Riavviare il servizio SQL Server per applicare le modifiche:

    sudo systemctl restart mssql-server
    

Rimuovere un'impostazione

Per annullare le impostazioni effettuate con mssql-conf set, chiamare mssql-conf con l'opzione unset e il nome dell'impostazione. In questo modo l'impostazione viene cancellata, ripristinandone il valore predefinito.

  1. Nell'esempio seguente viene cancellata l'opzione network.tcpport.

    sudo /opt/mssql/bin/mssql-conf unset network.tcpport
    
  2. Riavviare il servizio SQL Server.

    sudo systemctl restart mssql-server
    

Visualizzare le impostazioni correnti

Per visualizzare le impostazioni configurate, eseguire il comando seguente per restituire il contenuto del file mssql.conf:

sudo cat /var/opt/mssql/mssql.conf

Le impostazioni non visualizzate in questo file vengono usati i valori predefiniti. Nella sezione seguente viene fornito un file mssql.conf di esempio.

Visualizzare varie opzioni

Per visualizzare le varie opzioni che è possibile configurare con l'utilità mssql-conf, eseguire il comando help:

sudo /opt/mssql/bin/mssql-conf --help

I risultati offrono varie opzioni di configurazione e una breve descrizione per ogni impostazione.

Formato di mssql.conf

Il file /var/opt/mssql/mssql.conf seguente offre un esempio per ogni impostazione. È possibile usare questo formato per apportare manualmente modifiche al file mssql.conf in base alle esigenze. Se si modifica manualmente il file, è necessario riavviare SQL Server per applicare le modifiche. Per usare il file mssql.conf con Docker, è necessario che Docker salvi in modo permanente i dati. Aggiungere un file mssql.conf completo alla directory host, quindi eseguire il contenitore. Di seguito è riportato un esempio in Configurare la raccolta di dati di diagnostica e utilizzo per SQL Server in Linux.

[EULA]
accepteula = Y

[coredump]
captureminiandfull = true
coredumptype = full

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456
[EULA]
accepteula = Y
accepteulaml = Y

[coredump]
captureminiandfull = true
coredumptype = full

[distributedtransaction]
servertcpport = 51999

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
rpcport = 13500
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456

Contribuire alla documentazione di SQL

Il contenuto SQL può essere modificato. L'autore delle modifiche contribuirà a migliorare la documentazione e verrà accreditato come collaboratore alla realizzazione della pagina.

Per altre informazioni, vedere Come contribuire alla documentazione di SQL Server