Abonnementablauf und -deaktivierungSubscription Expiration and Deactivation

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceAnwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed Instance

Abonnements können deaktiviert werden oder ablaufen, wenn sie nicht innerhalb einer angegebenen Beibehaltungsdauersynchronisiert werden.Subscriptions can be deactivated or can expire if they are not synchronized within a specified retention period. Die stattfindende Aktion hängt vom Typ der Replikation und der überschrittenen Beibehaltungsdauer ab.The action that occurs depends on the type of replication and the retention period that is exceeded.

Weitere Informationen zum Festlegen von Beibehaltungsdauern finden Sie unter Festlegen des Ablaufdatums für Abonnements, Festlegen der Beibehaltungsdauer für die Verteilung bei Transaktionsveröffentlichungen (SQL Server Management Studio), und Verleger- und Verteilereigenschaften.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.

TransaktionsreplikationTransactional Replication

Die Transaktionsreplikation verwendet die maximale Beibehaltungsdauer für die Verteilung (die @max_distretention-Parameter von sp_adddistributiondb (Transact-SQL)) und die Beibehaltungsdauer für die Veröffentlichung (die @retention-Parameter von sp_addpublication (Transact-SQL)):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)):

  • Falls ein Abonnement nicht innerhalb der maximalen Beibehaltungsdauer für die Verteilung (standardmäßig 72 Stunden) synchronisiert wird und Änderungen in der Verteilungsdatenbank vorliegen, die noch nicht an den Abonnenten übermittelt wurden, wird das Abonnement vom Auftrag Verteilungscleanup , der auf dem Verteiler ausgeführt wird, als deaktiviert gekennzeichnet.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. Das Abonnement muss erneut initialisiert werden.The subscription must be reinitialized.

  • Falls ein Abonnement nicht innerhalb der Beibehaltungsdauer für die Veröffentlichung (standardmäßig 336 Stunden) synchronisiert wird, läuft das Abonnement ab und wird vom Auftrag Cleanup abgelaufener Abonnements gelöscht, der auf dem Verleger ausgeführt wird.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. Das Abonnement muss neu erstellt und synchronisiert werden.The subscription must be recreated and synchronized.

    Wenn ein Pushabonnement abläuft, wird es vollständig entfernt. Bei Pullabonnements ist dies nicht der Fall.If a push subscription expires, it is completely removed, but pull subscriptions are not. Sie müssen einen Cleanup der Pullabonnements auf dem Abonnenten ausführen.You must clean up pull subscriptions at the Subscriber. Weitere Informationen finden Sie unter Delete a Pull Subscription.For more information, see Delete a Pull Subscription.

MergereplikationMerge Replication

Bei der Mergereplikation wird die Beibehaltungsdauer der Veröffentlichung (die @retention und @retention_period_unit-Parameter von sp_addmergepublication (Transact-SQL)) verwendet.Merge replication uses the publication retention period (the @retention and @retention_period_unit parameters of sp_addmergepublication (Transact-SQL)). Wenn ein Abonnement abläuft, muss es erneut initialisiert werden, da Metadaten für das Abonnement entfernt werden.When a subscription expires, it must be reinitialized, because metadata for the subscription is removed. Abonnements, die nicht erneut initialisiert werden, werden vom Auftrag Cleanup abgelaufener Abonnements gelöscht, der auf dem Verleger ausgeführt wird.Subscriptions that are not reinitialized are dropped by the Expired subscription clean up job that runs on the Publisher. Dieser Auftrag wird standardmäßig einmal pro Tag ausgeführt, und es werden dabei alle Pushabonnements gelöscht, die seit einem Zeitraum, der der doppelten Beibehaltungsdauer der Veröffentlichung entspricht, nicht synchronisiert wurden.By default, this job runs daily; it removes all push subscriptions that have not synchronized for double the length of the publication retention period. Beispiel:For example:

  • Wenn eine Veröffentlichung eine Beibehaltungsdauer von 14 Tagen aufweist, kann ein Abonnement ablaufen, wenn es nicht innerhalb von 14 Tagen synchronisiert wurde.If a publication has a retention period of 14 days, a subscription can expire if it has not synchronized within 14 days.

    Wenn auf dem Verleger SQL Server 2005 (9.x)SQL Server 2005 (9.x) oder eine höhere Version ausgeführt wird und der Agent für das Abonnement aus SQL Server 2005 (9.x)SQL Server 2005 (9.x) oder einer höheren Version stammt, läuft ein Abonnement nur ab, wenn Änderungen an den Daten in der Partition dieses Abonnements vorgenommen wurden.If the Publisher is running SQL Server 2005 (9.x)SQL Server 2005 (9.x) or a later version and the agent for the subscription is from SQL Server 2005 (9.x)SQL Server 2005 (9.x) or a later version, a subscription only expires if there have been changes to the data in that subscription's partition. Nehmen wir beispielsweise an, dass ein Abonnent Kundendaten nur für Kunden in Deutschland empfängt.For example, suppose a Subscriber receives customer data only for customers in Germany. Falls die Beibehaltungsdauer auf 14 Tage festgelegt wurde, läuft das Abonnement nur dann am Tag 14 ab, wenn während der letzten 14 Tage Änderungen an den deutschen Kundendaten vorgenommen wurden.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 bis 27 Tage nach der letzten Synchronisierung kann das Abonnement erneut initialisiert werden.From 14 days to 27 days after the last synchronization, the subscription can be reinitialized.

  • 28 Tage nach der letzten Synchronisierung wird das Abonnement vom Auftrag Cleanup abgelaufener Abonnements gelöscht.At 28 days after the last synchronization, the subscription is dropped by the Expired subscription clean up job. Wenn ein Pushabonnement abläuft, wird es vollständig entfernt. Bei Pullabonnements ist dies nicht der Fall.If a push subscription expires, it is completely removed, but pull subscriptions are not. Sie müssen einen Cleanup der Pullabonnements auf dem Abonnenten ausführen.You must clean up pull subscriptions at the Subscriber. Weitere Informationen finden Sie unter Delete a Pull Subscription.For more information, see Delete a Pull Subscription.

Überlegungen für das Festlegen der Beibehaltungsdauer der Veröffentlichung für MergeveröffentlichungenConsiderations for Setting the Publication Retention Period for Merge Publications

Beachten Sie bei der Festlegung der Beibehaltungsdauer für Mergeveröffentlichungen Folgendes:Keep the following considerations in mind when setting the retention period for merge publications:

  • Die Beibehaltungsdauer für Mergeveröffentlichungen weist eine 24-stündige Kulanzfrist auf, um Abonnenten in unterschiedlichen Zeitzonen aufzunehmen.The retention period for merge publications has a 24-hour grace period to accommodate Subscribers in different time zones. Wenn Sie beispielsweise eine Beibehaltungsdauer von einem Tag festgelegt haben, beträgt die tatsächliche Beibehaltungsdauer 48 Stunden.If, for example, you set a retention period of one day, the actual retention period is 48 hours.

  • Der Cleanup der Metadaten für die Mergereplikation hängt von der Beibehaltungsdauer der Veröffentlichung ab:Cleanup of merge replication metadata is dependent on the publication retention period:

    • Die Replikation kann der Cleanup von Metadaten aus den Veröffentlichungs- und Abonnementdatenbanken erst ausführen, wenn das Ablaufdatum erreicht ist.Replication cannot clean up metadata in the publication and subscription databases until the retention period is reached. Geben Sie keinen zu hohen Wert für die Beibehaltungsdauer an, da dies zu einer Beeinträchtigung der Replikationsleistung führen kann.Use caution in specifying a high value for the retention period, because it can negatively impact replication performance. Es wird empfohlen, eine niedrigere Einstellung zu verwenden, wenn Sie zuverlässig einschätzen können, dass alle Abonnenten innerhalb dieser Zeitspanne regelmäßig synchronisiert werden.It is recommended that you use a lower setting if you can reliably predict that all Subscribers will synchronize regularly within that time period.

    • Es ist möglich anzugeben, dass die Abonnements nie ablaufen (Wert 0 für @retention), aber es wird dringend empfohlen, diesen Wert nicht zu verwenden, da Metadaten nicht bereinigt werden können.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.

  • Die Beibehaltungsdauer für alle Wiederveröffentlichungen muss auf einen Wert festgelegt werden, der gleich oder niedriger ist als die auf dem ursprünglichen Verleger festgelegte Beibehaltungsdauer.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. Verwenden Sie zudem dieselben Beibehaltungsdauerwerte für Veröffentlichungen für alle Verleger und ihre alternativen Synchronisierungspartner.You should also use the same publication retention values for all Publishers and their alternate synchronization partners. Das Verwenden unterschiedlicher Werte kann zu mangelnder Konvergenz der Daten führen.Using different values may lead to non-convergence. Wenn Sie die Beibehaltungsdauer der Veröffentlichung ändern müssen, sollten Sie den Abonnenten erneut initialisieren, um sicherzustellen, dass die Daten konvergieren.If you need to change the publication retention value, reinitialize the Subscriber to avoid the non-convergence of data.

  • Wenn die Beibehaltungsdauer der Veröffentlichung nach einem Cleanup erhöht wird und für ein Abonnement ein Mergevorgang mit dem Verleger versucht wird (auf dem die Metadaten bereits gelöscht wurden), dann läuft das Abonnement nicht ab, weil die Beibehaltungsdauer erhöht wurde.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. Allerdings verfügt der Verleger nicht über ausreichende Metadaten zum Herunterladen der Änderungen auf den Abonnenten. Dies führt zu mangelnder Konvergenz der Daten.However, the Publisher does not have enough metadata to download changes to the Subscriber, which leads to non-convergence.

Weitere InformationenSee Also

Erneutes Initialisieren von Abonnements Reinitialize Subscriptions
Verwaltung des Replikations-Agents Replication Agent Administration
Abonnieren von VeröffentlichungenSubscribe to Publications