Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Si applica a: SQL Server 2025 (17.x) - Linux
Questo articolo illustra come abilitare ed eseguire tempdb file di database nel file system tmpfs in SQL Server 2025 (17.x).
SQL Server in Linux e i contenitori supportano tradizionalmente file system XFS e ext4 per la distribuzione di file e log di database di SQL Server. Tuttavia, per i database temporanei come tempdb, che non richiedono il salvataggio dei dati da un periodo di tempo di attività a un altro, l'uso di un file system tmpfs che usa memoria (RAM) può migliorare le prestazioni complessive per tempdbi carichi di lavoro basati su .
Per altre informazioni sul file system tmpfs , vedere tmpfs - La documentazione del kernel Linux.
| Configurazione | Descrizione |
|---|---|
| Configurazione supportata |
tmpfs è ideale per l'archiviazione di dati non persistenti che non devono essere salvati tra riavvii. Attualmente, solo i tempdb file di database sono supportati nel file system tmpfs per le distribuzioni basate su contenitori e non basate su contenitori. |
| Configurazione non supportata | Il file system tmpfs può essere usato per i database utente nelle distribuzioni di contenitori SQL, ma solo a scopo di sviluppo. Tuttavia, questa configurazione non è supportata. È possibile fornire commenti e suggerimenti per questo scenario in GitHub. |
Distribuzioni fisiche o di macchine virtuali
Per abilitare il supporto tmpfs per SQL Server in Linux in macchine fisiche o virtuali, è necessario montare correttamente il file system tmpfs , che richiede l'accesso sudo. Dopo aver configurato i punti di montaggio, è possibile posizionare i tempdb file su queste montature e avviare SQL Server con i file tempdb montati sul file system tmpfs.
Abilitare tmpfs per tempdb
Creare la directory
tempdb.Usare il
mkdircomando per creare una directory per iltempdbdatabase. Assicurarsi che sia di proprietà dell'utente e delmssqlgruppo per consentire l'accesso a SQL Server:mkdir /var/opt/mssql/tempdb sudo chown mssql. /var/opt/mssql/tempdbMontare il file system tmpfs.
Usare il comando seguente per montare il file system tmpfs :
sudo mount -t tmpfs -o size=4G tmpfs /var/opt/mssql/tempdb/L'opzione
-tspecifica il tipo di file system, che in questo caso ètmpfs.L'opzione
-oconsente di specificare le opzioni di montaggio. In questo caso,size=4Gimposta la dimensione massima di tmpfs su 4 GB, ovvero può usare fino a 4 GB di RAM.Questo comando monta tmpfs nella directory di destinazione usata dal database di SQL Server
tempdb.Facoltativamente, aggiungerlo a
fstabper mantenere i montaggi tra i riavvii:echo "tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0" | sudo tee -a /etc/fstabAggiornare il
tempdbpercorso del file.Verificare che SQL Server sia operativo. Connettersi all'istanza di SQL Server usando SQL Server Management Studio (SSMS) ed eseguire i comandi T-SQL seguenti.
Identificare tutti i
tempdbfile usando lo script T-SQL seguente, quindi eseguire ilALTER DATABASEcomando per aggiornare il percorso deltempdbfile:SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;In base al numero di file visualizzati per
tempdb, crei i comandiALTER DATABASEnel modo seguente:ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = '/var/opt/mssql/tempdb/tempdb.mdf'); ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev2, FILENAME = '/var/opt/mssql/tempdb/tempdb2.mdf'); ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev3, FILENAME = '/var/opt/mssql/tempdb/tempdb3.mdf'); ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev4, FILENAME = '/var/opt/mssql/tempdb/tempdb4.mdf'); ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = '/var/opt/mssql/tempdb/templog.ldf');Riavviare SQL Server per applicare le modifiche.
sudo systemctl restart mssql-serverVerificare il
tempdbpercorso dei file.Una volta che SQL Server è operativo, verificare che i
tempdbfile di dati e di log si trovino nella nuova directory connettendosi a SQL Server usando uno strumento come SQL Server Management Studio (SSMS).SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;
Verranno ora visualizzati tutti i file di tempdb database nel nuovo percorso di montaggio che è /var/opt/mssql/tempdb.
Ridimensionamento a caldo del punto di montaggio tmpfs
È anche possibile ridimensionare a caldo il montaggio tmpfs nel caso in cui sia tempdb pieno. Per ridimensionare a caldo, eseguire il comando seguente per ridimensionare il montaggio tmpfs a 6 GB:
mount -o remount,size=6G /var/opt/mssql/tempdb
Facoltativamente, rendere persistenti le nuove dimensioni tra i riavvii modificando la fstab voce:
sudo sed -i 's|tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0|tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=6G 0 0|' /etc/fstab
Distribuzioni di contenitori
Per i carichi di lavoro degli sviluppatori, tmpfs può essere usato per i database utente. I file system tmpfs possono velocizzare notevolmente i test case per i database utente distribuiti nei contenitori. Poiché tmpfs usa RAM anziché l'archiviazione su disco, consente operazioni di lettura/scrittura rapide. Questa configurazione è utile negli ambienti di sviluppo e test in cui sono necessarie iterazioni rapide.
Tuttavia, tmpfs per i database degli utenti non è supportato. È possibile fornire commenti e suggerimenti relativi ai database utente in tmpfs su GitHub.
Ospitare solo tempdb database nel file system tmpfs
Se si distribuisce un contenitore di SQL Server e si vuole assicurarsi che il contenitore usi tmpfs per tempdb, è possibile eseguire il comando seguente:
docker run \
-e ACCEPT_EULA=Y \
-e MSSQL_SA_PASSWORD = <password>\
--tmpfs /var/opt/mssql/tempdb:uid=10001,gid=10001,size=4G \
-p 5433:1433 \
--name sql1 \
-h sql1 \
--d mcr.microsoft.com/mssql/server:2025-latest
Il comando --tmpfs imposta le dimensioni su 4 GB e uid (ID utente) e gid (ID gruppo) a 10001 per assicurarsi che le autorizzazioni necessarie siano impostate correttamente per i file tempdb da creare.
Una volta che il contenitore è operativo, connettersi a SQL Server usando SSMS e spostare i tempdb file nel nuovo percorso /var/opt/mssql/tempdb con i comandi T-SQL seguenti:
SELECT [name],
physical_name
FROM sys.master_files
WHERE database_id = 2;
In base al numero di file visualizzati, modificare il comando seguente. In questo esempio sono presenti quattro tempdb file e un file di log. Usare i comandi seguenti per spostare questi file nel nuovo percorso:
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = '/var/opt/mssql/tempdb/tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev2, FILENAME = '/var/opt/mssql/tempdb/tempdb2.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev3, FILENAME = '/var/opt/mssql/tempdb/tempdb3.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev4, FILENAME = '/var/opt/mssql/tempdb/tempdb4.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = '/var/opt/mssql/tempdb/templog.ldf');
GO
Dopo aver spostato i file, arrestare e riavviare il contenitore usando i comandi seguenti
docker stop sql1
docker start sql1
Distribuire contenitori con tutti i file di dati e di log in tmpfs
Avvertimento
Questa configurazione non è supportata, ma può essere usata a scopo di sviluppo. È possibile fornire commenti e suggerimenti per questo scenario in GitHub.
docker run -e ACCEPT_EULA=Y \
-e MSSQL_SA_PASSWORD=<password> \
--tmpfs /var/opt/mssql/data:uid=10001,gid=10001,size=4G \
-p 5434:1433 \
--name sql2 \
-h sql2 \
-d mcr.microsoft.com/mssql/server:2025-latest