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 tempdb podporovány pouze databázové soubory 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:sudo mkdir /var/opt/mssql/tempdb sudo chown mssql. /var/opt/mssql/tempdbPřipojte souborový systém 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 ke své SQL Server instanci pomocí SQL Server Management Studio (SSMS) a spusťte následující Transact-SQL (T-SQL) příkazy.
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ů.Jakmile bude SQL Server spuštěn, ověřte, že
tempdbdata a logovací soubory jsou nyní umístěny v novém adresáři připojením k SQL Server pomocí nástroje jako 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 plný, můžete také za běhu změnit velikost přípojného bodu tempdb. 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:
sudo 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.
Hostovat pouze databázi tempdb na souborovém systému tmpfs
Pokud nasazujete kontejner SQL Serveru a chcete zajistit, aby kontejner používal pro systém tempdb, 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
Možnost --tmpfs nastaví velikost na 4 GB a uid (uživatelské ID) a gid (ID skupiny) na 10001, aby bylo zajištěno, že požadovaná oprávnění jsou pro vytváření souborů tempdb nastavena správně.
Jakmile je kontejner spuštěn a funkční, připojte se k instanci SQL Server pomocí SSMS a aktualizujte tempdb umístění /var/opt/mssql/tempdb souborů 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 datové soubory a jeden logovací soubor. Použijte následující příkazy k aktualizaci umístění souborů:
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 aktualizaci umístění souborů zastavte a znovu spusťte 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