Megosztás:


Tempdb engedélyezése és futtatása linuxos SQL Server 2025 tmpf-eken

A következőkre vonatkozik: SQL Server 2025 (17.x) Linux rendszeren

Ez a cikk bemutatja, hogy engedélyezheti és futtathatja tempdb az adatbázisfájlokat az SQL Server 2025 tmpfs fájlrendszerén (17.x).

A Linuxon és tárolókon futó SQL Server hagyományosan támogatja az XFS - és ext4-fájlrendszereket az SQL Server-adatbázisfájlok és -naplók üzembe helyezéséhez. Az olyan ideiglenes adatbázisok esetében azonban, amelyekhez tempdbnem szükséges adatokat menteni az egyik üzemidőből a másikba, a memóriát használó tmpfs fájlrendszer (RAM) használata növelheti a -alapú számítási feladatok általános teljesítményét tempdb.

További információ a tmpfs fájlrendszerről: tmpfs – A Linux Kernel dokumentációja.

Konfiguráció Leírás
Támogatott konfiguráció A tmpfs ideális olyan nem állandó adatok tárolására, amelyeket nem kell az újraindítások között menteni. Jelenleg csak az tempdb adatbázisfájlok támogatottak a tmpfs fájlrendszerben, legyen szó akár konténer alapú, akár nem konténer alapú üzemelő példányokról.
Nem támogatott konfiguráció A tmpfs fájlrendszer használható az SQL-tárolótelepítésekben lévő felhasználói adatbázisokhoz, de csak fejlesztési célokra. Ez a konfiguráció azonban nem támogatott. Ehhez a forgatókönyvhöz a GitHubon adhat visszajelzést.

Fizikai vagy virtuális gépek üzembe helyezése

Ahhoz, hogy engedélyezze a tmpfs támogatását a Linuxon futó SQL Server számára fizikai vagy virtuális gépeken, megfelelően kell csatolnia a tmpfs fájlrendszert, amelyhez sudo-hozzáférés szükséges. Miután beállította a csatlakoztatási pontokat, elhelyezheti a fájlokat ezeken a tempdb csatlakoztatásokon, és elindíthatja az SQL Servert a tempdb fájlrendszerre csatlakoztatott fájlokkal.

Tmpfs engedélyezése a következőhöz: tempdb

  1. Hozza létre a tempdb könyvtárat.

    mkdir A paranccsal hozzon létre egy könyvtárat az tempdb adatbázishoz. Győződjön meg róla, hogy az mssql a felhasználó és a csoport tulajdonában van a SQL Server hozzáféréséhez.

    mkdir /var/opt/mssql/tempdb
    sudo chown mssql. /var/opt/mssql/tempdb
    
  2. Tmpfs fájlrendszer csatlakoztatása.

    A tmpfs fájlrendszer csatlakoztatásához használja a következő parancsot:

    sudo mount -t tmpfs -o size=4G tmpfs /var/opt/mssql/tempdb/
    

    A -t beállítás megadja a fájlrendszer típusát, amely ebben az esetben a tmpfskövetkező.

    Ezzel az -o opcióval megadhatja a csatolási beállításokat. size=4G Itt a tmpfs maximális méretét 4 GB-ra állítja, ami azt jelenti, hogy akár 4 GB RAM-ot is használhat.

    Ez a parancs csatlakoztatja a tmpf-eket az SQL Server-adatbázis tempdb által használt célkönyvtárhoz.

    Opcióként adja hozzá a fstab-hez, hogy a csatolások megmaradjanak az újraindítások során.

    echo "tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0" | sudo tee -a /etc/fstab
    
  3. Frissítse a tempdb fájl helyét.

    Győződjön meg arról, hogy az SQL Server működik. Csatlakozzon az SQL Server-példányhoz az SQL Server Management Studio (SSMS) használatával, és futtassa a következő T-SQL-parancsokat.

    Azonosítsa az összes fájlt a tempdb következő T-SQL-szkripttel, majd futtassa a ALTER DATABASE parancsot a fájl helyének tempdb frissítéséhez:

    SELECT [name],
           physical_name
    FROM sys.master_files
    WHERE database_id = 2;
    

    A tempdb fájlok számának alapján hozza létre a ALTER DATABASE parancsokat az alábbiak szerint:

    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. Indítsa újra az SQL Servert a módosítások alkalmazásához.

    sudo systemctl restart mssql-server
    
  5. Ellenőrizze a tempdb fájlok helyét.

    Miután az SQL Server működik, ellenőrizze, hogy az tempdb adatok és a naplófájlok most már az új könyvtárban találhatók-e. Ehhez kapcsolódjon az SQL Serverhez egy olyan eszközzel, mint az SQL Server Management Studio (SSMS).

    SELECT [name],
           physical_name
    FROM sys.master_files
    WHERE database_id = 2;
    

Ekkor megjelenik az tempdb összes adatbázisfájl az új csatlakoztatási útvonalon./var/opt/mssql/tempdb

A tmpfs csatlakoztatás forró átméretezése

A tmpfs csatlakoztatását átméretezheti akkor is, ha a tempdb tele van. A gyors átméretezéshez futtassa a következő parancsot, hogy a tmpfs csatolást 6 GB-ra átméretezze:

mount -o remount,size=6G /var/opt/mssql/tempdb

Ha szeretné, az új méret továbbra is megmaradjon az újraindítások során a fstab bejegyzés módosításával:

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

Konténertelepítések

Fejlesztői számítási feladatok esetén a tmpf-eket felhasználói adatbázisokhoz is használhatja. A tmpfs fájlrendszerek jelentősen felgyorsíthatják a tárolókban üzembe helyezett felhasználói adatbázisok tesztelési eseteit. Mivel a tmpfs lemeztároló helyett RAM-ot használ, gyors olvasási/írási műveleteket tesz lehetővé. Ez a konfiguráció olyan fejlesztési és tesztelési környezetekben hasznos, ahol gyors iterációkra van szükség.

Azonban, a felhasználói adatbázisok tmpfs-e nem támogatott. A GitHubon a tmpf-eken található felhasználói adatbázisokkal kapcsolatos visszajelzéseket küldhet.

Csak tempdb adatbázisokat tároljon a tmpfs fájlrendszeren.

Ha SQL Server-tárolót helyez üzembe, és meg szeretné győződni arról, hogy a tároló tmpfs-eket használ a tempdbtárolóhoz, futtassa a következő parancsot:

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

A --tmpfs parancs a méretet 4 GB-ra, a uid (felhasználói azonosítót) és gid a (csoportazonosítót) 10001 pedig úgy állítja be, hogy a szükséges engedélyek megfelelően legyenek beállítva a tempdb létrehozandó fájlokhoz.

A tároló üzembe helyezése után csatlakozzon az SQL Serverhez az SSMS használatával, és helyezze át a tempdb fájlokat az új helyre /var/opt/mssql/tempdb a következő T-SQL-parancsokkal:

SELECT [name],
       physical_name
FROM sys.master_files
WHERE database_id = 2;

A megjelenő fájlok száma alapján módosítsa a következő parancsot. Ebben a példában négy tempdb fájl és egy naplófájl található. A következő parancsokkal helyezze át ezeket a fájlokat az új helyre:

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

A fájlok áthelyezése után állítsa le és indítsa újra a tárolót az alábbi parancsokkal

docker stop sql1
docker start sql1

Konténerek telepítése az összes adattal és naplófájllal a tmpfsen

Figyelmeztetés

Ez a konfiguráció nem támogatott, de fejlesztési célokra használható. Ehhez a forgatókönyvhöz a GitHubon adhat visszajelzést.

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