Ablauf und Deaktivierung des Abonnements

Gilt für:SQL ServerAzure SQL Managed Instance

Abonnements können deaktiviert werden oder ablaufen, wenn sie nicht innerhalb einer angegebenen Beibehaltungsdauersynchronisiert werden. Die stattfindende Aktion hängt vom Typ der Replikation und der überschrittenen Beibehaltungsdauer ab.

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 Herausgeber- und Verteilereigenschaften.

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)):

  • Wenn ein Abonnement nicht innerhalb der maximalen Aufbewahrungsfrist für die Verteilung (standardmäßig 72 Stunden) synchronisiert wird und Änderungen in der Verteilungsdatenbank nicht an den Abonnenten geliefert werden, wird das Abonnement durch den Job zur Bereinigung des abgelaufenen Abonnements, der auf dem Distributor ausgeführt wird, als deaktiviert markiert. Sie müssen das Abonnement neu initialisieren.

  • Wenn ein Abonnement nicht innerhalb des Aufbewahrungszeitraums der Veröffentlichung (standardmäßig 336 Stunden) synchronisiert wird, läuft das Abonnement ab und wird durch den Auftrag Bereinigung abgelaufener Abonnements entfernt, der auf dem Publisher ausgeführt wird. (Vor der Korrektur in KB4014798 hieß der Job Distribution Cleanup.) Du musst das Abonnement neu erstellen und synchronisieren.

    Wenn ein Push-Abonnement abläuft, wird es komplett entfernt, aber Pull-Abonnements nicht. Sie müssen einen Cleanup der Pullabonnements auf dem Abonnenten ausführen. Weitere Informationen finden Sie unter Delete a Pull Subscription.

Mergereplikation

Bei der Mergereplikation wird der Aufbewahrungszeitraum der Veröffentlichung verwendet (die Parameter @retention und @retention_period_unit von sp_addmergepublication (Transact-SQL)). Wenn ein Abonnement abläuft, müssen Sie es neu initialisieren, da der Prozess Metadaten für das Abonnement entfernt. Der Job zum Aufräumen von abgelaufenen Abonnements, der auf dem Publisher läuft, lässt Abonnements fallen, die nicht neu initialisiert sind. Standardmäßig läuft dieser Auftrag täglich. Es entfernt alle Pushabonnements, die für die doppelte Aufbewahrungsdauer von Veröffentlichungen nicht synchronisiert wurden. Zum Beispiel:

  • Wenn eine Veröffentlichung eine Aufbewahrungsfrist von 14 Tagen hat, kann ein Abonnement ablaufen, wenn es nicht innerhalb von 14 Tagen synchronisiert wird.

    Wenn der Publisher SQL Server 2005 (9.x) oder eine neuere Version ausführt und der Agent für das Abonnement von SQL Server 2005 (9.x) oder einer neueren Version stammt, läuft das Abonnement nur ab, wenn sich die Daten in der Partition dieses Abonnements ändern. Nehmen wir beispielsweise an, dass ein Abonnent Kundendaten nur für Kunden in Deutschland empfängt. Wird die Aufbewahrungsfrist auf 14 Tage gesetzt, endet das Abonnement erst ab Tag 14, wenn sich in den letzten 14 Tagen die deutschen Kundendaten geändert haben.

  • Von 14 bis 27 Tagen nach der letzten Synchronisation können Sie das Abonnement neu initialisieren.

  • 28 Tage nach der letzten Synchronisierung löscht der Auftrag zur Bereinigung abgelaufener Abonnements das Abonnement. Wenn ein Push-Abonnement abläuft, wird es komplett entfernt, aber Pull-Abonnements nicht. Sie müssen einen Cleanup der Pullabonnements auf dem Abonnenten ausführen. Weitere Informationen finden Sie unter Delete a Pull Subscription.

Überlegungen zur Festlegung der Aufbewahrungszeit für Publikationen bei Zusammenführungspublikationen

Beachten Sie bei der Festlegung der Beibehaltungsdauer für Mergeveröffentlichungen Folgendes:

  • Die Aufbewahrungsfrist für Zusammenführungspublikationen beinhaltet eine 24-stündige Schonfrist, um Abonnenten in verschiedenen Zeitzonen zu berücksichtigen. Wenn Sie zum Beispiel eine Aufbewahrungszeit von einem Tag festlegen, beträgt die tatsächliche Aufbewahrungszeit 48 Stunden.

  • Die Bereinigung von Merge-Replikationsmetadaten hängt von der Aufbewahrungsdauer der Publikation ab:

    • Die Replikation kann die Bereinigung der Metadaten aus den Veröffentlichungs- und Abonnementdatenbanken erst ausführen, wenn das Ablaufdatum erreicht ist. Seien Sie vorsichtig bei der Angabe eines hohen Werts für die Aufbewahrungszeit, da dies die Replikationsleistung negativ beeinflussen kann. Verwenden Sie eine niedrigere Einstellung, wenn Sie zuverlässig vorhersagen können, dass alle Abonnenten innerhalb dieses Zeitraums regelmäßig synchronisieren.

    • Du kannst angeben, dass Abonnements nie ablaufen (ein Wert von 0 für @retention), aber diesen Wert nicht verwenden, weil Metadaten nicht bereinigt werden können.

  • Setzen Sie die Aufbewahrungsdauer für jeden Republisher auf einen Wert, der dem ursprünglichen Publisher entspricht oder niedriger ist. Verwenden Sie außerdem für alle Publisher und deren alternative Synchronisierungspartner dieselben Aufbewahrungswerte für Veröffentlichungen. Die Verwendung unterschiedlicher Werte könnte zu Nichtkonvergenz führen. Wenn Sie den Aufbewahrungswert für die Veröffentlichung ändern müssen, initialisieren Sie den Subscriber erneut, um eine Nichtkonvergenz der Daten zu vermeiden.

  • Wenn du nach einer Bereinigung die Aufbewahrungszeit der Publikation verlängerst und ein Abonnement versucht, mit dem Publisher zusammenzuführen (der die Metadaten bereits gelöscht hat), läuft das Abonnement wegen des erhöhten Retentionswerts nicht ab. Allerdings verfügt der Publisher nicht über genügend Metadaten, um Änderungen auf den Abonnenten herunterzuladen, was zu einer Nicht-Konvergenz führt.