Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2025 (17.x) na Linuxu
Tento článek vás provede povolením a spuštěním tempdb databázových souborů v systému souborů tmpfs v SYSTÉMU SQL Server 2025 (17.x).
SQL Server v Linuxu a kontejnerech tradičně podporuje systémy souborů XFS a ext4 pro nasazování databázových souborů a protokolů SQL Serveru. Nicméně u dočasných databází, jako je tempdb, které nevyžadují ukládání dat mezi jednotlivými obdobími běhu, může použití souborového systému tmpfs, který využívá paměť (RAM), zvýšit celkový výkon úloh založených na tempdb.
Další informace o systému souborů tmpfs najdete v dokumentaci k jádru Linuxu.
| Konfigurace | Description |
|---|---|
| Podporovaná konfigurace |
Tmpfs je ideální pro ukládání ne trvalých dat, která není potřeba ukládat při restartování. V současné době jsou v souborovém systému tmpfs podporovány pouze databázové soubory tempdb pro nasazení v kontejneru i mimo kontejner. |
| Nepodporovaná konfigurace: | Systém souborů tmpfs lze použít pro uživatelské databáze v nasazeních kontejnerů SQL, ale pouze pro účely vývoje. Tato konfigurace se ale nepodporuje. Na GitHubu můžete poskytnout zpětnou vazbu k tomuto scénáři. |
Nasazení fyzických nebo virtuálních počítačů
Pokud chcete povolit podporu tmpfs pro SQL Server v Linuxu na fyzických nebo virtuálních počítačích, musíte správně připojit systém souborů tmpfs , který vyžaduje přístup sudo. Po nastavení přípojných bodů můžete soubory tempdb umístit do těchto přípojných bodů a spustit SQL Server se soubory připojenými pomocí tempdb k souborovému systému tmpfs.
Povolení tmpfs pro tempdb
tempdbVytvořte adresář.mkdirPomocí příkazu vytvořte adresář protempdbdatabázi. Ujistěte se, že vlastníkem je uživatel a skupinamssql, aby měl SQL Server přístup:mkdir /var/opt/mssql/tempdb sudo chown mssql. /var/opt/mssql/tempdbPřipojte systém souborů tmpfs.
K připojení systému souborů tmpfs použijte následující příkaz:
sudo mount -t tmpfs -o size=4G tmpfs /var/opt/mssql/tempdb/Možnost
-turčuje typ systému souborů, který v tomto případě jetmpfs.Tato
-omožnost umožňuje zadat možnosti připojení.size=4GTady nastaví maximální velikost tmpfs na 4 GB, což znamená, že může používat až 4 GB paměti RAM.Tento příkaz připojí tmpfs k cílovému adresáři používanému databází SQL Serveru
tempdb.Volitelně jej přidejte do
fstab, aby připojení zůstala zachována i po restartu:echo "tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0" | sudo tee -a /etc/fstabAktualizujte
tempdbumístění souboru.Ujistěte se, že je SQL Server v provozu. Připojte se k instanci SQL Serveru pomocí aplikace SQL Server Management Studio (SSMS) a spuštěním následujících příkazů T-SQL.
Identifikujte všechny
tempdbsoubory pomocí následujícího skriptu T-SQL a pak spuštěnímALTER DATABASEpříkazu aktualizujtetempdbumístění souboru:SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;Na základě počtu souborů, které uvidíte pro
tempdb, vytvoříte příkazyALTER DATABASEtakto: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');Restartujte SQL Server pro aktivaci změn.
sudo systemctl restart mssql-serverOvěřte
tempdbumístění souborů.Po zprovoznění SQL Serveru ověřte, že
tempdbse data a soubory protokolů teď nacházejí v novém adresáři, a to připojením k SQL Serveru pomocí nástroje, jako je SQL Server Management Studio (SSMS).SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;
Nyní byste měli vidět všechny tempdb soubory databáze na nové cestě připojení, která je /var/opt/mssql/tempdb.
Horká změna velikosti připojení tmpfs
Pokud je tempdb plný, můžete také za běhu změnit velikost přípojného bodu tmpfs. Chcete-li za běhu změnit velikost, spusťte následující příkaz pro změnu velikosti přípojného bodu tmpfs na 6 GB:
mount -o remount,size=6G /var/opt/mssql/tempdb
Případně můžete novou velikost zachovat i po restartu úpravou položky 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
Nasazení kontejnerů
Pro úlohy vývojářů je možné použít tmpfs pro uživatelské databáze. Systémy souborů tmpfs můžou výrazně zrychlit testovací případy pro uživatelské databáze nasazené v kontejnerech. Vzhledem k tomu, že tmpfs místo diskového úložiště využívá paměť RAM, umožňuje rychlé operace čtení a zápisu. Tato konfigurace je užitečná ve vývojových a testovacích prostředích, kde jsou potřeba rychlé iterace.
Tmpfs pro uživatelské databáze se ale nepodporuje. Můžete poskytnout zpětnou vazbu související s uživatelskými databázemi v tmpfs na GitHubu.
Hostujte pouze tempdb databáze na souborovém systému tmpfs
Pokud nasazujete kontejner SQL Serveru a chcete zajistit, aby kontejner používal pro tempdb systém tmpfs, můžete spustit následující příkaz:
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
Příkaz --tmpfs nastaví velikost na 4 GB a uid (ID uživatele) a gid (ID skupiny) na 10001, aby byla požadovaná oprávnění pro vytvoření souborů tempdb správně nastavena.
Jakmile je kontejner spuštěný, připojte se k SQL Serveru pomocí aplikace SSMS a přesuňte tempdb soubory do nového umístění /var/opt/mssql/tempdb pomocí následujících příkazů T-SQL:
SELECT [name],
physical_name
FROM sys.master_files
WHERE database_id = 2;
Na základě počtu zobrazených souborů upravte následující příkaz. V tomto příkladu jsou čtyři tempdb soubory a jeden soubor protokolu. Pomocí následujících příkazů přesuňte tyto soubory do nového umístění:
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
Po přesunutí souborů zastavte a restartujte kontejner pomocí následujících příkazů.
docker stop sql1
docker start sql1
Nasazení kontejnerů se všemi daty a soubory protokolů v tmpfs
Warning
Tato konfigurace není podporovaná, ale je možné ji použít pro účely vývoje. Na GitHubu můžete poskytnout zpětnou vazbu k tomuto scénáři.
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