Delen via


Tempdb inschakelen en uitvoeren op tmpfs voor SQL Server 2025 Preview op Linux

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

  1. Maak de tempdb map.

    Gebruik de mkdir opdracht om een map voor de tempdb database te maken. Zorg ervoor dat deze eigendom is van de mssql gebruiker en groep om TOEGANG tot SQL Server toe te staan:

    mkdir /var/opt/mssql/tempdb
    sudo chown mssql. /var/opt/mssql/tempdb
    
  2. Tmpfs-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 -t optie geeft u het type bestandssysteem op, dat in dit geval .tmpfs

    Met de -o optie kunt u koppelopties opgeven. size=4G Hier 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 fstab toevoegen 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/fstab
    
  3. Werk de bestandslocatie tempdb bij.

    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 tempdb bestanden met behulp van het volgende T-SQL-script en voer vervolgens de ALTER DATABASE opdracht uit om de tempdb bestandslocatie 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 de ALTER 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');
    
  4. Start SQL Server opnieuw om de wijzigingen toe te passen.

    sudo systemctl restart mssql-server
    
  5. Controleer tempdb de locatie van de bestanden.

    Zodra SQL Server actief is, controleert u of de tempdb gegevens 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