Síntomas
Imagine la siguiente situación:
-
Use sp_cdc_cleanup_change_table para administrar el proceso de limpieza de la tabla de cambios.
-
Se produce un interbloqueo entre el examen de captura de datos de cambio (CDC) y la limpieza cdc cuando se sp_cdc_cleanup_change_table se invoca.
En este escenario, se produce el siguiente error 22852 con gravedad 10 (mensaje informativo):
No se pudieron eliminar las entradas de tabla de cambio obsoletas por un cambio en una o más marcas de agua bajas para capturar instancias de la base de datos <DatabaseName>. El error se produjo al ejecutar el comando <CommandName>. El error devuelto se <ErrorInfo>.
Use la acción y el error para determinar la causa del error y volver a enviar la solicitud.
Nota Dado que se trata de un mensaje informativo, el proceso de limpieza no falla y no hay forma de determinar si la limpieza se realiza correctamente o no.
Detalles sobre la corrección
Para determinar si la limpieza se realiza correctamente o no al usar sp_cdc_cleanup_change_table, se agrega un parámetro de salida opcional (fCleanupFailed bit) a sp_cdc_cleanup_change_table función. Esto se puede usar para comprobar si se produce un error en la limpieza de las instancias de captura. Si el resultado de fCleanupFailed es 0, toda la limpieza se realiza correctamente. Si es 1, al menos se produce un error en la limpieza de una instancia de captura. Este es un ejemplo:
-- Declarar una variable y Establecer en cero en primer lugar
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.
Solución
Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:
Cada nueva actualización acumulativa de SQL Server contiene todas las revisiones y correcciones de seguridad que estaban en la compilación anterior. Le recomendamos que instale la compilación más reciente para su versión de SQL Server:
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Referencias
Obtenga información sobre la terminología que Usa Microsoft para describir las actualizaciones de software.