Belirtiler
Microsoft SQL Server 2017 veya 2019'da bir veya daha fazla tablo için Değişiklik İzleme etkinleştirdiğinizi ve AUTO_CLEANUP = AÇIK olarak ayarladığınızı varsayalım. Bekletme süresinden sonra bile yan tablolardan veya sys.syscommittab sistem tablosundan hiçbir satırın silinmediğini veya temizlenmediğini fark edersiniz. Ayrıca, aşağıdaki belirtileri fark edersiniz:
Dedicated AdminYönetici Connection'ı kullanarak bağlanır ve geçersiz temizleme ve sertleştirilmiş temizleme sürümünü sorgularsanız, bunları negatif bulursunuz:
select * from sys.sysobjvalues where valclass = 7 and objid = 1003 -- invalid
select * from sys.sysobjvalues where valclass = 7 and objid = 1004 -- ridenedsys.syscommittab'ı el ile temizlemek için aşağıdaki SP'yi çalıştırırsanız, temizleme işlemini yapmaz ve sağlamlaştırılmış temizleme sürümünü negatif olarak döndürür:
yürütme sp_flush_commit_table_on_demand
Çıktı
change_tracking_hardened_cleanup_version() işlevinin verdiği değer -nnnnnnn olur.Değişiklik izleme otomatik temizleme sırasında olay change_tracking_cleanup ile genişletilmiş bir etkinlik oturumu toplarsanız, CleanupStatusChange değerinin 32 (hata) olarak ayarlandığını ve temizleme çalışmasının mevcut olduğunu fark edeceksiniz:
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Çözüm
Bu sorun, SQL ServerSQL Server için aşağıdaki toplu güncelleştirmelerde düzeltildi:
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 göz atın:
- SQL Server 2019 için en son toplu güncelleştirme
- En son toplu güncelleştirme SQL ServerSQL Server 2017
Notlar Bu sorunu çözmek için, izleme bayrağı 8290'ı etkinleştirmeniz ve otomatik temizleme işleminin çalışmasına izin vermeniz gerekir. Bu izleme bayrağı etkinleştirildikten sonra, değişiklik izleme otomatik temizleme işlemi, bekletme süresine bağlı olarak geçersiz temizleme sürümünü temizleme sürümü olacak şekilde sıfırlar. Bu izleme bayrağı oturum veya başlangıç düzeyinde etkinleştirilebilir. Temizleme sürümünün olumsuz olmasının temel nedenini anlamak için destek ekibini aramanız ve daha fazla ayrıntı vermeniz önerilir.
Başvurular
Microsoft'un yazılım güncelleştirmelerini tanımlamak için kullandığı terminoloji hakkında bilgi edinin.