구독 만료 및 비활성화Subscription Expiration and Deactivation

지정된 보존 기간내에 동기화되지 않는 구독을 비활성화하거나 만료할 수 있습니다.Subscriptions can be deactivated or can expire if they are not synchronized within a specified retention period. 동작은 복제 유형 및 초과한 보존 기간에 따라 달라집니다.The action that occurs depends on the type of replication and the retention period that is exceeded.

보존 기간을 설정하려면 구독에 대한 만료 기간 설정, Set the Distribution Retention Period for Transactional Publications (SQL Server Management Studio)(트랜잭션 게시에 대한 배포 보존 기간 설정(SQL Server Management Studio)) 및 게시 및 배포 구성을 참조하세요.To set retention periods, see Set the Expiration Period for Subscriptions, Set the Distribution Retention Period for Transactional Publications (SQL Server Management Studio), and Configure Publishing and Distribution.

트랜잭션 복제Transactional Replication

트랜잭션 복제는 최대 배포 보존 기간(sp_adddistributiondb(Transact-SQL)@max_distretention 매개 변수)과 게시 보존 기간(sp_addpublication(Transact-SQL)@retention 매개 변수)을 사용합니다.Transactional replication uses the maximum distribution retention period (the @max_distretention parameter of sp_adddistributiondb (Transact-SQL)) and the publication retention period (the @retention parameter of sp_addpublication (Transact-SQL)):

  • 구독이 최대 배포 보존 기간(기본값: 72시간) 내에 동기화되지 않고 구독자에게 배달되지 않은 변경 내용이 배포 데이터베이스에 있는 경우 해당 구독은 배포자에서 실행되는 배포 정리 작업에 의해 비활성화된 상태로 표시됩니다.If a subscription is not synchronized within the maximum distribution retention period (default of 72 hours) and there are changes in the distribution database that have not been delivered to the Subscriber, the subscription will be marked deactivated by the Distribution clean up job that runs on the Distributor. 구독을 다시 초기화해야 합니다.The subscription must be reinitialized.

  • 구독이 게시 보존 기간(기본값: 336시간) 내에 동기화되지 않는 경우 해당 구독은 만료되어 게시자에서 실행되는 만료된 구독 정리 작업에 의해 삭제됩니다.If a subscription is not synchronized within the publication retention period (default of 336 hours), the subscription will expire and be dropped by the Expired subscription clean up job that runs on the Publisher. 구독을 다시 만들어 동기화해야 합니다.The subscription must be recreated and synchronized.

    밀어넣기 구독이 만료되면 완전히 제거되지만 끌어오기 구독은 그렇지 않습니다.If a push subscription expires, it is completely removed, but pull subscriptions are not. 끌어오기 구독은 구독자에서 정리해야 합니다.You must clean up pull subscriptions at the Subscriber. 자세한 내용은 Delete a Pull Subscription을(를) 참조하세요.For more information, see Delete a Pull Subscription.

병합 복제Merge Replication

병합 복제는 게시 보존 기간(sp_addmergepublication(Transact-SQL)@retention@retention_period_unit 매개 변수)을 사용합니다.Merge replication uses the publication retention period (the @retention and @retention_period_unit parameters of sp_addmergepublication (Transact-SQL)). 구독이 만료되면 구독에 대한 메타데이터가 제거되므로 구독을 다시 초기화해야 합니다.When a subscription expires, it must be reinitialized, because metadata for the subscription is removed. 다시 초기화되지 않은 구독은 게시자에서 실행되는 만료된 구독 정리 작업에 의해 삭제됩니다.Subscriptions that are not reinitialized are dropped by the Expired subscription clean up job that runs on the Publisher. 기본적으로 이 작업은 매일 실행됩니다. 이 작업을 통해 게시 보존 기간의 2배에 해당하는 기간 동안 동기화되지 않은 모든 밀어넣기 구독이 제거됩니다.By default, this job runs daily; it removes all push subscriptions that have not synchronized for double the length of the publication retention period. 예를 들어For example:

  • 게시의 보존 기간이 14일이면 14일 이내에 동기화되지 않은 구독은 만료될 수 있습니다.If a publication has a retention period of 14 days, a subscription can expire if it has not synchronized within 14 days.

    게시자에서 SQL Server 2005SQL Server 2005 이상 버전이 실행되고 있으며 구독의 에이전트를 SQL Server 2005SQL Server 2005 이상 버전에서 가져온 경우 해당 구독의 파티션에 있는 데이터가 변경된 경우에만 구독이 만료됩니다.If the Publisher is running SQL Server 2005SQL Server 2005 or a later version and the agent for the subscription is from SQL Server 2005SQL Server 2005 or a later version, a subscription only expires if there have been changes to the data in that subscription's partition. 예를 들어 구독자가 독일에 거주하는 고객에 대해서만 고객 데이터를 받는다고 가정합니다.For example, suppose a Subscriber receives customer data only for customers in Germany. 보존 기간을 14일로 설정한 경우 마지막 14일 내에 독일 거주 고객의 데이터가 변경된 경우에만 14일 후에 구독이 만료됩니다.If the retention period is set to 14 days, the subscription expires on day 14 only if there have been changes to the German customer data in the last 14 days.

  • 마지막 동기화가 수행되고 14일부터 27일 내에 구독을 다시 초기화할 수 있습니다.From 14 days to 27 days after the last synchronization, the subscription can be reinitialized.

  • 마지막 동기화가 수행되고 28일이 경과되면 만료된 구독 정리 작업에 의해 구독이 삭제됩니다.At 28 days after the last synchronization, the subscription is dropped by the Expired subscription clean up job. 밀어넣기 구독이 만료되면 완전히 제거되지만 끌어오기 구독은 그렇지 않습니다.If a push subscription expires, it is completely removed, but pull subscriptions are not. 끌어오기 구독은 구독자에서 정리해야 합니다.You must clean up pull subscriptions at the Subscriber. 자세한 내용은 Delete a Pull Subscription을(를) 참조하세요.For more information, see Delete a Pull Subscription.

병합 게시에 대한 게시 보존 기간 설정 시 고려 사항Considerations for Setting the Publication Retention Period for Merge Publications

병합 게시의 보존 기간을 설정할 때 다음 사항을 고려하십시오.Keep the following considerations in mind when setting the retention period for merge publications:

  • 병합 게시의 보존 기간은 다양한 표준 시간대의 구독자를 수용하기 위해 24시간의 유예 기간을 갖습니다.The retention period for merge publications has a 24-hour grace period to accommodate Subscribers in different time zones. 예를 들어 보존 기간을 하루로 설정한 경우 실제 보존 기간은 48시간이 됩니다.If, for example, you set a retention period of one day, the actual retention period is 48 hours.

  • 병합 복제 메타데이터의 정리는 다음과 같이 게시 보존 기간에 따라 달라집니다.Cleanup of merge replication metadata is dependent on the publication retention period:

    • 보존 기간에 도달하기 전까지는 복제 작업을 통해 게시 및 구독 데이터베이스의 메타데이터를 정리할 수 없습니다.Replication cannot clean up metadata in the publication and subscription databases until the retention period is reached. 보존 기간을 너무 길게 설정하면 복제 성능이 저하될 수 있으므로 주의해야 합니다.Use caution in specifying a high value for the retention period, because it can negatively impact replication performance. 보존 기간 내에 모든 구독자가 정기적으로 동기화될 가능성이 있으면 보존 기간을 낮은 값으로 설정하는 것이 좋습니다.It is recommended that you use a lower setting if you can reliably predict that all Subscribers will synchronize regularly within that time period.

    • @retention에 값 0을 지정하여 구독이 만료되지 않도록 지정할 수 있지만 이 경우 메타데이터를 정리할 수 없으므로 이 값은 사용하지 않도록 합니다.It is possible to specify that subscriptions never expire (a value of 0 for @retention), but it is strongly recommended that you do not use this value, because metadata cannot be cleaned up.

  • 재게시자의 보존 기간은 원래 게시자에 설정한 보존 기간과 동일하거나 더 낮은 값으로 설정해야 합니다.The retention period for any republisher must be set to a value equal to or less than the retention period set at the original Publisher. 또한 모든 게시자와 대체 동기화 파트너에 대해 동일한 게시 보존 값을 사용해야 합니다.You should also use the same publication retention values for all Publishers and their alternate synchronization partners. 다른 보존 값을 사용하면 데이터가 일치하지 않을 수 있습니다.Using different values may lead to non-convergence. 게시 보존 값을 변경해야 하는 경우 데이터 일치성을 유지하도록 구독자를 다시 초기화합니다.If you need to change the publication retention value, reinitialize the Subscriber to avoid the non-convergence of data.

  • 정리 후에 게시 보존 기간이 늘어나고 구독이 메타데이터가 이미 삭제된 게시자와 병합하려고 하면 늘어난 보존 기간으로 인해 구독은 만료되지 않습니다.If, after a clean up, the publication retention period is increased and a subscription tries to merge with the Publisher (which has already deleted the metadata), the subscription will not expire because of the increased retention value. 그러나 게시자에는 구독자에 대한 변경 내용을 다운로드할 만큼의 충분한 메타데이터가 없으므로 데이터가 제대로 일치되지 못할 수 있습니다.However, the Publisher does not have enough metadata to download changes to the Subscriber, which leads to non-convergence.

관련 항목:See Also

구독 다시 초기화 Reinitialize Subscriptions
복제 에이전트 관리 Replication Agent Administration
게시 구독Subscribe to Publications