Hinzufügen und Löschen von Artikeln bei vorhandenen Veröffentlichungen
Nachdem eine Veröffentlichung erstellt wurde, können ihr Artikel hinzugefügt oder Artikel aus der Veröffentlichung gelöscht werden. Während das Hinzufügen von Artikeln jederzeit erfolgen kann, hängen die Schritte zum Löschen von Artikeln vom jeweiligen Replikationstyp und dem Zeitpunkt ab, zu dem der Artikel gelöscht wird.
Hinzufügen von Artikeln
Hinzufügen eines Artikels beinhaltet Folgendes: Hinzufügen des Artikels zur Veröffentlichung; Erstellen eines neuen Snapshots für die Veröffentlichung und Synchronisieren des Abonnements zum Zuweisen des Schemas und der Daten für den neuen Artikel.
Hinweis |
---|
Wenn Sie einen Artikel einer Mergereveröffentlichung und einen vorhandenen Artikel, der von einem neuen Artikel abhängt, hinzufügen, müssen Sie eine Verarbeitungsreihenfolge für beide Artikel mithilfe des @processing_order-Parameters von sp_addmergearticle und sp_changemergearticle angeben. Angenommen, Sie veröffentlichen eine Tabelle, aber Sie veröffentlichen keine Funktion, die auf die Tabelle verweist. Wenn Sie die Funktion nicht veröffentlichen, kann die Tabelle nicht auf dem Abonnenten erstellt werden. Wenn Sie die Funktion einer Veröffentlichung hinzufügen, geben Sie einen Wert von 1 für den @processing_order-Parameter von sp_addmergearticle an, und geben Sie einen Wert von 2 für den @processing_order-Parameter von sp_changemergearticle an. Geben Sie dann den Tabellennamen für den @article-Parameter an. Mit dieser Verarbeitungsreihenfolge wird sichergestellt, dass Sie eine Funktion auf dem Abonnenten vor der Tabelle erstellen, die davon abhängig ist. Sie können unterschiedliche Nummern für die einzelnen Artikel verwenden, dabei muss jedoch die Nummer für die Funktion kleiner als die Nummer der Tabelle sein. |
Zum Hinzufügen einzelner oder mehrerer Artikel stehen die folgenden Methoden zur Verfügung:
Microsoft SQL Server Management Studio: Vorgehensweise: Hinzufügen von Artikeln zu einer Veröffentlichung und Löschen von Artikeln aus einer Veröffentlichung (SQL Server Management Studio)
Replikationsprogrammierung mit Transact-SQL: Vorgehensweise: Definieren eines Artikels (Replikationsprogrammierung mit Transact-SQL)
RMO-Programmierung (Replikationsverwaltungsobjekte): Vorgehensweise: Definieren eines Artikels (RMO-Programmierung)
Nachdem Sie einer Veröffentlichung einen Artikel hinzugefügt haben, müssen Sie einen neuen Snapshot für die Veröffentlichung (sowie – bei Mergeveröffentlichungen mit parametrisierten Filtern – für alle Partitionen) erstellen. Der Verteilungs-Agent oder der Merge-Agent kopiert dann das Schema und die Daten für den neuen Artikel auf den Abonnenten (ohne dabei die gesamte Veröffentlichung neu zu initialisieren).
So erstellen Sie einen neuen Snapshot
SQL Server Management Studio: Vorgehensweise: Erstellen und Anwenden des Anfangssnapshots (SQL Server Management Studio)
Replikationsprogrammierung mit Transact-SQL: Vorgehensweise: Erstellen des Anfangssnapshots (Replikationsprogrammierung mit Transact-SQL)
RMO-Programmierung: Vorgehensweise: Erstellen des Anfangssnapshots (RMO-Programmierung)
So erstellen Sie einen neuen Snapshot für eine Mergeveröffentlichung mit parametrisierten Filtern
SQL Server Management Studio: Vorgehensweise: Generieren eines Snapshots für eine Mergeveröffentlichung mit parametrisierten Filtern (SQL Server Management Studio)
Replikationsprogrammierung mit Transact-SQL: Vorgehensweise: Erstellen eines Snapshots für Mergepublikationen mit parametrisierten Filtern (Replikationsprogrammierung mit Transact-SQL)
Synchronisieren Sie nach Abschluss der Snapshoterstellung das Abonnement, um das Schema und die Daten für den neuen Artikel zu kopieren.
So synchronisieren Sie ein Pushabonnement
SQL Server Management Studio: Vorgehensweise: Synchronisieren eines Pushabonnements (SQL Server Management Studio)
Replikationsprogrammierung mit Transact-SQL: Vorgehensweise: Synchronisieren eines Pushabonnements (Replikationsprogrammierung)
RMO-Programmierung: Vorgehensweise: Synchronisieren eines Pushabonnements (RMO-Programmierung)
So synchronisieren Sie ein Pullabonnement
SQL Server Management Studio: Vorgehensweise: Synchronisieren eines Pullabonnements (SQL Server Management Studio)
Replikationsprogrammierung mit Transact-SQL: Vorgehensweise: Synchronisieren eines Pullabonnements (Replikationsprogrammierung)
RMO-Programmierung: Vorgehensweise: Synchronisieren eines Pullabonnements (RMO-Programmierung)
Löschen von Artikeln
Artikel können jederzeit aus einer Veröffentlichung gelöscht werden, wobei jedoch Folgendes zu beachten ist:
Durch das Löschen eines Artikels aus einer Veröffentlichung wird weder das Objekt aus der Veröffentlichungsdatenbank noch das zugehörige Objekt aus der Abonnementdatenbank entfernt. Zum Entfernen dieser Objekte sollten Sie bei Bedarf DROP <Object> verwenden. Wenn Sie einen Artikel löschen möchten, der über FOREIGN KEY-Einschränkungen mit anderen veröffentlichten Artikeln verknüpft ist, sollten Sie die Tabelle auf dem Abonnenten manuell oder mithilfe einer bedarfsgesteuerten Skriptausführung löschen. Geben Sie ein Skript an, dass die entsprechenden DROP <Object>-Anweisungen einschließt. Weitere Informationen finden Sie unter Vorgehensweise: Ausführen von Skripts während der Synchronisierung (Replikationsprogrammierung mit Transact-SQL).
Bei Mergeveröffentlichungen mit einem Kompatibilitätsgrad von 90RTM oder höher können Artikel jederzeit gelöscht werden. Es ist jedoch ein neuer Snapshot erforderlich. Darüber hinaus gilt:
Wenn der Artikel ein übergeordneter Artikel in einer Verknüpfungsfilter- oder logischen Datensatzbeziehung ist, müssen zunächst die Beziehungen gelöscht werden, was eine erneute Initialisierung erforderlich macht.
Wenn der Artikel den letzten parametrisierten Filter in einer Veröffentlichung hat, müssen die Abonnements erneut initialisiert werden.
Bei Mergeveröffentlichungen mit einem Kompatibilitätsgrad von unter 90RTM können Artikel ohne weiteres gelöscht werden, solange die Abonnements noch nicht zum ersten Mal synchronisiert wurden. Wird ein Artikel nach der Synchronisierung von Abonnements gelöscht, müssen die Abonnements gelöscht, neu erstellt und dann synchronisiert werden. Weitere Informationen zum Kompatibilitätsgrad bei Mergeveröffentlichungen finden Sie im entsprechenden Abschnitt im Thema Verwenden mehrerer Versionen von SQL Server in einer Replikationstopologie.
Bei Snapshot- oder Transaktionsveröffentlichungen können Artikel ohne weiteres gelöscht werden, solange noch keine Abonnements erstellt wurden. Wird ein Artikel nach der Erstellung von Abonnements gelöscht, müssen die Abonnements gelöscht, neu erstellt und dann synchronisiert werden. Weitere Informationen zum Löschen von Abonnements finden Sie unter Abonnieren von Veröffentlichungen und sp_dropsubscription (Transact-SQL). Mit sp_dropsubscription können Sie statt des gesamten Abonnements einzelne Artikel aus Abonnements löschen.
Das Löschen eines Artikels aus einer Veröffentlichung umfasst das eigentliche Löschen des Artikels und das Erstellen eines neuen Snapshots für die Veröffentlichung. Durch das Löschen eines Artikels wird der aktuelle Snapshot ungültig, sodass ein neuer Snapshot erstellt werden muss.
So löschen Sie einen Artikel aus einer Veröffentlichung
SQL Server Management Studio: Vorgehensweise: Hinzufügen von Artikeln zu einer Veröffentlichung und Löschen von Artikeln aus einer Veröffentlichung (SQL Server Management Studio)
Replikationsprogrammierung mit Transact-SQL: Vorgehensweise: Löschen eines Artikels (Replikationsprogrammierung mit Transact-SQL)
RMO-Programmierung: Vorgehensweise: Löschen eines Artikels (RMO-Programmierung)
Nachdem Sie einen Artikel aus einer Veröffentlichung gelöscht haben, müssen Sie einen neuen Snapshot für die Veröffentlichung (sowie – bei Mergeveröffentlichungen mit parametrisierten Filtern – für alle Partitionen) erstellen.
So erstellen Sie einen neuen Snapshot
SQL Server Management Studio: Vorgehensweise: Erstellen und Anwenden des Anfangssnapshots (SQL Server Management Studio)
Replikationsprogrammierung mit Transact-SQL: Vorgehensweise: Erstellen des Anfangssnapshots (Replikationsprogrammierung mit Transact-SQL)
RMO-Programmierung: Vorgehensweise: Erstellen des Anfangssnapshots (RMO-Programmierung)
So erstellen Sie einen neuen Snapshot für eine Mergeveröffentlichung mit parametrisierten Filtern
SQL Server Management Studio: Vorgehensweise: Generieren eines Snapshots für eine Mergeveröffentlichung mit parametrisierten Filtern (SQL Server Management Studio)
Replikationsprogrammierung mit Transact-SQL: Vorgehensweise: Erstellen eines Snapshots für Mergepublikationen mit parametrisierten Filtern (Replikationsprogrammierung mit Transact-SQL)
Wie oben bereits erwähnt, müssen die Abonnements in einigen Fällen nach dem Löschen eines Artikels gelöscht und dann neu erstellt sowie synchronisiert werden. Weitere Informationen finden Sie unter Abonnieren von Veröffentlichungen und Synchronisieren von Daten.