Freigeben über


Wie die Mergereplikation mit dem Ablauf von Abonnements und der Bereinigung der Metadaten umgeht

Ein Abonnement einer Zusammenführungsveröffentlichung läuft ab, wenn es nicht innerhalb des Aufbewahrungszeitraums der Publikation mit dem Herausgeber synchronisiert wurde. Der Standardaufbewahrungszeitraum beträgt 14 Tage. Sie wird über die Parameter @retention und @retention_period_unit von sp_addmergepublication festgelegt. Die @retention_period_unit erfordert, dass die Kompatibilitätsstufe für die Veröffentlichung 90 RTM oder höher ist. Für Abonnenten, die frühere Versionen von Microsoft SQL Server ausführen, wird @retention_period_unit immer auf day gesetzt. Weitere Informationen zur Kompatibilitätsstufe finden Sie im Abschnitt "Kompatibilitätsebene für Zusammenführungspublikationen" im Artikel "Verwenden mehrerer Versionen von SQL Server in einer Replikationstopologie".

Wenn ein Abonnement abläuft, muss es erneut initialisiert werden, da Metadaten für das Abonnement entfernt werden. Weitere Informationen finden Sie unter "Metadatenbereinigung". Abonnements, die nicht erneut initialisiert werden, werden von dem Einzelvorgang „Cleanup abgelaufener Abonnements“ gelöscht, der auf dem Publisher ausgeführt wird. Standardmäßig wird dieser Auftrag täglich ausgeführt; es entfernt alle Pushabonnements, die nicht synchronisiert wurden, um die Dauer des Aufbewahrungszeitraums der Publikation zu verdoppeln. Beispiel:

  • Wenn eine Publikation einen Aufbewahrungszeitraum von 14 Tagen hat, kann ein Abonnement ablaufen, wenn es nicht innerhalb von 14 Tagen synchronisiert wurde.

    Ein Abonnement läuft nur ab, wenn Änderungen an den Daten in der Partition dieses Abonnements vorgenommen wurden. Angenommen, ein Abonnent empfängt Kundendaten nur für Kunden in Deutschland. Wenn der Aufbewahrungszeitraum auf 14 Tage festgelegt ist, läuft das Abonnement am Tag 14 nur ab, wenn in den letzten 14 Tagen Änderungen an den Kundendaten aus dieser Region vorgenommen wurden.

  • Von 14 Tagen bis 27 Tage nach der letzten Synchronisierung kann das Abonnement erneut initialisiert werden.

  • 28 Tage nach der letzten Synchronisierung wird das Abonnement vom Einzelvorgang „Cleanup abgelaufener Abonnements“ gelöscht. Wenn ein Pushabonnement abläuft, wird es vollständig entfernt, aber Pullabonnements bleiben bestehen. Sie müssen einen Cleanup der Pullabonnements auf dem Abonnenten ausführen. Weitere Informationen finden Sie unter "Löschen eines Pullabonnements".

Überlegungen zum Festlegen des Aufbewahrungszeitraums für die Publikation

Beachten Sie beim Festlegen des Aufbewahrungszeitraums für Zusammenführungspublikationen die folgenden Überlegungen:

  • Die Bereinigung der Zusammenführungsreplikationsmetadaten hängt vom Aufbewahrungszeitraum der Publikation ab:

    • Die Replikation kann die Bereinigung der Metadaten aus den Veröffentlichungs- und Abonnementdatenbanken erst ausführen, wenn das Ablaufdatum erreicht ist. Verwenden Sie Vorsicht bei der Angabe eines hohen Werts für den Aufbewahrungszeitraum, da sie sich negativ auf die Replikationsleistung auswirken kann. Sie sollten eine niedrigere Einstellung verwenden, wenn Sie zuverlässig vorhersagen können, dass alle Abonnenten innerhalb dieses Zeitraums regelmäßig synchronisiert werden.

    • Es ist möglich, anzugeben, dass Abonnements niemals ablaufen (wert von 0 für @retention), aber Sie sollten diesen Wert nicht verwenden, da Metadaten nicht bereinigt werden können.

  • Der Aufbewahrungszeitraum für alle erneuten Veröffentlichungen muss auf einen Wert festgelegt werden, der dem auf dem ursprünglichen Publisher festgelegten Aufbewahrungszeitraum entspricht oder kleiner ist. Wenn Sie alternative Synchronisierungspartner verwenden, sollten Sie dieselben Veröffentlichungsaufbewahrungswerte für die Herausgeber und alle alternativen Synchronisierungspartner verwenden. Die Verwendung unterschiedlicher Werte kann zu Nichtkonvergence führen. Wenn Sie den Aufbewahrungswert der Publikation ändern müssen, initialisieren Sie den Abonnenten erneut, um die Nichtkonvergence von Daten zu vermeiden.

  • Wenn nach einer Bereinigung der Aufbewahrungszeitraum für die Publikation erhöht wird und ein Abonnement versucht, mit dem Herausgeber (der die Metadaten bereits gelöscht hat) zusammenzuführen, läuft das Abonnement aufgrund des erhöhten Aufbewahrungswerts nicht ab. Der Herausgeber verfügt jedoch nicht über genügend Metadaten, um Änderungen an den Abonnenten herunterzuladen, was zu Nichtkonvergenz führt.

Bereinigung von Metadaten

Die Metadatenbereinigung in der Zusammenführungsreplikation wird durch die gespeicherte Prozedur sp_mergemetadataretentioncleanup durchgeführt. Der Zeitpunkt der Bereinigung basiert auf dem Aufbewahrungszeitraum der Publikation. Jedes Mal, wenn der Merge-Agent für ein Abonnement ausgeführt wird, ruft er die Bereinigungsprozedur auf. Das Verfahren entfernt Metadaten, die älter als der Aufbewahrungszeitraum der Publikation sind, aus den folgenden Systemtabellen:

Diese Tabellen werden von allen Publikationen in einer Publikationsdatenbank verwendet: Wenn mehr als eine Publikation vorhanden ist, wird der längste Aufbewahrungszeitraum immer verwendet, um zu bestimmen, wann Metadaten entfernt werden können.