Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Linux üzerinde SQL Server 2025 (17.x)
Bu makale, SQL Server 2025'te (17.x) tempdb dosya sisteminde veritabanı dosyalarını etkinleştirmenize ve çalıştırmanıza yol gösterir.
Linux ve kapsayıcılarda SQL Server geleneksel olarak SQL Server veritabanı dosyalarını ve günlüklerini dağıtmak için XFS ve ext4 dosya sistemlerini destekler. Ancak, gibi tempdbverilerin bir çalışma süresinden diğerine kaydedilmesini gerektirmeyen geçici veritabanları için bellek (RAM) kullanan bir tmpfs dosya sistemi kullanmak, tabanlı iş yükleri için tempdbgenel performansı artırabilir.
tmpfs dosya sistemi hakkında daha fazla bilgi için bkz. tmpfs - Linux Çekirdeği belgeleri.
| Konfigürasyon | Açıklama |
|---|---|
| Desteklenen yapılandırma |
tmpfs , yeniden başlatmalar arasında kaydedilmesi gerekmeyen kalıcı olmayan verileri depolamak için idealdir. Şu anda hem kapsayıcı hem de kapsayıcı tabanlı olmayan dağıtımlar için tempdb dosya sisteminde yalnızca veritabanı dosyaları desteklenmektedir. |
| Desteklenmeyen yapılandırma | tmpfs dosya sistemi SQL kapsayıcı dağıtımlarındaki kullanıcı veritabanları için kullanılabilir, ancak yalnızca geliştirme amacıyla kullanılabilir. Ancak bu yapılandırma desteklenmez. GitHub'da bu senaryo için geri bildirim sağlayabilirsiniz. |
Fiziksel veya sanal makine dağıtımları
Fiziksel veya sanal makinelerde Linux üzerinde SQL Server için tmpfs desteğini etkinleştirmek için , sudo erişimi gerektiren tmpfs dosya sistemini doğru bağlamanız gerekir. Bağlama noktaları ayarlandıktan sonra, tempdb dosyalarını bu noktalara yerleştirebilir ve tempdb dosya sistemine bağlanmış olarak SQL Server'ı başlatabilirsiniz.
Tmpfs'yi etkinleştir tempdb
tempdbDizini oluşturun.Komutunu kullanarak
mkdirveritabanı içintempdbbir dizin oluşturun. SQL Server erişimine izin vermek içinmssqlkullanıcı ve grubun sahibi olduğundan emin olun.mkdir /var/opt/mssql/tempdb sudo chown mssql. /var/opt/mssql/tempdbtmpfs dosya sistemini bağlayın.
tmpfs dosya sistemini bağlamak için aşağıdaki komutu kullanın:
sudo mount -t tmpfs -o size=4G tmpfs /var/opt/mssql/tempdb/-tseçeneği, bu durumdatmpfsolan dosya sisteminin türünü belirtir.-oseçeneği bağlama seçeneklerini belirtmenize olanak tanır. Burada,size=4Gen fazla tmpfs boyutunu 4 GB olarak ayarlar, yani 4 GB'a kadar RAM kullanabilir.Bu komut tmpfs'yi SQL Server
tempdbveritabanı tarafından kullanılan hedef dizine bağlar.İsteğe bağlı olarak, bağlamaları yeniden başlatmalar arasında korumak için
fstabiçine ekleyin.echo "tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0" | sudo tee -a /etc/fstabDosya konumunu güncelleştirin
tempdb.SQL Server'ın çalışır durumda olduğundan emin olun. SQL Server Management Studio'yu (SSMS) kullanarak SQL Server örneğine bağlanın ve aşağıdaki T-SQL komutlarını çalıştırın.
Aşağıdaki T-SQL betiğini kullanarak tüm
tempdbdosyaları tanımlayın ve ardından komutunu çalıştırarakALTER DATABASEdosya konumunu güncelleştirintempdb:SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;Görmekte olduğunuz
tempdbiçin dosya sayısına bağlı olarak,ALTER DATABASEkomutlarını aşağıdaki gibi oluşturursunuz: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');Değişiklikleri uygulamak için SQL Server'ı yeniden başlatın.
sudo systemctl restart mssql-serverDosyaların konumunu doğrulayın
tempdb.SQL Server çalışır duruma geldikten sonra SQL Server Management Studio (SSMS) gibi bir araç kullanarak SQL Server'a bağlanarak veri ve günlük dosyalarının artık yeni dizinde bulunduğunu doğrulayın
tempdb.SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;
Artık olan yeni bağlama yolunda tempdbtüm /var/opt/mssql/tempdb veritabanı dosyalarını görmeniz gerekir.
Tmpfs bağlamasını sık yeniden boyutlandırma
Ayrıca dolu olması durumunda tempdb bağlamasını yeniden boyutlandırabilirsiniz. Sık erişimli yeniden boyutlandırmak için aşağıdaki komutu çalıştırarak tmpfs bağlamasını 6 GB'a yeniden boyutlandırın:
mount -o remount,size=6G /var/opt/mssql/tempdb
İsteğe bağlı olarak, fstab girişini değiştirerek yeni boyutun yeniden başlatmalar boyunca kalıcı olmasını sağlayın.
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
Konteyner dağıtımları
Geliştirici iş yükleri için , tmpfs kullanıcı veritabanları için kullanılabilir. tmpfs dosya sistemleri, kapsayıcılara dağıtılan kullanıcı veritabanları için test çalışmalarını önemli ölçüde hızlandırabilir. Tmpfs disk depolama yerine RAM kullandığından, hızlı okuma/yazma işlemlerine olanak tanır. Bu yapılandırma, hızlı yinelemelerin gerekli olduğu geliştirme ve test ortamlarında kullanışlıdır.
Ancak, kullanıcı veritabanları için tmpfsdesteklenmez . GitHub'datmpfs üzerindeki kullanıcı veritabanlarıyla ilgili geri bildirim sağlayabilirsiniz.
Yalnızca tempdb tmpfs dosya sisteminde veritabanlarını barındırma
SQL Server kapsayıcısı dağıtıyorsanız ve kapsayıcının tempdb kullandığından emin olmak istiyorsanız, aşağıdaki komutu çalıştırabilirsiniz:
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
Komut, oluşturulacak --tmpfs dosyaları için gerekli izinlerin doğru ayarlandığından emin olmak amacıyla boyutu 4 GB olarak ayarlar ve kullanıcı kimliği uid ile grup kimliği gid10001 olarak ayarlanır.
Kapsayıcı çalışır duruma geldikten sonra SSMS kullanarak SQL Server'a bağlanın ve aşağıdaki T-SQL komutlarıyla dosyaları yeni konuma tempdb taşıyın/var/opt/mssql/tempdb:
SELECT [name],
physical_name
FROM sys.master_files
WHERE database_id = 2;
Gördüğünüz dosya sayısına bağlı olarak aşağıdaki komutu değiştirin. Bu örnekte dört tempdb dosya ve bir günlük dosyası vardır. Bu dosyaları yeni konumlarına taşımak için aşağıdaki komutları kullanı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
Dosyaları taşıdıktan sonra aşağıdaki komutları kullanarak kapsayıcıyı durdurun ve yeniden başlatın
docker stop sql1
docker start sql1
Tmpfs üzerinde tüm veri ve günlük dosyalarıyla kapsayıcıların dağıtımı
Uyarı
Bu yapılandırma desteklenmez, ancak geliştirme amacıyla kullanılabilir. GitHub'da bu senaryo için geri bildirim sağlayabilirsiniz.
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