KB4538365 - CORRECCIÓN: Change Tracking limpieza no funciona cuando la limpieza no válida y la versión de limpieza protegida son negativas en SQL Server 2017 y 2019

Se aplica a
SQL Server 2017 on Windows SQL Server 2019 on Windows

Síntomas

Supongamos que habilita el Change Tracking para una o varias tablas en Microsoft SQL Server 2017 o 2019, y ha establecido AUTO_CLEANUP = ON. Observa que no se eliminan ni limpian filas de las tablas laterales ni de la tabla del sistema sys.syscommittab incluso después del período de retención. Además, observa los siguientes síntomas:

  1. Si se conecta mediante una conexión de Administración dedicada y consulta la versión de limpieza no válida y la versión de limpieza protegida, las encontrará negativas:
    select * from sys.sysobjvalues where valclass = 7 and objid = 1003 -- invalid
    select * from sys.sysobjvalues where valclass = 7 and objid = 1004 -- Hardened

  2. Si ejecuta el siguiente SP para limpiar sys.syscommittab manualmente, no realizará la limpieza y devolverá la versión de limpieza protegida como negativa:
    sp_flush_commit_table_on_demand ejecutivo
    Resultado
    El valor devuelto por change_tracking_hardened_cleanup_version() es -nnnnnn.

  3. Si recopila una sesión de eventos extendida con change_tracking_cleanup de eventos durante la limpieza automática del seguimiento de cambios, observará que CleanupStatusChange está establecido en 32 (error) y que el trabajo de limpieza existe:

    Capture.PNG

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Resolución

Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:

Acerca de las actualizaciones acumulativas para SQL Server:

Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Consulte las actualizaciones acumulativas más recientes para SQL Server:

Nota Para resolver este problema, debe habilitar la marca de seguimiento 8290 y dejar que se ejecute el proceso de limpieza automática. Una vez habilitada esta marca de seguimiento, el proceso de limpieza automática de seguimiento de cambios restablecerá la versión de limpieza no válida a una versión de limpieza basada en el período de retención. Esta marca de seguimiento se puede habilitar en el nivel de sesión o en el nivel de inicio. Para comprender la causa principal de por qué la versión de limpieza se volvió negativa, se recomienda que llame al soporte técnico y proporcione más detalles.

Referencias

Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.