dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Home/Hata Teşhis Kütüphanesi/sqlserver-filegroup-full
SQL Server
SQL Server 2025 / 2022Depolama & Dosya Grupları
7 dk okuma
Could not allocate space ... because the 'PRIMARY' filegroup is full

SQL Server "PRIMARY filegroup is full" — Neden Büyümüyor?

1105 hatasında datafile boyutu, MAXSIZE, autogrowth ve disk alanı kontrolü; dosya ekleme ile büyütme arasındaki doğru karar.

İnceleyen:Principal Database Architect & SRE
Test Edilen Sürümler: SQL Server 2025 (17.0 CU10 KB5125471) & 2022 (16.0 CU14)

Operasyonel Doğrulama & Güvenilirlik Standardı

Son Teknik İnceleme: 29 Ekim 2026
Test Edilen SürümlerSQL Server 2025 (17.0 CU10 KB5125471) & 2022 (16.0 CU14)
Gerekli YetkiALTER DATABASE yetkisi
Risk Seviyesi
HighPRIMARY dosya grubunun dolması sistem kataloglarını da kilitleyerek tüm işlemleri dondurur
Beklenen ÇıktıSabit MB autogrowth veya ikincil .ndf veri dosyası eklenerek kısıtın çözülmesi
Geri Dönüş (Rollback) Planı:Gereksiz tabloları boşaltma, MAXSIZE sınırını kontrollü artırma
Microsoft Learn: Database Files and Filegroups
İlk 60 Saniye Teşhis Protokolü:

Hata mesajı semptomdur, kök neden değildir. Sunucuyu yeniden başlatmadan veya rastgele ayar değiştirmeden önce aşağıdaki "Nedeni ayırt eden tek sorgu"yu çalıştırarak gerçek senaryoyu netleştirin.

▸Belirti

plaintext
Could not allocate space for object 'dbo.Siparis' in database 'app' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

Bu doğrudan "disk doldu" hatası değildir; veritabanı dosyasının izin verilen sınırlar dahilinde büyüyemediğini gösterir.


▸Adım Adım Teşhis

1. Dosya Ayarlarını ve Büyüme Parametrelerini İnceleyin

sql
SELECT name, physical_name, size / 128.0 AS boyut_mb, max_size, -- -1 = sınırsız, 268435456 = 2 TB growth, is_percent_growth FROM sys.database_files;
BulguAnlamıÇözüm
max_size değerine ulaşılmışDosya üst sınırına takılmıştırMAXSIZE artırın veya yeni dosya ekleyin
growth = 0Otomatik büyüme (autogrowth) kapalıdırAutogrowth özelliğini açın
is_percent_growth = 1Yüzde ile büyüme etkindirSabit megabayt (MB) büyümesine çevirin

2. İşletim Sistemi Diskini Kontrol Edin

Veritabanı dosyası büyümek istese bile fiziksel diskte boş alan kalmamışsa bu hata verilir.

3. PRIMARY Dosya Grubu Tehlikesi

Kullanıcı tablolarını PRIMARY grubunda tutmak risklidir: Sistem katalogları da bu grupta olduğundan, dolduğunda yalnızca tablolar değil tüm veritabanı metadata işlemleri kilitlenir.


▸Çözüm Yolları

1. Sabit MB ile Autogrowth Ayarlayın

sql
ALTER DATABASE app MODIFY FILE (NAME = app_data, SIZE = 20GB, FILEGROWTH = 512MB, MAXSIZE = 200GB);
NOT
Yüzdesel büyüme (%10) büyük veritabanlarında tehlikelidir: 1 TB'lık bir dosyada %10 büyüme tek seferde 100 GB tahsisat demektir ve büyüme süresince tüm yazma işlemleri duraksar.

2. Dosya Grubuna Yeni Veri Dosyası (.ndf) Ekleyin

sql
ALTER DATABASE app ADD FILE (NAME = app_data2, FILENAME = 'D:\Data\app_data2.ndf', SIZE = 10GB, FILEGROWTH = 512MB, MAXSIZE = 100GB) TO FILEGROUP [PRIMARY];

3. Kalıcı Mimari Çözüm: Ayrı Kullanıcı Dosya Grubu

Kullanıcı nesnelerini FG_DATA gibi ayrı bir dosya grubuna taşımak sistem kataloglarını korur.


▸Bunu Bir Daha Yaşamamak İçin

İki metriği eşzamanlı izleyin: Dosya doluluk yüzdesi ve MAXSIZE'a kalan mesafe. %30 dolu görünen ancak MAXSIZE'a 10 MB kalmış bir dosya ilk toplu işlemde çöker.

Diğer Veritabanı Hata Teşhisleri

Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.

Tüm Hatalar (50)