Makale numarası: 317375 - Son Gözden Geçirme: 27 Mart 2008 Perşembe - Gözden geçirme: 6.3 Işlem günlüğü beklenmedik biçimde büyüyor veya SQL Server çalıştıran bir bilgisayarda dolduğu
Bu SayfadaÖzetSQL Server 7.0, SQL Server 2000 ve SQL Server 2005 ' te otomatik büyüme ayarıyla, işlem günlüğü dosyalarının otomatik olarak genişletebilirsiniz. Denetim noktaları ya da işlem günlüğü yedekleri tetikleyen işlem günlüğü truncations arasında oluşan hareketlerin sayısı basılı olduğunda, genellikle, işlem günlüğü dosyasının boyutunu stabilizes. Ancak, bazı durumlarda hareket oturum tam olur ya da çok büyük ve çalışma alanı yetersiz olabilir. Genellikle, bir işlem, kullanılabilir disk alanı dosya alır oturum ve artık genişletilemiyor aşağıdaki hata iletisini alırsınız: Hata: 9002, önem derecesi: 17, durum: 2 Veritabanı günlük dosyası ' %. * ls dolu. Hata: 9002, önem derecesi: 17, durum: 2 Veritabanı için işlem günlüğü ' %. * ls dolu. Neden günlük alanı yeniden kuramıyor dışında bulmak için <a0></a0>, sys.databases log_reuse_wait_desc sütununa bakın. Ayrıca, işlem günlüğünün genişlemesi aşağıdaki durumlarda oluşabilir:
Neden oluyorIşlem günlüğünün genişlemesi aşağıdaki nedenler veya senaryoları nedeniyle oluşabilir:
Kaydedilmeyen hareketlerAçık hareketler, açık COMMIT veya ROLLBACK komut vermek için kaydedilmemiş kalır. Bu en sık ortaya çıkar uygulama bir IPTAL veya karşılık gelen bir ROLLBACK komutunu olmadan Transact SQL KILL. bir komut yayımladığında. Hareket iptal oluşur, ancak onu geri.; Bu nedenle, SQL Server, durdurulan işlem hala açık olduğundan, bundan sonra her hareket kesecek edemiyor. Veritabanında belirli bir zaman etkin bir işlem olup olmadığını doğrulamak için DBCC OPENTRAN Transact-SQL başvuru kullanabilirsiniz. Bu belirli senaryosu hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:295108
(http://support.microsoft.com/kb/295108/
)
Eksik işlem çok sayıda kilitler ve servis talebi engelleme tutabileceğini 171224
(http://support.microsoft.com/kb/171224/
)
Transact-SQL KILL komut çalışma şeklini anlamak Ayrıca, "DBCC OPENTRAN" SQL'de konusuna Server Books Online'da.Senaryoları kaydedilmemiş hareketlere neden:
Aşırı büyük hareketleriIşlem günlüğü dosyalarını günlük kayıtları, bir hareketin hareket bazında kesiliyor. Işlem kapsamı, kaldırılmıyor sonra hareket günlükten onu tamamlar sürece hareketi ve tüm işlemleri başlatıldı, büyükse. Bu, büyük boyutlu günlük dosyaları neden olabilir. Hareket yeterince büyükse, günlük dosyası kadar kullanılabilir disk alanını kullanın ve "işlem günlüğü dolu" Hata 9002 gibi bir hata iletisi türü neden. Bu tür bir hata iletisini alırsanız yapmanız gerekenler hakkında ek bilgi için bu makalenin "Daha fazla bilgi" bölümünde sağlanmıştır. Ayrıca, çok fazla zaman ve büyük hareketleri geri almak için SQL Server yük alır.Işlemi: DBCC DBREINDEX ve CREATE INDEXSQL Server 2000 <a1>Kurtarma</a1> modelindeki değişiklikler nedeniyle, Tam kurtarma modu kullanıp DBCC DBREINDEX, çalışan işlem günlüğü önemli ölçüde daha, SQL Server 7.0 için bir eşdeğer kurtarma modunda SELECT INTO veya BULK COPY kullanımını ve "trunc. ile karşılaştırıldığında genişletin Chkpt. oturumu".Bu yaklaşım, DBREINDEX operasyondan sonraki hareket günlüğü boyutu, bir sorun olabilir, ancak günlük geri yükleme için daha iyi performans sağlar. Hareket günlüğü yedeklerden geri yükleme sırasındaBu, aşağıdaki Microsoft Knowledge Base makalesinde açıklanmıştır:232196
(http://support.microsoft.com/kb/232196/
)
Yedekten geri yükledikten sonra ulaşması için kullanılan günlük alanı görüntülenir. SQL Server 2000 toplu günlük modu kullanacak biçimde ayarlayın ve bir BULK COPY veya SELECT INTO deyimi vermek, değişen her bir uzantının işaretlenir ve işlem günlüğünü yedekleme sonra yedeklendi. Bu işlem günlüklerini yedekleyin ve toplu işlemleri yaptıktan hatalarını kurtarıp izin verir, ancak bu işlem için işlem günlüklerinin boyutunu ekler. SQL Server 7.0, bu özellik içermez. Hangi kapsamları değiştirilir yalnızca SQL Server 7.0 kaydeder, ancak gerçek kapsamlarını kaydetmez. Bu nedenle, SQL Server 7.0 değil çok gibi ancak toplu günlük modunda, tam modda göre önemli ölçüde daha fazla alan SQL Server 2000'de günlüğe alır. Istemci uygulamaların tüm sonuç işlemeSQL Server için bir sorgu vermek ve sonuçları hemen işlemeyen kilit tutan ve sunucunuzda eşzamanlılık azaltma.Sorguda çıkış varsayın, satır gerektiren sonuç doldurmak için iki sayfa olarak ayarlayın. SQL Server ayrıştırdığında derler ve sorguyu çalıştırır. Bunun anlamı, paylaşılan kilitler, sorgunuzu karşılamak için gerekli olan satırları içeren iki sayfa olarak yerleştirilir. Ayrıca, tüm satır, bir SQL Server TDS paket sığmayacak varsayalım, sunucu istemci ile iletişim kurar (yöntemi). TDS paketleri doldurmuştur ve istemciye gönderilir. Ilk sayfa'den tüm satırlar üzerinde TDS paket sığıyorsa, SQL Server o sayfadaki paylaşılan kilidi b?rak?r, ancak ikinci sayfasında paylaşılan bir kilit bırakır. SQL Server sonra (DBNEXTROW/DBRESULTS, SQLNextRow/SQLResults veya FetchLast/FetchFirst kullanarak bunu yapabilirsiniz) daha fazla veri istemek istemci bekler. Bu, verilerin geri kalanını istemci istekleri kadar paylaşılan kilidi tutulduğu anlamına gelir. Ikinci sayfasından veri isteyen diğer işlemler tarafından engellenebilir. Işlem günlüğü genişletme işlemi tamamlandıktan ve false 'Tam günlük' hata iletileri alıyorsunuz önce zaman aşımı sorgularYeterli disk alanı olmasına karşın bu durumda, hala "dışında alanı" hata iletisi alırsınız.Bu durum, SQL Server 7.0 ve SQL Server 2000 için değişir. Sorguda, işlem günlüğü neredeyse doluysa, otomatik olarak genişletmek işlem günlüğü neden olabilir. Bu ek zaman alabilir ve sorguda durdurulmuş olabilir veya bu nedenle, zaman aşımı süresini aşmış olabilir. SQL Server 7.0, bu durumda Hata 9002 döndürür. Bu sorun, SQL Server 2000 için geçerli değildir. SQL Server 2000'de bir veritabanı için açık Otomatik küçültme seçeneğiniz varsa, bir çok küçük sırasında otomatik olarak genişletmek bir işlem günlüğü çalışır, ancak Otomatik küçülme işlevi aynı anda çalışmadığından bu edemiyor zamanı vardır. Bu hata 9002 yanlış örneklerini de neden olabilir. Genellikle, işlem günlüğü dosyalarının otomatik olarak genişlemesini hızlı gerçekleşir. Ancak, aşağıdaki durumlarda, bu normalden daha uzun sürebilir:
Unreplicated hareketleriÇoğaltması kullanılıyorsa, yayımcı veritabanının işlem günlük boyutunu genişletebilirsiniz. Hareketler çoğaltılır nesneleri etkileyen "İçin çoğaltma." ile işaretlenmiş Kaydedilmemiş hareketleri gibi bu hareketler Günlük Okuyucu görev hareketleri dağıtım veritabanına kopyalar ve bunları unmarks kadar denetim noktası sonra veya daha sonra işlem günlüğü geri silinmez. Bir günlük okuyucu görev sorun <a0></a0>, bu hareketler yayımcı veritabanındaki okumanızı engeller, işlem günlüğünün boyutunu olmayan yinelenen hareketlerin artar sayısı olarak genişletmek devam edebilirsiniz. Eski olmayan yinelenmiş hareketi tanımlamak için DBCC OPENTRAN Transact-SQL başvuru kullanabilirsiniz.Unreplicated hareketleri ile ilgili sorunları giderme hakkında daha fazla bilgi için SQL Server Books Online'da "sp_replcounters" ve "sp_repldone" konularına bakın. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın: 306769
(http://support.microsoft.com/kb/306769/
)
Düzeltme: Anlık yayımlanan veritabanının işlem günlüğü kesildi 240039
(http://support.microsoft.com/kb/240039/
)
Düzeltme: Çoğaltma bilgilerini DBCC OPENTRAN bildirmiyor 198514
(http://support.microsoft.com/kb/198514/
)
Düzeltme: Yeni bir sunucuya geri yükleme günlüğünde kalmasını hareketleri neden olur. Daha fazla bilgiHerhangi bir veritabanı işlem günlüğünün, günlük genişlediğinde, SQL Server dahili olarak belirler, boyutu toplam boyutu ve günlük dosyasının büyüme artışı kullanımda dayalı sanal günlük dosyaları (VLFs) kümesi olarak yönetilir. Bir günlüğü, her zaman tüm VLFs birimlerinde genişletir ve yalnızca bir VLF sınırına sıkıştırabilirsiniz. Bir VLF üç durumdan birinde bulunabilir: ACTIVE KURTARıLABILIR ve REUSABLE.
Ek bilgi için SQL Server Books Online'da "İşlem günlüğü fiziksel Architecture" konusuna bakın. Ayrıca, bir mükemmel diyagramı ve bu (Soukup, Ron. tartışma sayfasında 190 "Inside SQL Server 7.0" görebilirsiniz Iç Microsoft SQL Server 7.0, Microsoft Press, 1999) ve ayrıca, "Inside SQL Server 2000" 186 aracılığıyla 182 (Delaney, Kalen. sayfaları Iç Microsoft SQL Server 2000, Microsoft Press, 2000). SQL Server 7.0 ve SQL Server 2000 veritabanı otomatik büyüme ve autoshrink seçenekleri vardır. Bu seçenekler, sıkıştırma veya işlem günlüğünüzü genişletmek amacıyla kullanabilirsiniz. Bu seçenekler, sunucunuzun nasıl etkileyebileceği hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın: 315512
(http://support.microsoft.com/kb/315512/
)
SQL Server'da otomatik büyüme ve Autoshrink yapılandırma ile ilgili konuları Işlem günlük dosyasının sıkıştırması ve kesme arasında bir fark yoktur. SQL Server işlem günlük dosyası bir tamsayıya yuvarlar, (örneğin, tamamlanmış hareketler), bir dosyanın içeriğini yani silinir. Ancak, disk alanı açısından dosyasının boyutu (örneğin, Windows Gezgini'nde veya dir</a0> komutunu kullanarak) görüntülerken boyutu aynı kalır. Ancak, alanın içinde .ldf dosyasını ş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ı boyutunun değiştirilmesi görüyor musunuz.Işlem günlüklerinin daraltmak hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın: 256650
(http://support.microsoft.com/kb/256650/
)
Nasıl yapılır: SQL Server 7.0 işlem günlüğünü daraltma 272318
(http://support.microsoft.com/kb/272318/
)
SQL Server 2000'de DBCC SHRINKFILE ile işlem günlüğünü daraltma (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.) SQL Server 6.5 hareket günlüğü kullanımı hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın: 110139
(http://support.microsoft.com/kb/110139/
)
SQL işlem günlüğünün doldurmayı nedenleri Nasıl yapılır: SQL Server 2005'te günlük alanı büyük miktarda kullanan sorguları bulun.SQL Server 2005'te sys.dm_tran_database_transactions dinamik bir yönetim görünümü (DMV), büyük miktarlarda günlük alanı kullanan sorguları bulmak için kullanabilirsiniz. The sys.dm_tran_database_transactions aşağıdaki sütunlarda DMV yararlı olabilir:
DMV sys.dm_tran_database_transactions hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin: http://msdn2.microsoft.com/en-us/library/ms186957.aspx
(http://msdn2.microsoft.com/en-us/library/ms186957.aspx)
DMV sys.dm_tran_session_transactions hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin: http://msdn2.microsoft.com/en-us/library/ms188739.aspx
(http://msdn2.microsoft.com/en-us/library/ms188739.aspx)
DMV sys.dm_exec_requests hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin: http://msdn2.microsoft.com/en-us/library/ms177648.aspx
(http://msdn2.microsoft.com/en-us/library/ms177648.aspx)
Bu makaledeki bilginin uygulandığı durum:
Otomatik TercümeÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir. Makalenin İngilizcesi aşağıdaki gibidir:317375
(http://support.microsoft.com/kb/317375/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukHemen Yardım AlMakale çevirileri
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Üste