Vorgehensweise: Verwalten von Partitionen für eine Mergeveröffentlichung mit parametrisierten Filtern (Replikationsprogrammierung mit Transact-SQL)
Mithilfe parametrisierter Zeilenfilter können nicht überlappende Partitionen generiert werden. Diese Partitionen können eingeschränkt werden, sodass nur ein Abonnement eine bestimmte Partition erhält. In solchen Fällen führt eine große Anzahl von Abonnenten zu einer großen Anzahl von Partitionen, was wiederum eine gleiche Anzahl von partitionierten Snapshots erforderlich macht. Weitere Informationen finden Sie unter Parametrisierte Zeilenfilter. Sie können die vorhandenen Partitionen mithilfe gespeicherter Replikationsprozeduren programmgesteuert aufzählen, um eine Veröffentlichung mit parametrisierten Filtern besser verwalten zu können. Zudem können Sie Partitionen erstellen und vorhandene Partitionen löschen. Die folgenden Informationen zu vorhandenen Partitionen können abgerufen werden:
Anweisungen zum Filtern einer Partition (mit SUSER_SNAME (Transact-SQL) oder HOST_NAME (Transact-SQL)).
Der Name des Auftrags, der einen partitionierten Snapshot generiert.
Das Datum der letzten Ausführung eines Auftrags für einen partitionierten Snapshot.
Während der zweite Teil des zweiteiligen Snapshots bedarfsgerecht generiert werden kann, wenn ein neues Abonnement initialisiert wird, können Sie mithilfe der nachfolgenden Anweisungen die Generierung dieses Snapshots steuern und den Snapshot im voraus zu einem beliebigen Zeitpunkt erstellen. Weitere Informationen finden Sie unter Snapshots für Mergeveröffentlichungen mit parametrisierten Filtern.
Hinweis |
---|
Wenn eine Veröffentlichung parametrisierte Filter aufweist, die Abonnements mit nicht überlappenden Partitionen ergeben, müssen Sie wie folgt vorgehen, falls ein bestimmtes Abonnement verloren geht und neu erstellt werden muss: Entfernen Sie die Partition, die abonniert wurde, erstellen Sie das Abonnement neu, und erstellen Sie dann die Partition neu. Durch Replikation werden Erstellungsskripts für vorhandene Abonnentenpartitionen generiert, wenn ein Erstellungsskript für eine Veröffentlichung generiert wird. Weitere Informationen finden Sie unter Erstellen von Skripts für die Replikation. |
So zeigen Sie Informationen zu vorhandenen Partitionen an
- Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_helpmergepartition (Transact-SQL) aus. Geben Sie den Namen der Veröffentlichung für @publication an. (Optional) Geben Sie @suser_sname oder @host_name an, damit nur Informationen basierend auf einem einzelnen Filterkriterium zurückgegeben werden.
So können Sie eine neue Partition definieren und einen neuen partitionierten Snapshot generieren
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergepartition (Transact-SQL) aus. Geben Sie den Namen der Veröffentlichung für @publication und den parametrisierten Wert an, der die Partition für eines der folgenden Elemente definiert:
@suser_sname - wenn der parametrisierte Filter durch den von SUSER_SNAME (Transact-SQL) zurückgegebenen Wert definiert wird.
@host_name - wenn der parametrisierte Filter durch den von HOST_NAME (Transact-SQL) zurückgegebenen Wert definiert wird.
Erstellen und initialisieren Sie den parametrisierten Snapshot für diese neue Partition. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen eines Snapshots für Mergepublikationen mit parametrisierten Filtern (Replikationsprogrammierung mit Transact-SQL).
So löschen Sie eine Partition
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_dropmergepartition (Transact-SQL) aus. Geben Sie den Namen der Veröffentlichung für @publication und den parametrisierten Wert an, der die Partition für eines der folgenden Elemente definiert:
@suser_sname - wenn der parametrisierte Filter durch den von SUSER_SNAME (Transact-SQL) zurückgegebenen Wert definiert wird.
@host_name - wenn der parametrisierte Filter durch den von HOST_NAME (Transact-SQL) zurückgegebenen Wert definiert wird.
Dadurch werden zudem der Snapshotauftrag und alle Snapshotdateien für die Partition entfernt.