병합 구독자에 대한 파티션 정보 유효성 검사
적용 대상: SQL Server
병합 게시에 대한 매개 변수가 있는 행 필터를 정의할 때 구독자의 로그인 이름과 같은 구독자 정보를 참조하는 함수를 사용합니다. 기본적으로 복제는 각 동기화 전과 스냅샷이 구독자에 적용될 때마다 해당 함수를 기반으로 구독자 정보의 유효성을 검사합니다. 유효성 검사 프로세스는 각 구독자에 대해 데이터가 올바르게 분할되도록 합니다. 유효성 검사 동작은 sp_changemergepublication(Transact-SQL) 또는 게시 속성 대화 상자의 구독 옵션 페이지에서 변경할 수 있는 validate_subscriber_info 게시 속성에 의해 제어됩니다. 게시 속성 변경 방법은 View and Modify Publication Properties을 참조하십시오.
파티션 유효성 검사 작동 방식
예를 들어 SUSER_SNAME() 함수를 사용하여 게시를 필터링하면 병합 에이전트 SUSER_SNAME() 식에 유효한 데이터를 기반으로 각 구독자에 초기 스냅샷을 적용합니다.
유효성 검사를 사용하도록 설정하면 구독자가 다음 동기화를 위해 게시자에 다시 연결할 때 병합 에이전트 구독자에서 정보의 유효성을 검사하고 각 구독자의 파티션이 초기 스냅샷에서 받은 파티션과 동일한지 확인합니다. 각 후속 병합 또는 스냅샷 애플리케이션의 경우에는 병합 에이전트가 각 구독자 파티션의 유효성을 검사합니다.
필터링 식에 사용된 함수에서 반환된 값이 초기 스냅샷에 반환된 값과 다른 것을 병합 에이전트가 감지하면 병합 또는 스냅샷 애플리케이션이 실패하고 해당 구독자의 구독을 다시 초기화해야 할 수 있습니다. 구독자의 병합 설정을 변경할 때 문제가 발생하지 않도록 하기 위해 재초기화가 필요할 수 있지만 로그인 이름과 같은 구독자의 정보를 원래 스냅샷에서 사용된 값으로 다시 변경만 해도 됩니다.
병합 에이전트 파티션의 유효성을 검사하는 경우 필터링 식에 사용되는 함수에서 반환된 값에 대해 파티션의 유효성을 검사하는 것 외에도 에이전트는 메타데이터 정리 작업 또는 스키마 변경과 같이 스냅샷을 무효화하는 변경 전에 스냅샷이 생성되었는지 여부도 확인합니다. 분할된 스냅샷이 너무 오래된 경우 병합 에이전트는 오류를 표시하고 이로 인해 현재 일반 스냅샷에 기반하여 해당 구독자에 대해 분할된 스냅샷을 다시 생성해야 합니다.