Abonnementablauf und -deaktivierung
Abonnements können deaktiviert werden oder ablaufen, wenn sie nicht innerhalb einer angegebenen Beibehaltungsdauer synchronisiert werden. Die stattfindende Aktion hängt vom Typ der Replikation und der überschrittenen Beibehaltungsdauer ab.
So legen Sie Beibehaltungsdauern fest
SQL Server Management Studio: Vorgehensweise: Festlegen des Ablaufdatums von Abonnements (SQL Server Management Studio) und Vorgehensweise: Festlegen der Beibehaltungsdauer für die Verteilung bei Transaktionsveröffentlichungen (SQL Server Management Studio)
Replikation mit Transact-SQL: Vorgehensweise: Festlegen des Ablaufzeitraums von Abonnements (Replikationsprogrammierung mit Transact-SQL) und Vorgehensweise: Konfigurieren der Veröffentlichung und Verteilung (Replikationsprogrammierung mit Transact-SQL)
Transaktionsreplikation
Die Transaktionsreplikation verwendet die maximale Beibehaltungsdauer für die Verteilung (@max_distretention-Parameter von sp_adddistributiondb (Transact-SQL)) und die Beibehaltungsdauer für die Veröffentlichung (@retention-Parameter von 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. Das Abonnement muss erneut initialisiert werden.
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. Das Abonnement muss neu erstellt und synchronisiert werden.
Wenn ein Pushabonnement abläuft, wird es vollständig entfernt. Bei Pullabonnements ist dies nicht der Fall. Sie müssen einen Cleanup der Pullabonnements auf dem Abonnenten ausführen. Weitere Informationen finden Sie unter Vorgehensweise: Löschen eines Pullabonnements (Replikationsprogrammierung mit Transact-SQL).
Mergereplikation
Bei der Mergereplikation wird die Beibehaltungsdauer der Veröffentlichung (Parameter @retention und @retention_period_unit von sp_addmergepublication (Transact-SQL)) verwendet. Wenn ein Abonnement abläuft, muss es erneut initialisiert werden, da Metadaten für das Abonnement entfernt werden. Abonnements, die nicht erneut initialisiert werden, werden vom Auftrag Cleanup abgelaufener Abonnements gelöscht, der auf dem Verleger ausgeführt wird. 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. Beispiel:
Wenn eine Veröffentlichung eine Beibehaltungsdauer von 14 Tagen aufweist, kann ein Abonnement ablaufen, wenn es nicht innerhalb von 14 Tagen synchronisiert wurde.
Wenn auf dem Verleger SQL Server 2005 oder eine höhere Version ausgeführt wird und der Agent für das Abonnement aus SQL Server 2005 oder einer höheren Version stammt, läuft ein Abonnement nur ab, wenn Änderungen an den Daten in der Partition dieses Abonnements vorgenommen wurden.Nehmen wir beispielsweise an, dass ein Abonnent Kundendaten nur für Kunden in Deutschland empfängt. 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.
14 bis 27 Tage nach der letzten Synchronisierung kann das Abonnement erneut initialisiert werden.
28 Tage nach der letzten Synchronisierung wird das Abonnement vom Auftrag Cleanup abgelaufener Abonnements gelöscht. Wenn ein Pushabonnement abläuft, wird es vollständig entfernt. Bei Pullabonnements ist dies nicht der Fall. Sie müssen einen Cleanup der Pullabonnements auf dem Abonnenten ausführen. Weitere Informationen finden Sie unter Vorgehensweise: Löschen eines Pullabonnements (Replikationsprogrammierung mit Transact-SQL).
Überlegungen für das Festlegen der Beibehaltungsdauer der Veröffentlichung für Mergeveröffentlichungen
Beachten Sie bei der Festlegung der Beibehaltungsdauer für Mergeveröffentlichungen Folgendes:
Die Beibehaltungsdauer für Mergeveröffentlichungen weist eine 24-stündige Kulanzfrist auf, um Abonnenten in unterschiedlichen Zeitzonen aufzunehmen. Wenn Sie beispielsweise eine Beibehaltungsdauer von einem Tag festlegen, beträgt die tatsächliche Beibehaltungsdauer 48 Stunden.
Der Cleanup der Metadaten für die Mergereplikation hängt von der Beibehaltungsdauer der Veröffentlichung ab:
Die Replikation kann nach Ablauf der Beibehaltungsdauer die Metadaten in der Veröffentlichung und in den Abonnementdatenbanken nicht per Cleanup löschen. Gehen Sie beim Angeben eines höheren Wertes für die Beibehaltungsdauer behutsam vor, da die Replikationsleistung anderenfalls beeinträchtigt werden kann. Es wird empfohlen, eine niedrigere Einstellung zu verwenden, wenn Sie zuverlässig einschätzen können, dass alle Abonnenten stets regelmäßig innerhalb der Beibehaltungsdauer synchronisieren.
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 kein Cleanup der Metadaten durchgeführt werden darf.
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. Verwenden Sie zudem dieselben Beibehaltungsdauerwerte für Veröffentlichungen für alle Verleger und ihre alternativen Synchronisierungspartner. Das Verwenden unterschiedlicher Werte kann zu mangelnder Konvergenz der Daten führen. Wenn Sie die Beibehaltungsdauer der Veröffentlichung ändern müssen, sollten Sie den Abonnenten erneut initialisieren, um sicherzustellen, dass die Daten konvergieren.
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. Allerdings verfügt der Verleger nicht über ausreichende Metadaten zum Herunterladen der Änderungen auf den Abonnenten. Dies führt zu mangelnder Konvergenz der Daten.