Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: Förhandsversion av SQL Server 2025 (17.x) – Linux
Den här artikeln hjälper dig att aktivera och köra tempdb databasfiler på tmpfs-filsystemet i SQL Server 2025 (17.x) Preview.
SQL Server på Linux och containrar har traditionellt stöd för XFS - och ext4-filsystem för distribution av SQL Server-databasfiler och -loggar. Men för tillfälliga databaser som tempdb, som inte kräver att data sparas från en drifttidsperiod till en annan, kan användning av ett tmpfs-filsystem som använder minne (RAM) förbättra övergripande prestanda för tempdb-baserade arbetsbelastningar.
Mer information om tmpfs-filsystemet finns i tmpfs – Linux Kernel-dokumentationen.
| Konfiguration | Beskrivning |
|---|---|
| Konfiguration som stöds |
tmpfs är idealiskt för lagring av icke-beständiga data som inte behöver sparas över omstarter. För närvarande stöds endast databasfilerna tempdb i tmpfs-filsystemet för både container- och icke-containerbaserade distributioner. |
| Konfiguration som inte stöds | tmpfs-filsystem kan användas för användardatabaser i SQL-containerdistributioner, men endast i utvecklingssyfte. Den här konfigurationen stöds dock inte. Du kan ge feedback för det här scenariot på GitHub. |
Distributioner av fysiska eller virtuella datorer
Om du vill aktivera tmpfs-stöd för SQL Server på Linux på fysiska eller virtuella datorer måste du montera tmpfs-filsystemet korrekt, vilket kräver sudo-åtkomst. När monteringspunkterna har konfigurerats kan du placera tempdb filerna på dessa monteringar och starta SQL Server med tempdb filer monterade på tmpfs-filsystemet .
Aktivera tmpfs för tempdb
Skapa
tempdbkatalogen.mkdirAnvänd kommandot för att skapa en katalog förtempdbdatabasen. Se till att den ägs avmssqlanvändaren och gruppen för att tillåta SQL Server-åtkomst:mkdir /var/opt/mssql/tempdb sudo chown mssql. /var/opt/mssql/tempdbMontera tmpfs-filsystem.
Använd följande kommando för att montera tmpfs-filsystemet :
sudo mount -t tmpfs -o size=4G tmpfs /var/opt/mssql/tempdb/Alternativet
-tanger typen av filsystem, som i det här fallet ärtmpfs.Med
-oalternativet kan du ange monteringsalternativ.size=4GHär anger den maximala storleken på tmpfs till 4 GB, vilket innebär att den kan använda upp till 4 GB RAM-minne.Det här kommandot monterar tmpfs till målkatalogen som används av SQL Server-databasen
tempdb.Du kan eventuellt lägga till det i
fstabför att bevara monteringar över omstarter.echo "tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0" | sudo tee -a /etc/fstabUppdatera
tempdbfilplats.Kontrollera att SQL Server är igång. Anslut till SQL Server-instansen med SQL Server Management Studio (SSMS) och kör följande T-SQL-kommandon.
Identifiera alla
tempdbfiler med hjälp av följande T-SQL-skript och körALTER DATABASEsedan kommandot för att uppdateratempdbfilplatsen:SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;Baserat på antalet filer som du ser för
tempdbskapar du kommandonaALTER DATABASEpå följande sätt: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');Starta om SQL Server för att tillämpa ändringarna.
sudo systemctl restart mssql-serverKontrollera
tempdbplatsen för filer.När SQL Server är igång kontrollerar du att
tempdbdata och loggfiler nu finns i den nya katalogen genom att ansluta till SQL Server med hjälp av ett verktyg som SQL Server Management Studio (SSMS).SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;
Nu bör du se alla tempdb databasfiler på den nya fästvägen, som är /var/opt/mssql/tempdb.
Snabb storleksändring av tmpfs-monteringen
Du kan också hetskaligt ändra storlek på tmpfs-mounten om den tempdb är full. För att ändra storlek medan systemet är igång, kör följande kommando för att ändra storlek på tmpfs till 6 GB:
mount -o remount,size=6G /var/opt/mssql/tempdb
Du kan också göra så att den nya storleken bevaras mellan omstarter genom att ändra posten fstab :
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
Containerdriftsättningar
För utvecklararbetsbelastningar kan tmpfs användas för användardatabaser. tmpfs-filsystem kan avsevärt påskynda testfall för användardatabaser som distribueras i containrar. Eftersom tmpfs använder RAM i stället för disklagring möjliggör det snabba läs-/skrivåtgärder. Den här konfigurationen är användbar i utvecklings- och testmiljöer där snabba iterationer behövs.
Dock stöds inte tmpfs för användardatabaser. Du kan ge feedback om användardatabaser på tmpfs på GitHub.
Placera endast tempdb databaser på tmpfs-filsystem
Om du distribuerar en SQL Server-container och vill se till att containern använder tmpfs för tempdbkan du köra följande kommando:
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
Kommandot --tmpfs anger storleken till 4 GB och uid (användar-ID) samt gid (grupp-ID) till 10001 för att säkerställa att de nödvändiga behörigheterna är korrekt inställda för att tempdb-filerna ska skapas.
När containern är igång ansluter du till SQL Server med SSMS och flyttar tempdb filerna till den nya platsen /var/opt/mssql/tempdb med följande T-SQL-kommandon:
SELECT [name],
physical_name
FROM sys.master_files
WHERE database_id = 2;
Ändra följande kommando baserat på antalet filer som du ser. I det här exemplet finns det fyra tempdb filer och en loggfil. Använd följande kommandon för att flytta filerna till den nya platsen:
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
När du har flyttat filerna stoppar och startar du om containern med hjälp av följande kommandon
docker stop sql1
docker start sql1
Driftsätt containers med alla data och loggfiler på tmpfs
Varning
Den här konfigurationen stöds inte, men kan användas i utvecklingssyfte. Du kan ge feedback för det här scenariot på 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