İşlem günlüğü beklenmedik biçimde büyüyor veya sql Server'da doluyor

Makale çevirileri Makale çevirileri
Makale numarası: 317375 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Otomatik büyüme seçeneğini Microsoft SQL Server 2005 ve sonraki sürümleri, SQL Server 2000 ve SQL Server 7.0 ayarlı ise, işlem günlüğü dosyalarının otomatik olarak günlük dosyasının başına 2 terabayt (TB) en büyük günlük dosyası boyutunu genişletebilirsiniz.

Genellikle, denetim noktaları veya işlem günlüğü yedekleri tarafından tetiklenen hareket günlüğü kesilmeleri arasında oluşabilecek en fazla sayıda işlemi tutabildiğinde işlem günlüğü dosyasının boyutu kararlı hale gelir.

Ancak, bazı durumlarda işlem günlüğü çok büyük hale gelir ve çalışma alanı yetersiz hale gelir veya dolar. Genellikle, bir işlem günlüğü dosyası kullanılabilir disk alanını kullanır ve artık genişletilemezse aşağıdaki hata iletisini alırsınız:
Hata: 9002, Önem Derecesi: 17, Durum: 2
Veritabanı için günlük dosyası '%. *ls' dolu.
SQL Server 2005 kullanıyorsanız, aşağıdakine benzer bir hata iletisi alırsınız:
Hata: 9002, Önem Derecesi: 17, Durum: 2
Veritabanı için işlem günlüğü ' %. * ls dolu. Neden günlük alanı yeniden kullanılamaz öğrenmek için log_reuse_wait_desc sütununda sys.databases bakın.
Bu hata iletisinin yanı sıra, sql Server veritabanı şüpheli olarak bir işlem günlüğünün genişlemesi alanı yetersizliği nedeniyle işaretleyebilir. Bu durumdan kurtarma hakkında daha fazla bilgi için sql Server Books Online'da "Yetersiz Disk alanı" konusuna bakın.

Ayrıca, işlem günlüğünün genişlemesi için aşağıdaki nedenlerden biri veya aşağıdaki senaryolardan birinde oluşabilir:
  • Çok büyük bir işlem günlük dosyası.
  • İşlemler başarısız olabilir ve geri almaya başlayabilir.
  • İşlemlerin tamamlanması uzun sürebilir.
  • Performans sorunları oluşabilir.
  • Engelleme ortaya çıkabilir.
  • Veritabanı içinde bir AlwaysOn Kullanılabilirlik grubu katılıyor.

Daha fazla bilgi

İşlem günlüğünün genişlemesi biri aşağıdaki nedenlerden veya senaryolar için oluşabilir.


Not SQL Server 2005 ve sonraki sürümlerinde, neden hareket günlük alanı kullanılmaz ve işlem günlüğü neden kesilmiş olamaz belirlemek için sys.databases Katalog görünümü log_reuse_wait ve log_reuse_wait_desc sütunlarını gözden geçirebilirsiniz.


Kaydedilmemiş işlemler

Çok büyük işlemler

İşlemler: DBCC DBREINDEX ve CREATE INDEX

İşlem günlüğü yedeklerini geri yüklerken

İstemci uygulamaları tüm sonuçları işlemez

İşlem günlüğü genişletme tamamlanmadan önce sorgular zaman aşımına uğruyor ve yanlış 'Günlük dolu' hata iletileri alıyorsunuz

Çoğaltılmamış hareketler

AlwaysOn ikincil veritabanı için işlem günlüğü kayıtlarının uygulanıyor ' AVAILABILITY_REPLICA'

Gelişmiş bilgiler

Herhangi bir veritabanı için işlem günlüğü, sanal günlük dosyaları (VLFs) bir dizi olarak yönetilir. sql Server dahili olarak günlük dosyası ve günlük genişletirken, kullanılan büyüme artışı toplam boyutuna göre vlf dosya boyutlarını belirler. Bir günlük her zaman tüm VLFs birimlerinde genişler ve yalnızca vlf sınırına kadar sıkıştırabilirsiniz. Bir vlf üç durumdan birinde bulunabilir: ETKİN, KURTARILABİLİR ve YENİDEN KULLANILABİLİR.
  • ETKİN: Günlük etkin bölümü (kaydedilmemiş) etkin bir işlemi temsil eden küçük günlük sıra sayısında (LSN) başlar. Günlük etkin bölümü en son yazılan LSN'de sona erer. Etkin günlüğün herhangi bir bölümünü içeren herhangi bir VLFs etkin VLFs olarak kabul edilir. (Fiziksel günlükte kullanılmayan alan herhangi bir VLF'nin parçası değildir.).
  • KURTARILABİLİR: Logların aktif olan en eski işlemden önceki kısmı sadece kurtarma işlemleri için kullanılacak log yedekleri serisi oluşturmak için gereklidir.
  • Yeniden kullanılabilir: işlem günlüğü yedekleri korumak değil ya da youalready Kütüğü yedeklediyseniz, SQL Server VLFs önce en eski activetransaction yeniden kullanır..
SQL Server fiziksel günlük dosyasının sonuna ulaştığında, dosya başlangıcına geri DİKKATİ işlem keserek bu alanda fiziksel dosya yeniden başlatır. Gerçekte, SQL Server yedekleme veya kurtarma amacıyla gerekli olmayan günlük dosyasındaki alanı geri dönüştürür. Bir günlük yedek dizisi korunuyorsa, bu günlük kayıtlarını yedeklemenize veya kesmenize kadar en az LSN öncesindeki günlük parçasının üzerine yazılamaz. sql Server günlük yedeği gerçekleştirdikten sonra dosyanın başına geri daire içine alabilir. SQL Server günlük dosyasından daha önce günlük kayıtlarını yazmaya yeniden başlarsa, günlüğün yeniden kullanılabilir kısmı mantıksal günlük ile günlüğün etkin bölümü arasındadır.

Daha fazla bilgi için sql Server Books Online'da "İşlem günlüğünün fiziksel yapısı" konusuna bakın. Ayrıca, bununla ilgili bir diyagram ve tartışma için bkz. sayfa 190, "Inside SQL Server 7.0" (Soukup, Ron. Inside Microsoft SQL Server 7.0, Microsoft Press, 1999) ve ayrıca bkz. sayfa 182 ila 186, "Inside SQL Server 2000" (Delaney, Kalen. Inside Microsoft SQL Server 2000, Microsoft Press, 2000). SQL Server 2000 ve SQL Server 7.0 veritabanları için otomatik büyüme ve daralma seçeneğiniz vardır. İşlem günlüğünüzü genişletmek veya sıkıştırmak yardımcı olmak için bu seçenekleri kullanın.

Sunucu bu seçenekleri nasıl etkileyebileceği hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
315512 sql Server'da otomatik büyüme ve otomatik daralma yapılandırmalarına ilişkin hususlar
İşlem günlüğü dosyasının kesilme işlem günlük dosyasının sıkıştırması farklılık gösterir. sql Server işlem günlük dosyası keser, bu (örneğin, tamamlanan hareketlerin) dosyanın içeriğini silindiği anlamına gelmektedir. Ancak, disk alanı açısından dosyasının boyutu (örneğin, Windows Gezgini'nde veya dir komutunu kullanarak) görüntülerken boyutu değişmeden kalır. Ancak, .ldf dosyasında alanı şimdi yeni hareketler tarafından yeniden kullanılabilir. Yalnızca sql Server işlem günlüğü dosyasının boyutunu küçültür, gerçekte fiziksel günlük dosyasının boyutunda bir değişiklik görürsünüz.

İşlem günlüklerinin daraltma hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
256650 Nasıl yapılır: sql Server 7.0 işlem günlüğünü daraltma
272318 sql Server 2000 dbcc SHRINKFILE ile işlem günlüğünü daraltma
sql Server 6.5 hareket günlük kullanımı hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
110139 sql işlem günlüğünün dolma nedenleri

SQL Server 2005 ve sonraki sürümlerinde günlük alanı büyük miktarda tüketen sorguları bulma

SQL Server 2005 ve sonraki sürümlerinde, günlük alanı büyük miktarda tüketen sorguları bulmak için sys.dm_tran_database_transactions dinamik yönetim görünümü (DMV) kullanabilirsiniz. Sys.dm_tran_database_transactions aşağıdaki sütunlarda dmv yararlı olabilir:
  • database_transaction_log_bytes_used
  • database_transaction_log_bytes_used_system
  • database_transaction_log_bytes_reserved
  • database_transaction_log_bytes_reserved_system
  • database_transaction_log_record_count
Günlük alanı büyük miktarda tüketir deyimi gerçek metni elde etmek için dmv sys.dm_exec_requests sql_handle sütun sorgulama yapabilirsiniz. dmv sys.dm_tran_database_transactions ve transaction_id sütun üzerinde sys.dm_tran_session_transactions dmv katılma ve daha sonra ek bir birleşim sys.dm_exec_requests ile session_id sütun ekleyerek bunu yapabilirsiniz.

DMV sys.dm_tran_database_transactions hakkında daha fazla bilgi için gidin sys.dm_tran_database_transactions (Transact-SQL) Microsoft Developer Network (msdn) Web sitesi.

DMV sys.dm_tran_session_transactions hakkında daha fazla bilgi için gidin sys.dm_tran_session_transactions (Transact-SQL) MSDN Web sitesi.

DMV sys.dm_exec_requests hakkında daha fazla bilgi için gidin sys.dm_exec_requests (Transact-SQL) MSDN Web sitesi.

Özellikler

Makale numarası: 317375 - Last Review: 15 Ocak 2014 Çarşamba - Gözden geçirme: 3.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Anahtar Kelimeler: 
kbsqlsetup kbinfo kbmt KB317375 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 317375

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com