KB5008296 – КОРЕКЦИЯ: Липсващото изпълнение на почистването за улавяне на данни за промяна не се идентифицира поради блокиране без съобщение за грешка

Отнася се за
SQL Server 2019 on Windows SQL Server 2017 on Windows

Симптоми

Имайте предвид сценария, описан по-долу:

  • Използвате sp_cdc_cleanup_change_table , за да управлявате процеса на изчистване на промяната на таблицата.
  • Възниква блокиране между сканирането на данни за промяна (CDC) и почистването на CDC, когато sp_cdc_cleanup_change_table бъде извикано.

В този случай възниква следната грешка 22852 с степен на сериозност 10 (информационно съобщение):

Забележка

Не може да се изтрият записи в таблицата за промяна, които са остарели поради промяна в една или повече ниски водни маркери за снемане на екземпляри на базата <данни DatabaseName>. Грешката е възникнала при изпълнение на командата <CommandName>. Върнатата грешка е <ErrorInfo>.

Използвайте действието и грешката, за да определите причината за грешката, и подайте искането отново.

Забележка Тъй като това е информационно съобщение, процесът на почистване не е неуспешен и няма начин да се определи дали почистването е успешно, или не.

Подробности за корекцията

За да се определи дали почистването е успешно, или не, когато използвате sp_cdc_cleanup_change_table, към sp_cdc_cleanup_change_table функцията се добавя незадължителен изходен параметър (бит fCleanupFailed). Това може да се използва, за да се провери дали почистването на някои екземпляри на снемане е неуспешно. Ако резултатът на fCleanupFailed е 0, всички почиствания са успешни. Ако е 1, поне почистването на един екземпляр на снемане е неуспешно. Ето един пример:

-- Declaring a variable and Setting to zero first

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.

Решение

Този проблем е решен в следните кумулативни актуализации за SQL Server:

За кумулативните актуализации за SQL Server

Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били в предишната компилация. Препоръчваме ви да инсталирате най-новата компилация за вашата версия на SQL Server:

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.

Справки

Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.