병합 구독자의 파티션 정보 유효성 검사Validate Partition Information for a Merge Subscriber

병합 게시에 대해 매개 변수가 있는 행 필터를 정의할 때는 구독자의 로그인 이름과 같이 구독자 정보를 참조하는 기능을 사용합니다.When you define a parameterized row filter for a merge publication, you use a function that references Subscriber information, such as the Subscriber's login name. 기본적으로 복제는 각 동기화 전과 스냅숏이 구독자에 적용될 때마다 이러한 기능에 기반하여 구독자 정보의 유효성을 검사합니다.By default, replication validates Subscriber information based on that function before each synchronization and whenever a snapshot is applied at the Subscriber. 유효성 검사 프로세스는 데이터가 각 구독자에 대해 올바르게 분할되었는지 확인합니다.The validation process ensures that data is partitioned correctly for each Subscriber. 유효성 검사 동작은 validate_subscriber_info 게시 속성으로 제어할 수 있으며 이 속성은 sp_changemergepublication(Transact-SQL)을 사용하거나 게시 속성 대화 상자의 구독 옵션 페이지에서 변경할 수 있습니다.Validation behavior is controlled by the validate_subscriber_info publication property, which can be changed using sp_changemergepublication (Transact-SQL) or on the Subscription Options page of the Publication Properties dialog box. 게시 속성 변경 방법은 View and Modify Publication Properties을 참조하십시오.For more information about changing publication properties, see View and Modify Publication Properties.

파티션 유효성 검사 작동 방법How Partition Validation Works

예를 들어 SUSER_SNAME()함수를 사용하여 게시를 필터링할 때 병합 에이전트는 SUSER_SNAME() 식에 유효한 데이터를 기준으로 초기 스냅숏을 각 구독자에 적용합니다.When a publication is filtered, for example, using the function SUSER_SNAME(), the Merge Agent applies the initial snapshot to each Subscriber based on data that is valid for the SUSER_SNAME() expression.

유효성 검사를 활성화하면 구독자가 다음 동기화를 위해 게시자에 다시 연결할 때 병합 에이전트가 구독자에서 정보의 유효성을 검사하고 각 구독자의 파티션이 초기 스냅숏에서 수신한 파티션과 동일한지 확인합니다.If validation is enabled, when the Subscriber reconnects to the Publisher for the next synchronization, the Merge Agent validates the information at the Subscriber and ensures that each Subscriber's partition is the same as the one received in the initial snapshot. 각 후속 병합 또는 스냅숏 응용 프로그램의 경우에는 병합 에이전트가 각 구독자 파티션의 유효성을 검사합니다.For each subsequent merge or snapshot application, the Merge Agent validates each Subscriber's partition.

필터링 식에 사용된 함수에서 반환된 값이 초기 스냅숏에 반환된 값과 다른 것을 병합 에이전트가 감지하면 병합 또는 스냅숏 응용 프로그램이 실패하고 해당 구독자의 구독을 다시 초기화해야 할 수 있습니다.If the Merge Agent detects that the function used in the filtering expression returns a different value than it did at the initial snapshot, the merge or snapshot application fails, and that Subscriber's subscription might require reinitialization. 구독자의 병합 설정을 변경할 때 문제가 발생하지 않도록 하기 위해 재초기화가 필요할 수 있지만 로그인 이름과 같은 구독자의 정보를 원래 스냅숏에서 사용된 값으로 다시 변경만 해도 됩니다.Reinitialization might be necessary to prevent problems that can arise if the merge settings of a Subscriber are changed, but it might be sufficient to change information at the Subscriber, such as the login name, back to the value used at the time of the original snapshot.

병합 에이전트가 파티션의 유효성을 검사할 때 필터링 식에 사용된 함수에서 반환한 값에 대해 파티션의 유효성을 검사하는 것 외에도 에이전트는 메타데이터 정리 작업 또는 스키마 변경과 같이 스냅숏을 무효화한 변경 작업 이전에 스냅숏이 생성되었는지 여부도 확인합니다.When the Merge Agent validates a partition, in addition to validating the partition against the values returned by any functions used in filtering expressions, the agent also checks whether the snapshot was generated prior to changes that invalidate it, such as metadata cleanup operations or schema changes. 분할된 스냅숏이 너무 오래된 경우 병합 에이전트는 오류를 표시하고 이로 인해 현재 일반 스냅숏에 기반하여 해당 구독자에 대해 분할된 스냅숏을 다시 생성해야 합니다.If a partitioned snapshot is too old, the Merge Agent will return an error and you must regenerate a partitioned snapshot for that Subscriber based on a current regular snapshot.

관련 항목:See Also

관리(복제) Administration (Replication)
복제 관리에 대한 모범 사례 Best Practices for Replication Administration
구독 다시 초기화 Reinitialize Subscriptions
복제된 데이터의 유효성 검사 Validate Replicated Data