sp_addpullsubscription (Transact-SQL)

Fügt ein Pullabonnement einer Momentaufnahmen- oder Transaktionsveröffentlichung hinzu. Diese gespeicherte Prozedur wird auf dem Abonnenten für die Datenbank ausgeführt, für die das Pullabonnement erstellt werden soll.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

sp_addpullsubscription [ @publisher= ] 'publisher'
    [ , [ @publisher_db= ] 'publisher_db' ]
        , [ @publication= ] 'publication'
    [ , [ @independent_agent= ] 'independent_agent' ]
    [ , [ @subscription_type= ] 'subscription_type' ]
    [ , [ @description= ] 'description' ]
    [ , [ @update_mode= ] 'update_mode' ]
    [ , [ @immediate_sync = ] immediate_sync ]

Argumente

  • [ @publisher=] 'publisher'
    Der Name des Verlegers. publisher ist vom Datentyp sysname und hat keinen Standardwert.

  • [ @publisher_db=] 'publisher_db'
    Der Name der Verlegerdatenbank. publisher_db ist vom Datentyp sysname und hat den Standardwert NULL. publisher_db wird von Oracle-Verlegern ignoriert.

  • [ @publication=] 'publication'
    Der Name der Veröffentlichung. publication ist vom Datentyp sysname und hat keinen Standardwert.

  • [ @independent_agent=] 'independent_agent'
    Gibt an, ob ein eigenständiger Verteilungs-Agent für diese Veröffentlichung vorhanden ist. independent_agent ist vom Datentyp nvarchar(5). Der Standardwert ist TRUE. Bei true ist ein eigenständiger Verteilungs-Agent für diese Veröffentlichung vorhanden. Bei false ist für jedes Verlegerdatenbank-Abonnentendatenbank-Paar ein Verteilungs-Agent vorhanden. independent_agent ist eine Eigenschaft der Veröffentlichung und muss hier über den gleichen Wert wie beim Verleger verfügen.

  • [ @subscription_type=] 'subscription_type'
    Der Typ des Abonnements. subscription_type ist vom Datentyp nvarchar(9) und hat den Standardwert anonymous. Sie müssen für subscription_type den Wert pull angeben, es sei denn, Sie möchten ein Abonnement erstellen, ohne das Abonnement auf dem Verleger zu registrieren. In diesem Fall müssen Sie den Wert anonymous angeben. Dies ist notwendig für Fälle, in denen Sie während der Abonnementkonfiguration keine SQL Server-Verbindung mit dem Verleger herstellen können.

  • [ @description=] 'description'
    Die Beschreibung der Veröffentlichung. description ist vom Datentyp nvarchar(100) und hat den Standardwert NULL.

  • [ @update_mode=] 'update_mode'
    Der Updatetyp. update_mode ist vom Datentyp nvarchar(30). Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    read only (Standard)

    Das Abonnement ist schreibgeschützt. Änderungen am Abonnenten werden nicht an den Verleger zurückgesendet. Sollte verwendet werden, wenn Updates nicht auf dem Abonnenten vorgenommen werden.

    sync tran

    Aktiviert die Unterstützung für Abonnements mit sofortigem Update.

    queued tran

    Aktiviert das verzögerte Aktualisieren über eine Warteschlange für das Abonnement. Daten können auf dem Abonnenten geändert werden. Die Änderungen werden in einer Warteschlange gespeichert und dann an den Verleger weitergegeben.

    failover

    Aktiviert das sofortige Aktualisieren für das Abonnement, wobei als Failover das verzögerte Aktualisieren über eine Warteschlange verwendet wird. Daten können auf dem Abonnenten geändert werden. Die Änderungen werden sofort an den Verleger weitergegeben. Wenn der Verleger und der Abonnent nicht verbunden sind, können Datenänderungen auf dem Abonnenten in einer Warteschlange gespeichert werden, bis Abonnent und Verleger erneut verbunden sind.

    queued failover

    Aktiviert das Abonnement als Abonnement mit verzögertem Update über eine Warteschlange mit der Möglichkeit, in den Sofortupdatemodus zu wechseln. Daten können auf dem Abonnenten geändert und in einer Warteschlange gespeichert werden, bis eine Verbindung zwischen dem Abonnenten und dem Verleger hergestellt wird. Wenn eine kontinuierliche Verbindung hergestellt wird, kann der Updatemodus in den Sofortupdatemodus geändert werden. Wird für Oracle-Verleger nicht unterstützt.

  • [ @immediate_sync =] immediate_sync
    Gibt an, ob die Synchronisierungsdateien bei jeder Ausführung des Momentaufnahme-Agents erstellt oder neu erstellt werden. immediate_sync ist vom Datentyp bit mit dem Standardwert 1 und muss auf den gleichen Wert wie immediate_sync in sp_addpublication festgelegt werden.immediate_sync ist eine Eigenschaft der Veröffentlichung und muss hier über den gleichen Wert wie beim Verleger verfügen.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addpullsubscription wird bei der Momentaufnahme- und Transaktionsreplikation verwendet.

SicherheitshinweisSicherheitshinweis

Bei Abonnements mit verzögertem Update über eine Warteschlange verwenden Sie die SQL Server-Authentifizierung für Verbindungen mit Abonnenten. Geben Sie für die Verbindung zu den einzelnen Abonnenten jeweils ein anderes Konto an. Beim Erstellen eines Pullabonnements, das verzögerte Updates über eine Warteschlange unterstützt, legt die Replikation immer die Verwendung der Windows-Authentifizierung für die Verbindung fest (für Pullabonnements kann die Replikation nicht auf Metadaten beim Abonnenten zugreifen, die für die Verwendung der SQL Server-Authentifizierung erforderlich sind). In diesem Fall sollten Sie nach dem Konfigurieren des Abonnements sp_changesubscription ausführen, um die Verbindung zu ändern, damit die SQL Server-Authentifizierung verwendet wird.

Falls die MSreplication_subscriptions (Transact-SQL)-Tabelle nicht auf dem Abonnenten vorhanden ist, wird sie von sp_addpullsubscription erstellt. Außerdem fügt sp_addpullsubscription der MSreplication_subscriptions (Transact-SQL)-Tabelle eine Zeile hinzu. Für Pullabonnements sollte sp_addsubscription (Transact-SQL) zuerst auf dem Verleger aufgerufen werden.

Beispiel

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2012';

-- At the subscription database, create a pull subscription 
-- to a transactional publication.
USE [AdventureWorks2012Replica]
EXEC sp_addpullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

-- Add an agent job to synchronize the pull subscription.
EXEC sp_addpullsubscription_agent 
  @publisher = @publisher, 
  @publisher_db = @publicationDB, 
  @publication = @publication, 
  @distributor = @publisher, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_addpullsubscription ausführen.

Siehe auch

Verweis

sp_addpullsubscription_agent (Transact-SQL)

sp_change_subscription_properties (Transact-SQL)

sp_droppullsubscription (Transact-SQL)

sp_helppullsubscription (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

Gespeicherte Systemprozeduren (Transact-SQL)

Konzepte

Erstellen eines Pullabonnements

Erstellen von aktualisierbaren Abonnements für eine Transaktionsveröffentlichung

Abonnieren von Veröffentlichungen