Freigeben über


Manuelles Initialisieren eines Abonnements

Gilt für: SQL Server Azure SQL Managed Instance

In diesem Thema wird beschrieben, wie Sie ein Abonnement manuell in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL initialisieren. Obwohl die Anfangsmomentaufnahme normalerweise zum Initialisieren eines Abonnements verwendet wird, können Abonnements für Veröffentlichungen ohne eine Momentaufnahme initialisiert werden. Voraussetzung dafür ist allerdings, dass der Abonnent das Schema und die Ausgangsdaten bereits besitzt.

Vorbereitungen

Einschränkungen

  • Wenn es zwischen dem Zeitpunkt, zu dem die Daten und das Schema auf den Abonnenten kopiert wurden, und dem Zeitpunkt, zu dem das Abonnement manuell initialisiert wurde, auf einer Datenbank, die mit einer Transaktionsreplikation veröffentlicht wurde, zu einer Aktivität gekommen ist, kann es passieren, dass Änderungen, die sich aus dieser Aktivität ergeben, nicht auf den Abonnenten repliziert werden.

Verwendung von SQL Server Management Studio

Um ein Abonnement für eine Veröffentlichung manuell zu initialisieren, kopieren Sie das Schema (und in der Regel auch einige Daten) in die Abonnementdatenbank. Das Schema und die Daten sollten mit der Veröffentlichungsdatenbank übereinstimmen. Geben Sie anschließend im Assistenten für neue Abonnements auf der Seite Abonnements initialisieren an, dass für das Abonnement kein Schema und keine Daten erforderlich sind. Weitere Informationen zum Zugreifen auf diesen Assistenten finden Sie unter Initialize a Transactional Subscription Without a Snapshot und Create a Pull Subscriptioninitialisiert wird.

Beim ersten Synchronisieren des Abonnements werden die für die Replikation erforderlichen Objekte und Metadaten in die Abonnementdatenbank kopiert.

So initialisieren Sie ein Abonnement für eine Veröffentlichung manuell

  1. Stellen Sie sicher, dass das Schema und die Daten in die Abonnementdatenbank kopiert wurden.

  2. Deaktivieren Sie im Assistenten für neue Abonnements auf der Seite Abonnements initialisieren das Kontrollkästchen Initialisieren . Wiederholen Sie diesen Schritt für alle Abonnements, bei denen nur die Replikationsobjekte und -metadaten kopiert werden sollen.

Verwenden von Transact-SQL

Abonnements können manuell mit gespeicherten Replikationsprozeduren initialisiert werden.

So wird ein Pullabonnement für eine Transaktionsveröffentlichung manuell initialisiert

  1. Stellen Sie sicher, dass das Schema und die Daten in der Abonnementdatenbank vorhanden sind. Weitere Informationen finden Sie unter Initialize a Transactional Subscription Without a Snapshotinitialisiert wird.

  2. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addsubscriptionaus. Geben Sie @publication, @subscriber, den Namen der Datenbank auf dem Abonnenten mit den veröffentlichten Daten für @destination_db, den Wert pull für @subscription_typeund den Wert replication support only für @sync_typean. Weitere Informationen finden Sie unter Create a Pull Subscription.

  3. Führen Sie auf dem Abonnenten sp_addpullsubscriptionaus. Informationen zum Aktualisieren von Abonnements finden Sie unter Create an Updatable Subscription to a Transactional Publication.

  4. Führen Sie auf dem Abonnenten sp_addpullsubscription_agentaus. Weitere Informationen finden Sie unter Create a Pull Subscription.

  5. Starten Sie den Verteilungs-Agent, um Replikationsobjekte zu übertragen und die neuesten Änderungen vom Verleger herunterzuladen. Weitere Informationen finden Sie unter Synchronize a Pull Subscription.

So wird ein Pushabonnement für eine Transaktionsveröffentlichung manuell initialisiert

  1. Stellen Sie sicher, dass das Schema und die Daten in der Abonnementdatenbank vorhanden sind. Weitere Informationen finden Sie unter Initialize a Transactional Subscription Without a Snapshotinitialisiert wird.

  2. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addsubscriptionaus. Geben Sie den Namen der Datenbank auf dem Abonnenten mit den veröffentlichten Daten für @destination_db, den Wert push für @subscription_typeund den Wert replication support only für @sync_typean. Informationen zum Aktualisieren von Abonnements finden Sie unter Create an Updatable Subscription to a Transactional Publication.

  3. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addpushsubscription_agentaus. Weitere Informationen finden Sie unter Create a Push Subscription.

  4. Starten Sie den Verteilungs-Agent, um Replikationsobjekte zu übertragen und die neuesten Änderungen vom Verleger herunterzuladen. Weitere Informationen finden Sie unter Synchronize a Push Subscription.

So wird ein Pullabonnement für eine Mergeveröffentlichung manuell initialisiert

  1. Stellen Sie sicher, dass das Schema und die Daten in der Abonnementdatenbank vorhanden sind. Sie können dazu eine Sicherung der Veröffentlichungsdatenbank auf dem Abonnenten wiederherstellen.

  2. Führen Sie auf dem Verleger sp_addmergesubscriptionaus. Geben Sie @publication, @subscriber, @subscriber_dbund den Wert pull für @subscription_typean. Damit wird das Pullabonnement registriert.

  3. Führen Sie auf dem Abonnenten für die Datenbank, die die veröffentlichten Daten enthält, sp_addmergepullsubscriptionaus. Geben Sie für @sync_type den Wert nonean.

  4. Führen Sie auf dem Abonnenten sp_addmergepullsubscription_agentaus. Weitere Informationen finden Sie unter Create a Pull Subscription.

  5. Starten Sie den Merge-Agent, um Replikationsobjekte zu übertragen und die neuesten Änderungen vom Verleger herunterzuladen. Weitere Informationen finden Sie unter Synchronize a Pull Subscription.

So wird ein Pushabonnement für eine Mergeveröffentlichung manuell initialisiert

  1. Stellen Sie sicher, dass das Schema und die Daten in der Abonnementdatenbank vorhanden sind. Sie können dazu eine Sicherung der Veröffentlichungsdatenbank auf dem Abonnenten wiederherstellen.

  2. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergesubscriptionaus. Geben Sie den Namen der Datenbank auf dem Abonnenten mit den veröffentlichten Daten für @subscriber_db, den Wert push für @subscription_typeund den Wert none für @sync_typean.

  3. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergepushsubscription_agentaus. Weitere Informationen finden Sie unter Create a Push Subscription.

  4. Starten Sie den Merge-Agent, um Replikationsobjekte zu übertragen und die neuesten Änderungen vom Verleger herunterzuladen. Weitere Informationen finden Sie unter Synchronize a Push Subscription.