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

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 Publikation (@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 Publikation (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 How to: Delete a Pull Subscription (Replication Transact-SQL Programming).

Mergereplikation

Bei der Mergereplikation wird die Beibehaltungsdauer der Publikation (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 Publikation entspricht, nicht synchronisiert wurden. Beispiel:

  • Wenn eine Publikation 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 ausgeführt wird und der Agent für das Abonnement aus SQL Server 2005 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 How to: Delete a Pull Subscription (Replication Transact-SQL Programming).

Überlegungen für das Festlegen der Beibehaltungsdauer der Publikation für Mergepublikationen

Beachten Sie bei der Festlegung der Beibehaltungsdauer für Mergepublikationen Folgendes:

  • Die Beibehaltungsdauer für Mergepublikationen 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 Publikation ab:
    • Die Replikation kann nach Ablauf der Beibehaltungsdauer die Metadaten in der Publikation 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 Publikationen 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 Publikation ändern müssen, sollten Sie den Abonnenten erneut initialisieren, um sicherzustellen, dass die Daten konvergieren.
  • Wenn die Beibehaltungsdauer der Publikation 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 Downloaden der Änderungen auf den Abonnenten. Dies führt zu mangelnder Konvergenz der Daten.

Siehe auch

Konzepte

Erneutes Initialisieren eines Abonnements
Verwalten der Replikations-Agents
Abonnieren von Publikationen

Hilfe und Informationen

Informationsquellen für SQL Server 2005