Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Beim Definieren eines parametrisierten Zeilenfilters für eine Mergeveröffentlichung kommt eine Funktion zum Einsatz, die die Abonnenteninformationen, wie z. B. den Benutzernamen des Abonnenten, referenziert. Standardmäßig überprüft die Replikation vor jeder Synchronisierung und jedes Mal, wenn beim Abonnenten ein Snapshot angewendet wird, die Abonnenteninformationen anhand dieser Funktion. 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-Veröffentlichungseigenschaft gesteuert, die mithilfe von sp_changemergepublication (Transact-SQL) oder auf der Seite Abonnementoptionen des Dialogfelds Veröffentlichungseigenschaften geändert werden kann. Weitere Informationen zum Ändern der Veröffentlichungseigenschaften finden Sie unter View and Modify Publication Properties.
Funktionsweise der Partitionsüberprüfung
Wenn eine Veröffentlichung z. B. mithilfe der Funktion SUSER_SNAME() gefiltert wird, wendet der Merge-Agent den Anfangssnapshot auf jeden Abonnenten basierend auf den Daten an, die für den SUSER_SNAME()-Ausdruck gültig sind.
Wenn die Validierung aktiviert ist und der Abonnent sich zur nächsten Synchronisierung erneut mit dem Publisher verbindet, validiert der Merge-Agent die Informationen beim Abonnenten und stellt sicher, dass die Partition jedes Abonnenten mit der im ursprünglichen Snapshot empfangenen Partition übereinstimmt. Bei allen nachfolgenden Merge- bzw. Momentaufnahmeanwendungen ü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 in der Anfangsmomentaufnahme, schlägt die Merge- bzw. Momentaufnahmeanwendung fehl, und das Abonnement des Abonnenten muss möglicherweise erneut initialisiert werden. Eine Neuinitialisierung kann erforderlich sein, um Probleme zu vermeiden, die auftreten können, wenn die Mergeeinstellungen eines Abonnenten geändert werden. Möglicherweise genügt es jedoch auch, die Informationen beim Abonnenten, wie z. B. den Anmeldenamen, auf den Wert zurückzusetzen, der bei der ursprünglichen Momentaufnahme verwendet wurde.
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 die Momentaufnahme generiert wurde, bevor Änderungen vorgenommen wurden, durch die sie ungültig geworden ist. Solche Änderungen können z. B. Metadaten-Cleanupoperationen oder Schemaänderungen sein. Wenn eine partitionierte Momentaufnahme zu alt ist, gibt der Merge-Agent einen Fehler zurück. In diesem Fall müssen Sie auf der Grundlage einer aktuellen regulären Momentaufnahme eine neue partitionierte Momentaufnahme für diesen Abonnenten generieren.