Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2025 (17.x) di Linux
Artikel ini memandu Anda untuk mengaktifkan dan menjalankan tempdb file database pada sistem file tmpfs di SQL Server 2025 (17.x).
SQL Server di Linux dan kontainer secara tradisional mendukung sistem file XFS dan ext4 untuk menyebarkan file dan log database SQL Server. Namun, untuk database sementara seperti tempdb, yang tidak mengharuskan data disimpan dari satu periode waktu aktif ke periode berikutnya, menggunakan sistem file tmpfs yang memanfaatkan memori (RAM) dapat meningkatkan performa keseluruhan untuk beban kerja berbasis tempdb.
Untuk informasi selengkapnya tentang sistem file tmpfs , lihat tmpfs - Dokumentasi Kernel Linux.
| Configuration | Deskripsi |
|---|---|
| Konfigurasi yang didukung | tmpfs ideal untuk menyimpan data non-persisten yang tidak perlu disimpan setelah restart. Saat ini hanya file-file database yang didukung pada sistem berkas tmpfs untuk penyebaran berbasis kontainer dan non-kontainer. |
| Konfigurasi yang tidak didukung | sistem file tmpfs dapat digunakan untuk database pengguna dalam penyebaran kontainer SQL, tetapi hanya untuk tujuan pengembangan. Namun, konfigurasi ini tidak didukung. Anda dapat memberikan umpan balik untuk skenario ini di GitHub. |
Penyebaran komputer fisik atau virtual
Untuk mengaktifkan dukungan tmpfs untuk SQL Server di Linux pada komputer fisik atau virtual, Anda perlu memasang sistem file tmpfs dengan benar, yang memerlukan akses sudo. Setelah poin mount disiapkan, Anda dapat menempatkan tempdb file pada poin mount ini dan memulai SQL Server dengan memasang file tempdb pada sistem file tmpfs.
Aktifkan tmpfs untuk tempdb
Buat direktori
tempdb.mkdirGunakan perintah untuk membuat direktori untuktempdbdatabase. Pastikan bahwamssqldimiliki oleh pengguna dan grup untuk memungkinkan akses bagi SQL Server:sudo mkdir /var/opt/mssql/tempdb sudo chown mssql. /var/opt/mssql/tempdbPasang sistem berkas tmpfs.
Gunakan perintah berikut untuk memasang sistem file tmpfs :
sudo mount -t tmpfs -o size=4G tmpfs /var/opt/mssql/tempdb/Opsi
-tmenentukan jenis sistem file, yang dalam hal ini adalahtmpfs.Opsi
-omemungkinkan Anda menentukan opsi pemasangan. Di sini,size=4Gmengatur ukuran maksimum tmpfs menjadi 4 GB, yang berarti dapat menggunakan RAM hingga 4 GB.Perintah ini memasang tmpfs ke direktori target yang digunakan oleh database SQL Server
tempdb.Secara opsional, tambahkan ke
fstabuntuk mempertahankan pemasangan di seluruh restart.echo "tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0" | sudo tee -a /etc/fstabPerbarui
tempdblokasi file.Pastikan SQL Server aktif dan berjalan. Hubungkan ke instance SQL Server Anda menggunakan SQL Server Management Studio (SSMS), dan jalankan perintah Transact-SQL berikut (T-SQL).
Identifikasi semua
tempdbfile menggunakan skrip T-SQL berikut, lalu jalankan perintahALTER DATABASEuntuk memperbarui file lokasitempdb.SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;Berdasarkan jumlah file yang Anda lihat untuk
tempdb, Anda membuatALTER DATABASEperintah sebagai berikut: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');Mulai ulang SQL Server untuk menerapkan perubahan.
sudo systemctl restart mssql-serverPeriksa
tempdblokasi file.Setelah SQL Server berjalan, pastikan
tempdbdata dan file log sekarang berada di direktori baru dengan menghubungkan ke SQL Server menggunakan alat seperti SSMS.SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;
Anda sekarang akan melihat semua tempdb file database pada jalur pemasangan baru yaitu /var/opt/mssql/tempdb.
Mengubah ukuran pemasangan tmpfs dengan panas
Anda juga dapat melakukan penyesuaian ukuran tmpfs secara langsung jika tempdb sudah penuh. Untuk melakukan resize secara langsung, jalankan perintah berikut untuk mengubah ukuran mount tmpfs menjadi 6 GB.
sudo mount -o remount,size=6G /var/opt/mssql/tempdb
Secara opsional, buat ukuran baru tetap berlaku di seluruh mulai ulang dengan memodifikasi entri 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
Penyebaran kontainer
Untuk beban kerja pengembang, tmpf dapat digunakan untuk database pengguna. sistem file tmpfs dapat mempercepat kasus pengujian secara signifikan untuk database pengguna yang disebarkan dalam kontainer. Karena tmpfs menggunakan RAM alih-alih penyimpanan disk, tmpfs memungkinkan operasi baca/tulis yang cepat. Konfigurasi ini berguna dalam lingkungan pengembangan dan pengujian di mana perulangan cepat diperlukan.
Namun, tmpfs untuk database pengguna tidak didukung. Anda dapat memberikan umpan balik terkait database pengguna di tmpfs di GitHub.
Tempatkan hanya database tempdb pada sistem berkas tmpfs
Jika Anda menyebarkan kontainer SQL Server dan ingin memastikan bahwa kontainer menggunakan tmpfs untuk tempdb, Anda dapat menjalankan perintah berikut:
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
Opsi --tmpfs mengatur ukuran menjadi 4 GB dan menetapkan uid (ID pengguna) serta gid (ID grup) ke 10001 untuk memastikan bahwa izin yang diperlukan diatur dengan benar agar file tempdb dapat dibuat.
Setelah kontainer aktif dan berjalan, sambungkan ke instans SQL Server menggunakan SSMS, lalu perbarui lokasi file tempdb menjadi /var/opt/mssql/tempdb dengan perintah T-SQL berikut:
SELECT [name],
physical_name
FROM sys.master_files
WHERE database_id = 2;
Berdasarkan jumlah file yang Anda lihat, ubah perintah berikut. Dalam contoh ini, terdapat empat tempdb file data dan satu file log. Gunakan perintah berikut untuk memperbarui lokasi file:
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
Setelah Anda memperbarui lokasi file, hentikan dan restart kontainer menggunakan perintah berikut:
docker stop sql1
docker start sql1
Menyebarkan kontainer dengan semua data dan file log di tmpfs
Warning
Konfigurasi ini tidak didukung, tetapi dapat digunakan untuk tujuan pengembangan. Anda dapat memberikan umpan balik untuk skenario ini di 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