증상
Microsoft SQL Server 2017 또는 2019에서 하나 이상의 테이블에 변경 내용 추적 사용하도록 설정하고 AUTO_CLEANUP = ON을 설정한다고 가정합니다. 보존 기간 후에도 사이드 테이블 또는 sys.syscommittab 시스템 테이블에서 행이 삭제되거나 정리되지 않습니다. 또한 다음과 같은 증상이 표시됩니다.
전용 관리 연결을 사용하여 연결하고 잘못된 정리 및 강화된 정리 버전을 쿼리하는 경우 다음과 같이 부정합니다.
select * from sys.sysobjvalues where valclass = 7 and objid = 1003 -- invalid
select * from sys.sysobjvalues where valclass = 7 and objid = 1004 -- Hardened다음 SP를 실행하여 sys.syscommittab을 수동으로 클린 경우 정리를 수행하지 않고 강화된 정리 버전을 음수로 반환합니다.
exec sp_flush_commit_table_on_demand
출력
change_tracking_hardened_cleanup_version()에서 반환되는 값은 -nnnnnn입니다.이벤트로 확장 이벤트 세션을 수집하는 경우 변경 내용 추적 자동 정리 중에 change_tracking_cleanup CleanupStatusChange가 32 (오류)로 설정되고 정리 작업이 존재합니다.
상태
Microsoft에서 이는 "적용 대상" 섹션에 나열된 Microsoft 제품에서의 문제임을 확인했습니다.
해결 방법
이 문제는 SQL Server 대한 다음 누적 업데이트에서 해결되었습니다.
SQL Server 대한 누적 업데이트 정보:
SQL Server 대한 각각의 새로운 누적 업데이트에는 이전 누적 업데이트에 포함된 모든 핫픽스 및 모든 보안 수정 사항이 포함됩니다. SQL Server 대한 최신 누적 업데이트를 확인하세요.
참고 이 문제를 resolve 위해 추적 플래그 8290을 사용하도록 설정하고 자동 정리 프로세스를 실행하도록 해야 합니다. 이 추적 플래그를 사용하도록 설정한 후 변경 내용 추적 자동 정리 프로세스는 보존 기간에 따라 잘못된 정리 버전을 정리 버전으로 다시 설정합니다. 이 추적 플래그는 세션 수준 또는 시작 수준에서 사용하도록 설정할 수 있습니다. 정리 버전이 부정이 된 이유의 근본 원인을 이해하려면 지원을 요청하고 자세한 내용을 제공하는 것이 좋습니다.
참조 자료
Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어에 대해 알아보세요.