Microsoft, Microsoft SQL Server 2005, 2008 ve 2008 R2 düzeltmelerini indirilebilir tek bir dosya olarak dağıtır. Düzeltmeler toplu olduğundan, her yeni sürüm önceki SQL Server 2005, 2008 ve 2008 R2 düzeltme sürümüne dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir.
Belirtiler
Aşağıdaki senaryoyu inceleyin:
-
Microsoft SQL Server 2005, Microsoft SQL Server 2008 veya Microsoft SQL Server 2008 R2'yi bir bilgisayara yüklersiniz.
-
Veritabanlarından biri veya daha fazlası tam veya toplu günlüğe kaydedilen kurtarma modelindedir.
-
Veritabanı için işlem günlüğü dosyasının ilk boyutu küçük. Ancak işlem dosyası büyük büyür.
-
İşlem günlüğü dosyasının otomatik büyüme artışı küçük bir boyuta yapılandırılır. Örneğin, otomatik büyüme büyüme artışı bir megabayt veya yüzde bir olarak yapılandırılır. Ya da el ile küçük bir büyüme kullanarak işlem günlüğü dosyasının artmasını sağlayabilirsiniz.
-
İşlem günlüğü dosyası küçük büyüme artışıyla büyür. Bir süre sonra işlem günlüğü dosyası büyük olur.
Örneğin, işlem günlüğü dosyası yüz megabayttan on gigabayt'a kadar büyür. İşlem günlüğü dosyası her büyümede bir megabayt artışla büyür.
Bu senaryoda aşağıdaki sorunlarla karşılaşabilirsiniz:
-
Kurtarılması gereken çok fazla iş varsa veritabanı başlatıldığında veritabanı kurtarma işlemi yavaştır.
Örneğin, bir işlem uzun süre açık bekliyor. Öte yandan, SQL Server kapatıldığında veya yeniden başlatıldığında boyutu küçük olan birçok işlem işlenmez. Bu durumda analiz aşamasında, geri alma aşamasında veya yineleme aşamasında uzun bir tahmini kurtarma süresi için hata alabilirsiniz. Hata aşağıdakine benzer ve SQL Server 2005 hata günlüğü dosyasına kaydedilir:'mydatabase' (7) veritabanının analizi %0 tamamlandı (yaklaşık 1234 saniye kaldı). Bu yalnızca bilgilendirme amaçlı bir iletidir. Kullanıcı eylemi gerekmez.
-
Veritabanı çevrimiçi olduğunda tam veritabanı yedekleme dosyası ve ek işlem günlüğü dizisi geri yüklendiğinde veritabanı kurtarma yavaştır.
Not Geri yükleme işlemi sırasında veritabanını çevrimiçi hale getirmek için, WITH RECOVERY söz dizimini veya WITH STANDBY = <seçeneklerini> söz dizimini kullanın. -
Veritabanı yansıtma kurtarması, yansıtma çiftindeki bir iş ortağı sunucusunda yavaştır.
-
İşlem çoğaltması için günlük okuyucu aracısının ilerleme durumu aşağıdaki işlemler için yavaştır:
-
Yayımcı veritabanının işlem günlüğü ayrıştırılır.
-
Dağıtım veritabanına bir komut eklenir.
-
İşlemler çoğaltılır.
-
-
Çok sayıda işlem günlüğe kaydedilirse veya işlem günlükleri uzun süre etkin kalırsa veritabanı anlık görüntüsü oluşturulduğunda yavaş performans oluşur. Anlık görüntünün kurtarmayı çalıştırması ve işlem günlüklerinin geri alınması gerektiğinden bu sorun oluşur.
-
Veritabanı anlık görüntüsünün tutarlılık denetimlerini çalıştırmak için tamamen kurtarılması gereken gizli bir veritabanı anlık görüntüsü oluşturmak için DBCC CHECKDB söz dizimini kullandığınızda yavaş performans oluşur.
Neden
Bu sorunlar, bir işlem günlüğü dosyasındaki Sanal Günlük Dosyaları (VLFS) aşağıdaki işlemler sırasında SQL Server bu VLF'leri taradığında yavaş performansa neden olabileceğinden oluşur:
-
Veritabanı kurtarma
-
Veritabanı yansıtma
-
Veritabanı anlık görüntüsü
-
Veritabanı işlem çoğaltma günlüğü okuyucu etkinlikleri
Bir veritabanı için işlem günlüğü dosyası, aşırı büyüme koşulları sırasında küçük artışlarla artırıldığında, tek bir işlem günlüğü (.ldf) dosyası kümesi içinde binlerce ile yüz binlerce VDF bulunur. Ancak, büyük artışlarla büyük günlük büyümesi, karşılaştırmaya göre yalnızca birkaç VLF oluşturur. Örneğin, birkaç sanal makine 100'den az olabilir.
Not VLF'ler, işlem günlüğü dosyasındaki SQL Server tarafından dahili olarak kullanılan bölümler veya segmentlerdir.Çözüm
Toplu güncelleştirme bilgileri
SQL Server 2008 R2
Bu sorunun düzeltmesi ilk olarak Toplu Güncelleştirme 6'da yayımlandı. SQL Server 2008 R2 için bu toplu güncelleştirme paketini edinme 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:
2489376 SQL Server 2008 R2 için Toplu Güncelleştirme paketi 6 Not Derlemeler toplu olduğundan, her yeni düzeltme sürümü önceki SQL Server 2008 R2 düzeltme sürümüne dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı göz önünde bulundurmanızı öneririz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
981356 SQL Server 2008 R2 yayımlandıktan sonra yayımlanan SQL Server 2008 R2 derlemeleri
SQL Server 2008 Service Pack 1
Bu sorunun düzeltmesi ilk olarak SQL Server 2008 Service Pack 1 için Toplu Güncelleştirme 12'de yayımlandı.
Not Derlemeler toplu olduğundan, her yeni düzeltme sürümü önceki SQL Server 2008 düzeltme sürümüne dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Microsoft, bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı düşünmenizi önerir. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
970365 SQL Server 2008 Service Pack 1 yayımlandıktan sonra yayımlanan SQL Server 2008 derlemeleri, belirli SQL Server hizmet paketleri için Microsoft SQL Server 2008 düzeltmeleri oluşturulur. SQL Server 2008 Service Pack 1 yüklemesine SQL Server 2008 Service Pack 1 düzeltmesi uygulamanız gerekir. Varsayılan olarak, bir SQL Server hizmet paketinde sağlanan tüm düzeltmeler sonraki SQL Server hizmet paketine eklenir.
SQL Server 2008 Service Pack 2
Bu sorunun düzeltmesi ilk olarak SQL Server 2008 Service Pack 2 için Toplu Güncelleştirme 2'de yayımlandı.
Not Derlemeler toplu olduğundan, her yeni düzeltme sürümü önceki SQL Server 2008 düzeltme sürümüne dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Microsoft, bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı düşünmenizi önerir. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
2402659 SQL Server 2008 Service Pack 2 yayımlandıktan sonra yayımlanan SQL Server 2008 derlemeleri Microsoft SQL Server 2008 düzeltmeleri belirli SQL Server hizmet paketleri için oluşturulur. SQL Server 2008 Service Pack 2 yüklemesine SQL Server 2008 Service Pack 2 düzeltmesi uygulamanız gerekir. Varsayılan olarak, bir SQL Server hizmet paketinde sağlanan tüm düzeltmeler sonraki SQL Server hizmet paketine eklenir.
SQL Server 2005 Service Pack 3
Bu sorunun düzeltmesi ilk olarak SQL Server 2005 Service Pack 3 için Toplu Güncelleştirme 13'te yayımlandı.
Not Derlemeler toplu olduğundan, her yeni düzeltme sürümü önceki SQL Server 2005 düzeltme sürümüne dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Microsoft, bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı düşünmenizi önerir. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
960598 SQL Server 2005 Service Pack 3 yayımlandıktan sonra yayımlanan SQL Server 2005 derlemeleri, belirli SQL Server hizmet paketleri için Microsoft SQL Server 2005 düzeltmeleri oluşturulur. SQL Server 2005 Service Pack 3 yüklemesine SQL Server 2005 Service Pack 3 düzeltmesi uygulamanız gerekir. Varsayılan olarak, bir SQL Server hizmet paketinde sağlanan tüm düzeltmeler sonraki SQL Server hizmet paketine eklenir.
SQL Server 2005 Service Pack 4
Bu sorunun düzeltmesi ilk olarak SQL Server 2005 Service Pack 4 için Toplu Güncelleştirme 1'de yayımlandı.
Not Derlemeler toplu olduğundan, her yeni düzeltme sürümü önceki SQL Server 2005 düzeltme sürümüne dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Microsoft, bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı düşünmenizi önerir.
SQL Server 2005 Service Pack 4 yüklemesine SQL Server 2005 Service Pack 4 düzeltmesi uygulamanız gerekir. Varsayılan olarak, bir SQL Server hizmet paketinde sağlanan tüm düzeltmeler sonraki SQL Server hizmet paketine eklenir.
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Geçici Çözüm
Bu düzeltmeyi yükleyin ve SQL Server yeniden başlatın, kurtarma performansını artırabilir. Örneğin, bu düzeltmeyi yükleyip SQL Server yeniden başlattıktan sonra aşağıdaki işlemler için performans geliştirilebilir:
-
Veritabanı kurtarma
-
Veritabanı yansıtma
-
Veritabanı anlık görüntüsü
-
Veritabanı işlem çoğaltma günlüğü okuyucu etkinlikleri
Bu düzeltmeyi yükleyemiyorsanız, var olan bir sorunu azaltmak ve gelecekte oluşmasını önlemek için aşağıdaki geçici çözümleri gerçekleştirebilirsiniz.
Mevcut bir sorunu azaltma
-
Geri yükleme veya kurtarma işleminin tamamlanmasını
bekleyin Veritabanını geri yüklerken veya kurtarırken yavaş performansla karşılaşan kurtarılmamış bir veritabanınız varsa, geri yükleme veya kurtarma işleminin tamamlanmasını beklemeniz gerekebilir. Örneğin, kurtarılamayan bir veritabanının çevrimdışı durumunu veya kurtarma durumunu SQL Server Management Studio (SSMS) içinde görebilirsiniz. SQL Server durdurulması genellikle yavaş kurtarma için hiçbir rahatlama sağlar ve aynı kurtarma analizi aşamasını, yineleme aşamasını veya geri alma aşamasını yinelemek daha uzun sürebilir. -
Binlerce VLF
içeren işlem günlüğü sırasını geri yüklemekten kaçının Yedekleme dosyası kullanarak veritabanını geri yüklerken ve kurtarırken yavaş performansla karşılaşırsanız, binlerce VLF içeren işlem günlüğü dizilerini geri yüklemekten kaçınabilirsiniz. En çok sanal günlük dosyasının kaydedildiği yedekleme dosyasını tanımlamak için, günlük yedekleme dosyalarındaki FirstLSN ve LastLSN sütunlarını görmek için aşağıdaki deyimi kullanın: HEADERONLY'YI DISKTEN GERI YÜKLE='C:\folder\file.trn' Günlük yedekleme dosyalarını geri yüklememeye karar vekleyebilirsiniz. Öte yandan, işlem günlüklerinin yüksek oranda parçalanmış kısımlarını önlemek için RESTORE komutlarındaki STOP AT deyimini de kullanabilirsiniz. Hata kurtarma senaryosu sırasında günlük dizilerini en son noktaya kadar tamamen geri yüklemezseniz, veritabanınızda veri kaybı SQL Server oluşur. Bu veri kaybı, tüm işlemlerin tutulmaması nedeniyle oluşur. Bu nedenle, bir iş denge kararı vardır. Yüksek oranda parçalanmış bir işlem günlüğünü tamamen geri yükleyebilirsiniz. Ancak bu işlem birkaç saat sürebilir. İsterseniz, günlüğün yüksek oranda parçalanmış bölümünden önce kurtarmayı durdurmak için kurtarmadaki STOP AT deyimini de kullanabilirsiniz. Ancak, atladığınız tüm eksik işlemler kaybolur. Not Bu düzeltmeyi yüklemeden, SQL Server yeniden başlattıktan sonra hızlandırılmış kurtarma için genellikle güvenli bir başvuru yoktur. SQL Server günlük dosyalarını analiz etmek, tamamlanmış işlemleri yinelemek ve sonra veritabanını güvenli bir şekilde çevrimiçi yapmak için kurtarmayı tamamlamak için tamamlanmamış işlemleri geri almak için VLF'lerin listesini bulması gerekir. Kurtarma sırasında işlemleri güvenli bir şekilde atlayamazsınız.
Gelecekteki bir oluşumu önleme
-
Veritabanının otomatik büyüme artışını uygun bir boyuta
ayarlayın Otomatik büyüme artışının boyutu çok küçükse, çok sayıda Sanal Günlük Dosyası (VLF) olacaktır ve SQL Server yavaş performansla karşılaşabilirsiniz. Otomatik büyüme artışının boyutu çok büyükse, işlem günlüklerinin otomatik olarak büyümesini sağlayan sorguların büyümeyi tamamlamak için uzun süre beklemesi gerekebilir. Bu nedenle, SQL Server zaman aşımı hatası oluşabilir. Bu sorunları geçici olarak çözmek için veritabanınız için otomatik büyüme artışının boyutunu uygun bir boyuta ayarlayabilirsiniz. -
Çok sayıda VLIF'yi ortadan kaldırın ve el ile büyümeyi
kullanın İşlem günlüğünde çok sayıda VLI varsa, işlem günlüğünün boyutunu küçültün ve el ile büyümeyi kullanarak talebi karşılamak için yoğun iş öncesinde artışı sağlayın. Örneğin, işlem günlüğü büyük bir artışta veya tek bir el ile büyümede makul bir ortalama boyuta geri döner. Bu nedenle işlem günlüğünün boyutu en yüksek kapasiteye ulaşır ve günlük yedekleme dosyaları sık ve düzenli aralıklarla zamanlanır. Ayrıca işlem günlüğü kesilebilir ve işlem günlüğü için VLF'ler bir döngüde yeniden kullanılabilir. -
İşlem günlüğünü el ile
küçültme ve artırma Çok fazla VLF içeren bir günlüğü düzeltmek için şu adımları izleyerek günlüğü daraltın ve el ile yeniden artırın:-
Veritabanı tam veya toplu günlüğe kaydedilmiş bir kurtarma modelindeyse, etkin VDF'lerin kesilmesine ve yeniden kullanılmasına izin vermek için işlem günlüğünü yedeklemeniz gerekir. BACKUP LOG databasename TO DISK='C:\folder\log_backupfile.trn'
SSMS kullanarak işlem günlüğü dosyasını yedekleme hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) web sitesini ziyaret edin:SSMS kullanarak işlem günlüğü dosyasını yedeklemeTransact-SQL deyimlerini kullanarak işlem günlüğü dosyasını yedekleme hakkında daha fazla bilgi için aşağıdaki MSDN web sitesini ziyaret edin:
Transact-SQL deyimlerini kullanarak işlem günlüğü dosyasını yedekleme
-
İşlem günlüğü dosyasının mantıksal adını belirlemek için aşağıdaki deyimlerden birini çalıştırın.
Deyim 1 exec sp_helpfile Deyimi 2 sys.sysfiles dosyasından * öğesini seçin İşlem günlüğü dosyasının boyutunu istenen boyuta küçültmek için şu kodu kullanın:DBCC SHRINKFILE(transactionloglogicalfilename, TRUNCATEONLY) -
İşlem günlüğü dosyasının boyutunu uygun bir boyuta artırabilirsiniz. İşlem günlüğü dosyasının boyutunun normal boyutun en üst noktasına kadar artmasına izin vermenizi öneririz. Bu nedenle, otomatik büyüme artışı önlenir. İşlem günlüğünün boyutunu ayarlamak için SSMS'deki Veritabanı Özellikleri sayfasını kullanın veya aşağıdaki ALTER DATABASE söz dizimini kullanın:MODIFY FILE ( NAME = transactionloglogicalfilenae, SIZE=newtotalsize MB)
SSMS'de veritabanının boyutunu artırma hakkında daha fazla bilgi için aşağıdaki MSDN web sitesini ziyaret edin:SSMS'de veritabanının boyutunu artırmaALTER DATABASE MODIFY FILE söz dizimi hakkında daha fazla bilgi için aşağıdaki MSDN web sitesini ziyaret edin:
ALTER DATABASE MODIFY FILE söz dizimi hakkında genel bilgiler
-
Ek Bilgi
SQL hata günlüğü dosyasını gözden geçirip her işlem günlüğü yedekleme dosyasındaki günlük sırası numarasını (LSN) bularak VLF segmentlerinin sayısını kontrol edebilirsiniz. LSN'lerdeki iki nokta üst üste simgesinden önceki ilk basamaklar, LSN'nin sayısına karşılık gelir.
Örneğin, LSN'nin ilk bilgilendirme iletisindeki ilk sayı 1'dir. Ancak, LSN için ikinci bilgilendirme iletisindeki ilk sayı 100001. Bu senaryoda, ilk bilgilendirici ileti ile ikinci bilgilendirme iletisinin zamanı arasında 100.000 VFS kullanılır. Bu nedenle, çok sayıda Sanal Günlük Dosyası (VLF) içeren günlüğe kaydedilen parçalanmış işlem günlüğü aşağıdakine benzer:{Günlük yedeklendi. Veritabanı: mydbname, oluşturma tarihi(saati): 2010/07/08(12:36:46), ilk LSN: 1:5068:70, son LSN: 1:5108:1, döküm cihazı sayısı: 1, cihaz bilgileri: (FILE=1, TYPE=DISK: {'C:\folder\logbackup1.trn'}). Bu yalnızca bilgilendirme amaçlı bir iletidir. Kullanıcı eylemi gerekmez.
Günlük yedeklendi. Veritabanı: mydbname, oluşturma tarihi(saati): 2010/07/08(15:36:46), ilk LSN: 100001:5108:1, son LSN: 100002:5108:1, döküm cihazı sayısı: 1, cihaz bilgileri: (FILE=2, TYPE=DISK: {'C:\folder\logbackup2.trn'}). Bu yalnızca bilgilendirme amaçlı bir iletidir. Kullanıcı eylemi gerekmez.} Aşağıdaki tabloda, SQL Server örneğinizdeki "Belirtiler" bölümünde ve kuralın değerlendirildiği SQL Server sürümlerinde açıklanan koşulu otomatik olarak denetleyen ürünler veya araçlar hakkında daha fazla bilgi sağlanır.
Kural yazılımı |
Kural başlığı |
Kural açıklaması |
Kuralın değerlendirildiği ürün sürümleri |
---|---|---|---|
System Center Danışmanı |
İşlem Çoğaltma ile SQL Server, Günlük Okuyucu Aracısı Performansı işlem günlüğünün boyutu veya VLF sayısı nedeniyle etkilenebilir |
Bu SQL Server örnek danışmanı, VDF sayısı veya TLOG boyutu çok daha büyük olan iletişim durumu işlem çoğaltmasını algılamıştır. Günlük Okuyucu Aracısı Performansı, işlem günlüğünün boyutundan veya VLF sayısından olumsuz etkilenir. Günlük Okuyucu Aracısı performansını geliştirmek için İşlem Günlüğü Boyutunu ve VLF sayısını azaltın. |
SQL Server 2008 SQL Server 2008 R2 SQL Server 2012 |
Başvurular
İşlem günlüğünün fiziksel mimarisi hakkında daha fazla bilgi için aşağıdaki MSDN web sitesini ziyaret edin:
İşlem günlüğünün fiziksel mimarisi hakkında genel bilgiler Günlük sırası numaraları (LSN) hakkında daha fazla bilgi için aşağıdaki MSDN web sitesini ziyaret edin:
Günlük dizisi numaraları hakkında genel bilgiler Veritabanı yansıtma başlatıldığında oluşan 1413 hatası hakkında daha fazla bilgi için aşağıdaki MSDN web sitesini ziyaret edin:
Veritabanı yansıtma başlatıldığında oluşan 1413 hatası hakkında genel bilgiler Günlük dosyası yapısının veritabanı kurtarma süresini nasıl etkileyebileceği hakkında daha fazla bilgi için aşağıdaki MSDN web sitesini ziyaret edin:
Günlük dosyası yapısının veritabanı kurtarma süresini nasıl etkileyebileceği İşlem günlüğü VDF'leri hakkında daha fazla bilgi için aşağıdaki MSDN web sitesini ziyaret edin:
İşlem günlüğü dosyası hakkında genel bilgiler Veritabanı anlık görüntüsü oluşturma hakkında daha fazla bilgi için aşağıdaki MSDN web sitesini ziyaret edin:
Veritabanı anlık görüntüsü oluşturmaSQL Server için Artımlı Hizmet Modeli 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:
935897 Bildirilen sorunlara yönelik düzeltmeleri teslim etmek üzere SQL Server ekibinden Artımlı Hizmet Modeli sağlanıyor SQL Server güncelleştirmelerinin adlandırma şeması 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:
822499Microsoft SQL Server yazılım güncelleştirme paketleri için yeni adlandırma şeması Yazılım güncelleştirme terminolojisi 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:
824684 Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması