KB4538365 - DÜZELTME: SQL Server 2017 ve 2019'da geçersiz temizleme ve sağlamlaştırılmış temizleme sürümü negatif olduğunda Değişiklik İzleme temizleme çalışmıyor

Uygulandığı Öğe
SQL Server 2017 on Windows SQL Server 2019 on Windows

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:

  1. 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 -- ridened

  2. sys.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.

  3. 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:

    Capture.PNG

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:

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.