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) – Linux
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. U dočasných databází, jako tempdbjsou databáze, které nevyžadují ukládání dat z jednoho období provozu do jiného, ale pomocí systému souborů tmpfs , který využívá paměť (RAM), může zvýšit celkový výkon úloh tempdbzaložených na úlohách.
Další informace o systému souborů tmpfs najdete v dokumentaci k jádru Linuxu.
| Konfigurace | Popis |
|---|---|
| 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ě se v systému souborů tempdb podporují pouze soubory databáze pro nasazení typu kontejner i bez kontejneru. |
| 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 tempdb umístit soubory na tyto připojení a spustit SQL Server se soubory připojenými tempdb v systému souborů tmpfs .
Povolení tmpfs pro tempdb
tempdbVytvořte adresář.mkdirPomocí příkazu vytvořte adresář protempdbdatabázi. Ujistěte se, že je vlastníkemmssqluživatele a skupiny, aby povolil přístup k SQL Serveru: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ě ho přidejte, abyste
fstabzachovali připojení napříč restartováními: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é vidíte
tempdb, vytvoříteALTER DATABASEpříkazy následujícím způsobem: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, aby se změny použily.
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 připojení tempdb plné, můžete také změnit velikost za tepla. Pokud chcete změnit velikost za provozu, spusťte následující příkaz a změňte velikost připojení tmpfs na 6 GB:
mount -o remount,size=6G /var/opt/mssql/tempdb
Volitelně můžete novou velikost zachovat v restartování úpravou fstab položky:
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.
Hostování pouze tempdb databází v systému souborů tmpfs
Pokud nasazujete kontejner SQL Serveru a chcete zajistit, aby kontejner pro tento kontejner používal 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
Příkaz --tmpfs nastaví velikost na 4 GB a uid (ID uživatele) a gid (ID skupiny), aby 10001 se zajistilo správné nastavení požadovaných oprávnění pro tempdb vytvoření souborů.
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
Výstraha
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