KB4538365 - 수정: SQL Server 2017 및 2019에서 잘못된 정리 및 강화된 정리 버전이 음수일 때 변경 내용 추적 정리가 작동하지 않습니다.

적용 대상
SQL Server 2017 on Windows SQL Server 2019 on Windows

증상

Microsoft SQL Server 2017 또는 2019에서 하나 이상의 테이블에 변경 내용 추적 사용하도록 설정하고 AUTO_CLEANUP = ON을 설정한다고 가정합니다. 보존 기간 후에도 사이드 테이블 또는 sys.syscommittab 시스템 테이블에서 행이 삭제되거나 정리되지 않습니다. 또한 다음과 같은 증상이 표시됩니다.

  1. 전용 관리 연결을 사용하여 연결하고 잘못된 정리 및 강화된 정리 버전을 쿼리하는 경우 다음과 같이 부정합니다.
    select * from sys.sysobjvalues where valclass = 7 and objid = 1003 -- invalid
    select * from sys.sysobjvalues where valclass = 7 and objid = 1004 -- Hardened

  2. 다음 SP를 실행하여 sys.syscommittab을 수동으로 클린 경우 정리를 수행하지 않고 강화된 정리 버전을 음수로 반환합니다.
    exec sp_flush_commit_table_on_demand
    출력
    change_tracking_hardened_cleanup_version()에서 반환되는 값은 -nnnnnn입니다.

  3. 이벤트로 확장 이벤트 세션을 수집하는 경우 변경 내용 추적 자동 정리 중에 change_tracking_cleanup CleanupStatusChange가 32 (오류)로 설정되고 정리 작업이 존재합니다.

    Capture.PNG

상태

Microsoft에서 이는 "적용 대상" 섹션에 나열된 Microsoft 제품에서의 문제임을 확인했습니다.

해결 방법

이 문제는 SQL Server 대한 다음 누적 업데이트에서 해결되었습니다.

SQL Server 대한 누적 업데이트 정보:

SQL Server 대한 각각의 새로운 누적 업데이트에는 이전 누적 업데이트에 포함된 모든 핫픽스 및 모든 보안 수정 사항이 포함됩니다. SQL Server 대한 최신 누적 업데이트를 확인하세요.

참고 이 문제를 resolve 위해 추적 플래그 8290을 사용하도록 설정하고 자동 정리 프로세스를 실행하도록 해야 합니다. 이 추적 플래그를 사용하도록 설정한 후 변경 내용 추적 자동 정리 프로세스는 보존 기간에 따라 잘못된 정리 버전을 정리 버전으로 다시 설정합니다. 이 추적 플래그는 세션 수준 또는 시작 수준에서 사용하도록 설정할 수 있습니다. 정리 버전이 부정이 된 이유의 근본 원인을 이해하려면 지원을 요청하고 자세한 내용을 제공하는 것이 좋습니다.

참조 자료

Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어에 대해 알아보세요.