연결이 끊긴 장치를 중앙 데이터베이스 서버와 동기화하는 데 문제가 발생하면 서버에서 SQL Server 2012로 업그레이드 한 후 문제가 발생합니다. CHANGE_TRACKING_MIN_VALID_VERSION이 (는) 업그레이드 전보다 최소한 1 또는 더 높은 값을 반환하는 것으로 보입니다.
나는 간단한 예제를 설정하는 방법에 대한 예제 를 통해 Arshad Ali의 위대한 산책을 통해 일해 왔습니다 .
SQL Server 2008과 2012 환경 모두에서 Employee 테이블의 행을 삽입, 삭제 및 업데이트하기 위해 # 1부터 # 5까지의 스크립트를 실행했습니다.
2008 년에 다음 명령문은 0을 리턴합니다.
SELECT CHANGE_TRACKING_MIN_VALID_VERSION(OBJECT_ID('Employee'))
2012 년에는 1을 반환합니다.
테스트에서 몇 가지 스크립트 (6-8)를 통해 작업하면서 정리 작업을 강제로 수행하기 위해 보존 기간을 1 분으로 설정했습니다. 나는 하루 동안 떠났고 분명히 밤새 달렸다.
2008 인스턴스에서 CHANGE_TRACKING_CURRENT_VERSION과 CHANGE_TRACKING_MIN_VALID_VERSION은 (11)과 같습니다. 2012 년 인스턴스에서 CHANGE_TRACKING_MIN_VALID_VERSION은 CHANGE_TRACKING_CURRENT_VERSION (11)보다 하나 더 높습니다 (12). 데이터베이스가 오랫동안 유휴 상태 인 경우 동기화 프로세스에 영향을 줄 수 있습니다. 또한 동기화와 반대로 재 초기화가 필요한지 여부를 확인하기 위해 다음 테스트를 수행 할 때 프로세스가 루프에 걸릴 수 있음을 발견했습니다.
IF CHANGE_TRACKING_MIN_VALID_VERSION(object_id(N'dbo.Employee')) > @sync_last_received_anchor
RAISERROR (N'SQL Server Change Tracking has cleaned up tracking information for table ''%s''...
다른 사람이 이런 행동 변화를 경험 했습니까? 누구든지 설명이 있습니까?