Überprüfen von Partitionsinformationen für einen Mergeabonnenten

Beim Definieren eines parametrisierten Zeilenfilters für eine Mergepublikation kommt eine Funktion zum Einsatz, die die Abonnenteninformationen, wie z. B. den Benutzernamen des Abonnenten, referenziert. Standardmäßig überprüft die Replikation die Abonnenteninformationen auf der Basis dieser Funktion. Erst dann erfolgt die jeweilige Synchronisierung. Die Überprüfung erfolgt auch immer dann, wenn ein Snapshot auf den Abonnenten angewendet wird. Mit der Überprüfung wird sichergestellt, dass die Daten ordnungsgemäß für die einzelnen Abonnenten partitioniert sind. Das Überprüfungsverhalten wird von der validate_subscriber_info-Publikationseigenschaft gesteuert, die mithilfe von sp_changemergepublication (Transact-SQL) oder auf der Seite Abonnementoptionen des Dialogfeldes Publikationseigenschaften geändert werden kann. Weitere Informationen zum Ändern der Publikationseigenschaften finden Sie unter How to: View and Modify Publication Properties (Replication Transact-SQL Programming) und Vorgehensweise: Anzeigen und Ändern der Eigenschaften von Publikationen und Artikeln (SQL Server Management Studio).

Funktionsweise der Partitionsüberprüfung

Wenn eine Publikation z. B. mithilfe der SUSER_SNAME()-Funktion gefiltert wird, weist der Merge-Agent auf der Basis der für den SUSER_SNAME()-Ausdruck geltenden Daten jedem Abonnenten den Anfangssnapshot zu.

Wenn die Überprüfung aktiviert ist und der Abonnent für die nächste Synchronisierung erneut eine Verbindung mit dem Verleger herstellt, überprüft der Merge-Agent die Informationen auf dem Abonnenten und stellt sicher, dass die Partition auf den Abonnenten mit der Partition identisch ist, die im Anfangssnapshot gesendet wurde. Bei allen nachfolgenden Merge- bzw. Snapshotanwendungen überprüft der Merge-Agent die Partition der einzelnen Abonnenten.

Wenn der Merge-Agent feststellt, dass die im Filterausdruck verwendete Funktion einen anderen Wert zurückgibt als im Anfangssnapshot, schlägt die Merge- bzw. Snapshotanwendung fehl, und das Abonnement des Abonnenten muss möglicherweise erneut initialisiert werden. Diese erneute Initialisierung kann nötig werden, um Probleme zu vermeiden, die sich aus der Änderung der Mergeeinstellungen eines Abonnenten ergeben können. Es reicht möglicherweise aber auch aus, die Informationen auf dem Abonnenten, wie z. B. den Benutzernamen, auf den Wert zum Zeitpunkt des ursprünglichen Snapshots zurückzusetzen.

Beim Überprüfen einer Partition gleicht der Merge-Agent aber nicht nur die Partition mit den Werten ab, die von den in den Filterausdrücken verwendeten Funktionen zurückgegeben werden, sondern er kontrolliert auch, ob der Snapshot generiert wurde, bevor Änderungen vorgenommen wurden, durch die er ungültig geworden ist. Solche Änderungen können z. B. Metadaten-Cleanupoperationen oder Schemaänderungen sein. Wenn ein partitionierter Snapshot zu alt ist, gibt der Merge-Agent einen Fehler zurück. In diesem Fall müssen Sie auf der Grundlage eines aktuellen regulären Snapshots einen neuen partitionierten Snapshot für diesen Abonnenten generieren.

Siehe auch

Konzepte

Bewährte Methoden für die Replikationsverwaltung
Erneutes Initialisieren eines Abonnements
Überprüfen von replizierten Daten

Andere Ressourcen

Verwalten der Replikation

Hilfe und Informationen

Informationsquellen für SQL Server 2005