SQL Server'da işlem günlüğü otomatik olarak küçülecek mi?


10

Basit bir modda SQL Server veritabanı, işlem günlüğü bakcups umurumda gerekmez. Ancak BASİT modunda, işlem günlüğü TAM modda olduğu gibi büyüyor gibi görünüyor. Bir noktada otomatik olarak kesiliyor mu? Yoksa elle kısaltmam / küçültmem gerekiyor mu?

Yanıtlar:


19

Otomatik olarak kesilir, ancak büzülmek çok farklıdır. Kesme, yeniden kullanım için günlük alanını geri kazanır, küçültmek, alanı işletim sistemine geri bırakmak için dosya boyutunu fiziksel olarak küçültür. Günlüğünüz şu anki boyutuna ulaştıysa, küçültürseniz tekrar büyüyebilir.

Sisteminiz için tipik ve maksimum günlük kullanımının ne olduğunu ele almanızı öneririm. Aşağıdaki sorgu (benimki değil, Glen Berrys DMV komut dosyalarından artırıldı) manuel olarak çalıştırılabilir veya bir aracı işi aracılığıyla çıktıyı bir tabloya kaydedebilirsiniz. Bir hafta boyunca bir tabloya oturum açarsanız, tipik bir kullanım resmi ve daha da önemlisi, bir işlem günlüğün beklediğinizin ötesinde büyümesine neden olduğunda.

SELECT 
     db.[name] AS [Database Name]
   , db.recovery_model_desc AS [Recovery Model]
   , db.log_reuse_wait_desc AS [Log Reuse Wait Description]
   , ls.cntr_value AS [Log Size (KB)]
   , lu.cntr_value AS [Log Used (KB)]
   , CAST(
        CAST(lu.cntr_value AS FLOAT) / CAST(ls.cntr_value AS FLOAT) 
        AS DECIMAL(18,2)
     ) * 100 AS [Log Used %]
   , db.[compatibility_level] AS [DB Compatibility Level]
   , db.page_verify_option_desc AS [Page Verify Option]
   , db.is_auto_create_stats_on, db.is_auto_update_stats_on
   , db.is_auto_update_stats_async_on, db.is_parameterization_forced
   , db.snapshot_isolation_state_desc, db.is_read_committed_snapshot_on
FROM sys.databases AS db
   INNER JOIN sys.dm_os_performance_counters AS lu 
     ON db.name = lu.instance_name
   INNER JOIN sys.dm_os_performance_counters AS ls 
     ON db.name = ls.instance_name
WHERE lu.counter_name LIKE N'Log File(s) Used Size (KB)%' 
   AND ls.counter_name LIKE N'Log File(s) Size (KB)%'
   AND ls.cntr_value > 0 
OPTION (RECOMPILE);

İşlem Günlüğü Kesmesi , günlük kesmenin ne zaman ve neden oluştuğunu açıklar.

Günlük kayıtları hiçbir zaman işlem günlüğünden silinmediyse, sonunda fiziksel günlük dosyalarının kullanabileceği tüm disk alanını dolduracaktır. Günlük kesme işlemi, işlem günlüğü tarafından yeniden kullanılmak üzere mantıksal günlükteki alanı otomatik olarak serbest bırakır.

Günlük Kesmeyi Geciktirebilen Faktörler , günlüğünüzün neden kırpılmadığını ve bu nedenle beklenenden daha büyük büyüyebileceğini anlamak için yararlı bir referanstır.


4

Hayır ve hayır

  • küçülmez veya kesilmez (fiziksel LDF anlamında mantıklı bir şekilde yapar)
  • boyutunun olması gerekiyor, böylece küçülmüyorsunuz

Küçültürseniz, tekrar büyüyecek ve parçalanmış bir dosyanız olacak


0

Daha önce de belirtildiği gibi, hayır otomatik olarak kendini küçültmez. Ancak bazı çöpleri temizleyecektir.

Bunun nedeni, tam kurtarma modelinde SQL'e nokta kurtarma için tlog yedeklemeleri yapmak istediğinizi söylüyorsunuz, böylece bir veritabanına karşı yapılan tüm işlemlerin kaydını tutar.

Zaman kurtarma istediğinizi söylediğiniz için tam yedeklemeler ve tlog yedeklemeleri yapmanız gerekir. Tlog yedeklemelerinizi tamamladığınızda, günlüğün içeriğini (kuyruk ucunun yanı sıra) temizler ve baştan başlar.

Bu dosyaları kapsayıcılar olarak düşünmeniz yardımcı olabilir.

Benim önerim, eğer tlog'lar büyük ve yönetilemez hale gelirse, tam bir yedek kesin. Geçin BASİT modelini kurtarmak ve ŞİRİNK tlog dosyasını. Tam kurtarma modeline geri dönün ve parçalanma bakımı yapın *. Diğerleri gibi bu uygulamalar en iyi değildir ve yüksek düzeyde parçalanmaya yol açacaktır.

Bundan sonra bir yedekleme rejimi planlayın ve başlayın.


* Dizin yeniden oluşturma / yeniden düzenleme işlemleri ve disk düzeyinde birleştirme . Bu günlük bakımının bir parçası değildir: T Günlüklerinizi yedekleyerek korursunuz. Kapasiteye yaklaştıklarında büyüyen kaplardır. Yeniden oluşturma / yeniden düzenleme, büyük disk kullanımına yol açan uygunsuz günlük yönetiminden kurtulmanıza yardımcı olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.