Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2025 (17.x) Preview - Linux
In dit artikel wordt u begeleid bij het inschakelen en uitvoeren tempdb van databasebestanden op het tmpfs-bestandssysteem in SQL Server 2025 (17.x) Preview.
SQL Server op Linux en containers ondersteunen traditioneel XFS - en ext4-bestandssysteem voor het implementeren van SQL Server-databasebestanden en -logboeken. Voor tijdelijke databases zoals tempdb, waarvoor geen gegevens hoeven te worden opgeslagen van de ene uptimeperiode naar de andere, kan het gebruik van een tmpfs-bestandssysteem dat geheugen (RAM) gebruikt, de algehele prestaties voor tempdbop -gebaseerde workloads verbeteren.
Voor meer informatie over het tmpfs-bestandssysteemraadpleegt u tmpfs - the Linux Kernel documentation.
| Configuratie | Beschrijving |
|---|---|
| Ondersteunde configuratie |
tmpfs is ideaal voor het opslaan van niet-permanente gegevens die niet hoeven te worden opgeslagen tijdens opnieuw opstarten. Op dit moment worden alleen de tempdb databasebestanden ondersteund in het tmpfs-bestandssysteem voor zowel container- als niet-containerimplementaties. |
| Niet-ondersteunde configuratie | Tmpfs-bestandssysteem kan worden gebruikt voor gebruikersdatabases in SQL-containerimplementaties, maar alleen voor ontwikkelingsdoeleinden. Deze configuratie wordt echter niet ondersteund. U kunt feedback geven voor dit scenario op GitHub. |
Implementaties van fysieke of virtuele machines
Als u tmpfs-ondersteuning wilt inschakelen voor SQL Server in Linux op fysieke of virtuele machines, moet u het tmpfs-bestandssysteem correct koppelen, waarvoor sudo-toegang is vereist. Zodra de koppelpunten zijn ingesteld, kunt u de tempdb bestanden op deze koppelingen plaatsen en SQL Server starten met tempdb bestanden die zijn gekoppeld aan het tmpfs-bestandssysteem .
Tmpfs inschakelen voor tempdb
Maak de
tempdbmap.Gebruik de
mkdiropdracht om een map voor detempdbdatabase te maken. Zorg ervoor dat deze eigendom is van demssqlgebruiker en groep om TOEGANG tot SQL Server toe te staan:mkdir /var/opt/mssql/tempdb sudo chown mssql. /var/opt/mssql/tempdbTmpfs-bestandssysteem koppelen.
Gebruik de volgende opdracht om het tmpfs-bestandssysteem te koppelen:
sudo mount -t tmpfs -o size=4G tmpfs /var/opt/mssql/tempdb/Met de
-toptie geeft u het type bestandssysteem op, dat in dit geval .tmpfsMet de
-ooptie kunt u koppelopties opgeven.size=4GHier stelt u de maximale grootte van de tmpfs in op 4 GB, wat betekent dat het maximaal 4 GB RAM-geheugen kan gebruiken.Met deze opdracht wordt tmpfs gekoppeld aan de doelmap van de SQL Server-database
tempdb.Eventueel kunt u deze aan
fstabtoevoegen om de koppelingen bij het opnieuw opstarten te behouden:echo "tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0" | sudo tee -a /etc/fstabWerk de bestandslocatie
tempdbbij.Zorg ervoor dat SQL Server actief is. Maak verbinding met uw SQL Server-exemplaar met behulp van SQL Server Management Studio (SSMS) en voer de volgende T-SQL-opdrachten uit.
Identificeer alle
tempdbbestanden met behulp van het volgende T-SQL-script en voer vervolgens deALTER DATABASEopdracht uit om detempdbbestandslocatie bij te werken:SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;Op basis van het aantal bestanden dat u ziet voor
tempdb, maakt u deALTER DATABASE-opdrachten als volgt: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');Start SQL Server opnieuw om de wijzigingen toe te passen.
sudo systemctl restart mssql-serverControleer
tempdbde locatie van de bestanden.Zodra SQL Server actief is, controleert u of de
tempdbgegevens en logboekbestanden zich nu in de nieuwe map bevinden door verbinding te maken met SQL Server met behulp van een hulpprogramma zoals SQL Server Management Studio (SSMS).SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;
Nu ziet u alle tempdb databasebestanden op het nieuwe koppelingspad./var/opt/mssql/tempdb
Direct herformatteren van het tmpfs-mountpunt
U kunt ook het formaat van de tmpfs-koppeling dynamisch wijzigen voor het geval het tempdb vol is. Voer de volgende opdracht uit om de tmpfs-koppeling naar 6 GB te wijzigen:
mount -o remount,size=6G /var/opt/mssql/tempdb
U kunt desgewenst de nieuwe grootte behouden tijdens het opnieuw opstarten door de fstab vermelding te wijzigen:
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
Containerimplementaties
Voor workloads van ontwikkelaars kunnen tmpfs worden gebruikt voor gebruikersdatabases. tmpfs-bestandssysteem kan testcases aanzienlijk versnellen voor gebruikersdatabases die in containers zijn geïmplementeerd. Omdat tmpfs RAM gebruikt in plaats van schijfopslag, kunnen er snelle lees-/schrijfbewerkingen worden uitgevoerd. Deze configuratie is handig in ontwikkel- en testomgevingen waar snelle iteraties nodig zijn.
Tmpfs voor gebruikersdatabases worden echter niet ondersteund. U kunt feedback geven met betrekking tot gebruikersdatabases op tmpfs op GitHub.
Alleen databases hosten op het tmpfs-bestandssysteem
Als u een SQL Server-container implementeert en ervoor wilt zorgen dat de container tmpfs gebruikt voor de tempdbcontainer, kunt u de volgende opdracht uitvoeren:
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
Met het --tmpfs commando wordt de grootte ingesteld op 4 GB en de uid (gebruikers-id) en de gid (groeps-id) worden ingesteld op 10001 zodat de vereiste machtigingen correct zijn ingesteld voor de tempdb bestanden die moeten worden aangemaakt.
Zodra de container actief is, maakt u verbinding met de SQL Server met behulp van SSMS en verplaatst u de tempdb bestanden naar de nieuwe locatie /var/opt/mssql/tempdb met de volgende T-SQL-opdrachten:
SELECT [name],
physical_name
FROM sys.master_files
WHERE database_id = 2;
Wijzig de volgende opdracht op basis van het aantal bestanden dat u ziet. In dit voorbeeld zijn er vier tempdb bestanden en één logboekbestand. Gebruik de volgende opdrachten om deze bestanden naar hun nieuwe locatie te verplaatsen:
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
Nadat u de bestanden hebt verplaatst, stopt en start u de container opnieuw met behulp van de volgende opdrachten
docker stop sql1
docker start sql1
Containers uitrollen met alle gegevens en logbestanden op tmpfs
Waarschuwing
Deze configuratie wordt niet ondersteund, maar kan worden gebruikt voor ontwikkelingsdoeleinden. U kunt feedback geven voor dit scenario op 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