Aracılığıyla paylaş


İşlem günlüğünü daraltma

Bir işlem günlük dosyası, değil gerek, kullanılmayan alanı içerdiğini biliyorsanız, işlem günlüğünün boyutunu azaltarak fazladan boşluk geri.Bu işlemi olarak bilinir küçültme günlük dosyası.

En az sanal günlük dosyası boş iken yalnızca veritabanı çevrimiçi ve, ayrıca, daraltma oluşabilir.Bazı durumlarda, günlük daraltma sonraki günlük kesilme'sonra kadar mümkün olmayabilir.

Not

Işlem günlüğü sırada kuruldu ve tam kurtarma modeli altında veritabanı yedeklendiğinde tipik olarak kesme otomatik olarak Basit kurtarma modeli altında oluşur.Ancak, bir dizi etken tarafından kesme geciktirileceği.Daha fazla bilgi için bkz:Oturum kesilmesi gecikme Etkenler.

(Veritabanı dosyalarının daraltılması olmadan) bir günlük dosyası daraltmak için

Günlük dosyası küçültme olayları izlemek için

To monitor log space

Not

Veritabanı ve günlük dosyalarının daraltılması olabilir küme otomatik olarak gerçekleşecek şekilde.Ancak, Otomatik küçültme karşı önerilir ve autoshrink veritabanı özelliğini FALSE olarak varsayılan olarak küme. If autoshrink TRUE olarak, yalnızca kendi alan birden fazla yüzde 25 kullanılmayan olduğunda otomatik olarak küçültme dosya boyutunu küçültür. Dosya ya da hangi boyutta yalnızca yüzde 25'dosyasının kullanılmayan bir alanı olan veya dosyanın özgün boyutuna hangisi büyükse shrunk.Ayarını değiştirme hakkında bilgi için autoshrink özellik için bkz: Nasıl Yapılır: Görüntülemek veya bir veritabanı (SQL Server Management Studio'yu) özelliklerini değiştirme— kullanmak Otomatik Shrink özelliğiSeçenekler sayfa—or DATABASE küme seçenekleri (Transact-SQL) ALTER— AUTO_SHRINK seçeneğini kullanın.

Nasıl günlük dosyası daraltılması çalışmıyor?

Işlem günlüğünü daraltma, bir veya daha çok etkin değil, sanal günlük dosyaları kaldırarak, fiziksel boyutunu azaltır.Boyutunu azaltma her zaman sanal günlük dosyası birimidir.Örneğin, altı 100 MB sanal günlükleri bölünmüş 600 megabayt (MB) bir günlük dosyası varsa, günlük dosyasının boyutu yalnızca 100 MB artırmalarla azaltılabilir.500 MB veya 400 MB gibi boyutları için dosya boyutu azalır, ancak dosya boyutlarını 433 MB ya da 525 MB olarak azaltılamaz.Diğer bir deyişle, herhangi bir etkin günlük kayıtları taşıyan BIR sanal günlük dosyasına bir Etkin sanal günlük dosyası, mantıksal günlük bir parçasıdır ve kaldırılamaz.Daha fazla bilgi için bkz:Fiziksel işlem günlüğü mimarisi.

Not

The Database Engine chooses the size of the sanal günlük dosyası dynamically when log files are created or extended. Daha fazla bilgi için bkz:Fiziksel işlem günlüğü mimarisi.

Bir günlük dosyası, geçerli boyutu sanal günlük dosyaları tarafından kullanılan sayfaların toplam boyutu ile aynıdır.Ancak, sayfaları günlük dosyaları tarafından kullanılmadığını unutmayın.Herhangi bir bölümünü mantıksal günlük tutan sanal günlük dosyaları serbest bırakılamıyor.Dosyayı shrunk günlük dosyasındaki tüm sanal günlük dosyaları mantıksal günlük bölümlerini basılı tutarsanız.Daraltma, aşağıdakilerden bir veya daha fazlasını devre dışı olarak sanal günlük dosyaları, günlük kesilme işaretler sonra kadar mümkün değildir.

Küçültme dosya işlemi, yalnızca etkin olmayan bir sanal günlük dosyaları kaldırabilirsiniz.Hedef Büyüklük belirtilmezse, küçültme dosya işlemi, yalnızca son etkin sanal günlük dosyası dışında etkin değil, sanal günlük dosyaları dosyayı kaldırır.Bir hedef boyutu belirtilmişse, verilen küçültme dosya işlemi yaklaşmanıza ancak hedef boyutu aşan yeterince etkin yalnızca sanal günlük dosyaları kaldırır.Daraltma sonra günlük dosyası genelde hedef boyuttan biraz fazla olur ve hiçbir zaman daha küçük olur.Sanal günlük dosyaları, günlük dosyasının ne kadar gerçekte küçülür tahmin güçleşebilir.

Herhangi bir dosyayı shrunk, serbest bırakılan alanı dosya sonundan gelmelidir.Bir işlem günlük dosyası shrunk, günlük, kullanıcı tarafından istenen boyuta azaltmak için yeterli sanal günlük dosyaları günlük dosyasının sonuna serbest.The target_size specified by the user is rounded to the next highest sanal günlük dosyası boundary. Örneğin, bir kullanıcının belirlediği, bir target_size 325 MB altı 100 MB sanal günlük dosyaları içeren bizim örnek 600 MB'DEN dosyası için son iki sanal günlük dosyaları kaldırılır ve yeni dosya boyutu 400 MB'dir.

Bir DBCC SHRINKDATABASE veya DBCC SHRINKFILE işlemini hemen fiziksel günlük dosyasını istenen boyuta Küçült çalışır:

  • Mantıksal sanal günlük dosyaları günlüğünde hiçbir bölümü ötesine genişletir, target_size işaretlemek, sanal günlük dosyaları sonra gelen target_size işareti serbest ve başarılı DBCC deyim ile ilgili hiçbir ileti tamamlanır.

Sanal günlükleri mantıksal günlüğe parçası ötesine genişletir, target_size işaretlemek, SQL Server Database Engine olabildiğince çok alanı serbest bırakır ve bilgilendirici bir ileti verir. Iletinin mantıksal günlük dosyasının sonunda sanal günlükleri kaldırmak için gerçekleştirmek istediğiniz eylemleri bildirir.Bu eylem gerçekleştirdikten sonra kalan alan boşaltmak için DBCC deyim sonra yeniden yayımladı.

Örneğin, altı sanal günlük dosyaları içeren bir 600 MB'LıK günlük dosyası, sanal günlük 3 başlatır ve bir DBCC SHRINKFILE çalıştırdığınızda, sanal günlük 4 sona erdirir mantıksal bir günlük olduğunu varsayalım deyim ile bir target_size 275, sanal günlük 3 içine biçimini three-quarters olan MB:

Log file with 6 virtual log files before shrinking

Mantıksal günlük bir bölümünü içerir, çünkü sanal günlük dosyaları 5 ve 6 hemen serbest.Bununla birlikte, belirtilen karşılamak için target_size, sanal günlük dosyası 4 de serbest, ancak bu, son bölümünü mantıksal günlük tutan çünkü bunu yapamazsınız. Sonra sanal günlük dosyası s 5 ve 6'da, boşaltmayı Database Engine kalan kısmını doldurur sanal günlük dosyası kukla kayıtlarla 4. Bu günlük dosyasının sonuna zorlar sanal günlük dosyası 1.Çoğu sistemlerindeki tüm hareketler başlatmaya sanal günlük dosyası 4 saniye içinde kaydedilmiş olacaktır.Bunun anlamı, günlüğü tüm etkin bölümü taşınmasından etkilenmeksizin sanal günlük dosyası 1.Günlük dosyasını şimdi şuna benzer:

Log file is reduced to 4 virtual files

DBCC SHRINKFILE deyim, ayrıca, istenen tüm alanı boşaltmanız değil ve kalan boş bir yedek LOG deyim çalışabileceği bildiren bir bilgi iletisi verir.Sonra sanal günlük dosyası için 1 günlük etkin bölümü taşır, yedek LOG bir deyim, sanal günlük dosyasında 4 tüm mantıksal günlük keser:

Log file results after truncating the log

Çünkü sanal günlük dosyası 4, artık herhangi bir bölümünü mantıksal günlüğünü tutar, aynı DBCC SHRINKFILE deyimiyle şimdi çalıştırmak bir target_size 275 MB. Sonra serbest 4 günlük dosyasının sanal ve fiziksel günlük dosyasının boyutunu, istediğiniz boyuta azalır.

Not

Bir uzun süren işlem gibi bazı Etkenler sanal günlük dosyaları etkin uzun bir süre için tutabilirsiniz.Bu günlük küçülme kısıtlamak veya bile, hiç küçültme günlük engeller.Daha fazla bilgi için bkz:Oturum kesilmesi gecikme Etkenler.