KB3009974 - DÜZELTME: SQL Server AG ve Logshipping ortamlarında birincil ve ikincil çoğaltma günlük dosyaları için diskler farklı kesim boyutlarına sahip olduğunda yavaş eşitleme

Uygulandığı Öğe
SQL Server 2014 Developer SQL Server 2014 Enterprise SQL Server 2014 Standard SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2016 Enterprise Core SQL Server 2016 Standard SQL Server 2016 Developer SQL Server 2016 Enterprise SQL Server 2016 Web SQL Server 2016 Express

Not

Bu düzeltmeyi uyguladıktan sonra bu düzeltmenin düzgün çalışması için 512 bayt fiziksel kesim boyutuna sahip tüm sunucularda veya çoğaltmalarda başlangıç parametresi olarak izleme bayrağı 1800'ü etkinleştirmeniz ve yeniden başlatmanız gerekir.

Belirtiler

Aşağıdaki senaryoyu ele alalım:

  • Microsoft SQL ServerSQL Server'da AlwaysOn Kullanılabilirlik Grupları veya Günlük Gönderimi özelliğini etkinleştirirsiniz.

  • Birincil ve ikincil çoğaltmanın günlük dosyalarını bir AlwaysOn Kullanılabilirlik Grubunda (AG) depolayan disklerin farklı kesim boyutları vardır. Veya Logshipping ortamlarında, Logshipping birincil sunucuları ve Logshipping ikincil sunucuları için günlük dosyalarını depoladığı diskler farklı kesim boyutlarına sahiptir. Örneğin:

    • Birincil çoğaltma günlük dosyası, kesim boyutu 512 bayt olan bir diskte bulunur. Ancak, ikincil çoğaltma günlük dosyası kesim boyutu 4 kilobayt (KB) olan bir diskte bulunur.
    • Birincil çoğaltma günlük dosyası, kesim boyutu 512 bayt olan şirket içi bir yerel sistemde bulunur. Ancak, ikincil çoğaltma 4 kilobayt (KB) kesim boyutuna sahip bir Windows AzureAzure Depolama diskinde bulunur.

Bu senaryoda, SQL ServerSQL Server Hata günlüğüne aşağıdaki hata iletisi kaydedilir. Sunucu yeniden başlatılmadan önce ikincil ayarlara uygulanmayan günlükler bulunuyorsa, hata iletisi yeniden başlatıldıktan sonra bir süre devam edebilir.

Not

Zaman uyumlu GÇ'ye geri dönmeyi gerektiren X yanlış hizalanmış günlük GÇ olmuştur. Geçerli IO dosyada ....

Buna ek olarak, AG veya Logshipping eşitlemesi, zaman uyumlu G/Ç'ler nedeniyle çok yavaş çalışır. İkincil çoğaltma Windows Azure Depolama'daysa, eşitleme işleminin tamamlanması beklenenden çok daha uzun sürer.

Not: Bu sorun, hem 4 KB kesim boyutuna sahip yeni sürücüleri hem de 512 bayt kesim boyutuna sahip eski sürücüleri kullandığınızda oluşur. Yeni sürücüler hakkında daha fazla bilgi için bkz. SQL Server - Yeni sürücüler 4K kesim boyutunu ve SQL Server–Depolama alanları/VHDx ve 4K kesim boyutunu kullanın.

Çözüm

Sorun ilk olarak aşağıdaki toplu SQL Server güncelleştirmesinde düzeltilmiştir.

SQL Server 2014 için Toplu Güncelleştirme 5 /en-us/help/3011055

SQL Server 2012 SP2 için Toplu Güncelleştirme 3 /en-us/help/3002049

SQL Server 2012 SP1 için Toplu Güncelleştirme 13 /en-us/help/3002044

Düzeltmeyi uyguladıktan ve kesim boyutu 512 bayt olan bir diskte çalışan tüm sunucu çoğaltmalarında izleme bayrağı 1800'ü başlangıç parametresi olarak etkinleştirdikten sonra, aşağıdaki dosyaların boyutunda küçük bir artış fark edersiniz:

  • İşlem günlüğü dosyası
  • Yedeklemeleri günlüğe kaydetme

Ayrıca, birincil sunucunun SQL Server Hata günlüğüne aşağıdaki iletilerin kaydedildiğini fark edersiniz:

Not

'Veritabanı adı>'< veritabanı günlüğünün kuyruğu, 4096 baytlık yeni sektör boyutuyla eşleşecek şekilde yeniden yazılıyor

Bu, kesinlikle yok sayılabilecek bilgilendirici bir iletidir.

SQL Server toplu güncelleştirmeleri hakkında

SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmeye dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmelere bakın:

Geçici çözüm

Bu sorunu geçici olarak çözmek için, hedefteki işlem günlüğü dosyasını Fiziksel Kesim Başına Bayt değeri 512 bayt olarak ayarlanmış bir sürücüye taşıyın.

Durum

Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.

Daha Fazla Bilgi

En iyi uygulama olarak, tüm çoğaltmalardaki tüm disklerin (en azından günlük dosyalarını barındıran tüm disklerin) aynı kesim boyutuna sahip olduğundan emin olun. İkincilin 512 baytlık bir fiziksel kesime sahip olduğu ve birincilin 4 KB'lık bir kesim boyutuna sahip olduğu karma ortamlarda, TF 1800, 512 bayt fiziksel kesim boyutuna sahip ve yeniden başlatılan tüm sunucularda veya çoğaltmalarda başlangıç bayrağı olarak kullanılmalıdır. Bu, devam eden günlük oluşturma biçiminin 4 KB'lık bir kesim boyutu kullanmasını sağlar.

SQL Server'in daha büyük kesimlerle nasıl çalıştığı hakkında daha fazla bilgi için, destek blogundaki aşağıdaki gönderiye bakın:

SQL ServerSQL Server–Depolama alanları/VHDx ve 4K kesim boyutu

Fiziksel Kesim başına Bayt değerini belirlemek için Fsutil komut istemi yardımcı programını kullanabilirsiniz. Bu parametre çıktıda görünmüyorsa, 982018 numaralı KB makalesinde belirtilen düzeltmeyi uygulamanız gerekir.

Sahip olduğunuz sürücü türünü doğrulamak için şu adımları izleyin:

  1. Yükseltilmiş komut isteminde aşağıdaki komutu çalıştırın:
    Fsutil fsinfo ntfsinfo x: Not x yer tutucusu, denetlediğiniz sürücüyü temsil eder.

  2. Sahip olduğunuz sürücü türünü belirlemek için Kesim Başına Bayt ve Fiziksel Sektör Başına Bayt değerlerini kullanın. Bunu yapmak için aşağıdaki tabloyu kullanın:

    "Bayt Başına Kesim" değeri "Fiziksel Kesim Başına Bayt" değeri Sürücü türü
    4096 4096 4K yerel
    512 4096 Gelişmiş Biçim (512E olarak da bilinir)
    512 512 512 bayt yerel