Sintomas
Considere o seguinte cenário:
-
Você usa sp_cdc_cleanup_change_table para gerenciar o processo de limpeza da tabela de alterações.
-
Ocorre um bloqueio entre a verificação de captura de dados de alteração (CCD) e a limpeza do CCDD quando sp_cdc_cleanup_change_table é invocado.
Nesse cenário, ocorre o seguinte erro 22852 com severidade 10 (mensagem informacional:
Não foi possível excluir entradas de tabela de alteração obsoletas por uma alteração em uma ou mais marcas de água baixas para instâncias de captura de banco de dados <DatabaseName> . A falha ocorreu ao executar o comando <CommandName> . O erro retornado foi <ErrorInfo> .
Use a ação e o erro para determinar a causa da falha e reabrir a solicitação.
Observação Como esta é uma mensagem informacional, o processo de limpeza não falha e não há como determinar se a limpeza é bem-sucedida ou falha.
Detalhes sobre a correção
Para determinar se a limpeza é bem-sucedida ou falha quando você usa sp_cdc_cleanup_change_table, um parâmetro de saída opcional (bit fCleanupFailed) é adicionado à função sp_cdc_cleanup_change_table . Isso pode ser usado para verificar se a limpeza de qualquer instância de captura falha. Se a saída fCleanupFailed for 0, toda a limpeza será bem-sucedida. Se for 1, pelo menos a limpeza de uma instância de captura falhará. Veja um exemplo:
-- Declarando uma variável e Definindo como zero primeiro
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.
Resolução
Esse problema é corrigido nas seguintes atualizações cumulativas para SQL Server:
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e correções de segurança que estavam na com build anterior. Recomendamos que você instale a com build mais recente para sua versão de SQL Server:
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.