Симптоми
Имайте предвид сценария, описан по-долу:
- Използвате 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:
- Последна кумулативна актуализация за SQL Server 2019
- Последна сборна актуализация за SQL Server 2017
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Справки
Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.