Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Sie verwenden sp_cdc_cleanup_change_table , um den Bereinigungsprozess der Änderungstabelle zu verwalten.
-
Eine Sperre zwischen der CDC-Überprüfung (Change Data Capture) und der CDC-Bereinigung tritt auf , sp_cdc_cleanup_change_table Datenbereinigung aufgerufen wird.
In diesem Szenario tritt der folgende Fehler 22852 mit Schweregrad 10 (Informationsmeldung) auf:
Tabelleneinträge konnten nicht gelöscht werden, die durch eine Änderung an einem oder mehreren niedrigen Wasserzeichen für die Erfassungsinstanzen von Datenbank- <DatabaseName-Einträgen veraltet>. Der Fehler ist beim Ausführen des Befehls <CommandName-> . Der zurückgegebene Fehler wurde <Fehlerinfos> .
Verwenden Sie die Aktion und den Fehler, um die Ursache des Fehlers zu ermitteln und die Anforderung erneut zu senden.
Hinweis Da es sich um eine Informationsmeldung handelt, tritt beim Bereinigungsvorgang kein Fehler auf, und es gibt keine Möglichkeit, um festzustellen, ob die Bereinigung erfolgreich war oder fehlschlägt.
Details zum Fix
Um festzustellen, ob die Bereinigung erfolgreich ist oder fehlschlägt, wenn Sie sp_cdc_cleanup_change_table verwenden, wird der -Funktion ein optionaler Ausgabeparameter (fCleanupFailed bit) sp_cdc_cleanup_change_table hinzugefügt. Damit kann überprüft werden, ob die Bereinigung von Aufnahmeinstanzen fehlschlägt. Wenn die Ausgabe "fCleanupFailed" 0 ist, ist die Bereinigung erfolgreich. Ist dies der Fall, schlägt mindestens die Bereinigung einer Aufnahmeinstanz fehl. Hier ist ein Beispiel:
– Deklarieren einer Variablen und Festlegen auf Null
select @cleanup_failed_bit = 0
--Execute cleanup and obtain output bit
EXEC @retcode =sys.sp_cdc_cleanup_change_table
@capture_instance = '<CaptureInstance>',
@low_water_mark = @LSN,
@threshold = 1 ,
@fCleanupFailed = @cleanup_failed_bit output
--Leverage @cleanup_failed_bit output to check the status.
Lösung
Dieses Problem wurde in den folgenden kumulativen Updates für SQL Server:
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und Sicherheitsupdates, die im vorherigen Build enthalten waren. Es wird empfohlen, den neuesten Build für Ihre Version von SQL Server:
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Erfahren Sie mehr über die Terminologie, die Microsoft zum Beschreiben von Softwareupdates verwendet.