sp_addmergepushsubscription_agent (Transact-SQL)

Fügt einer Mergeveröffentlichung einen neuen Agentauftrag hinzu, mit dem die Synchronisierung eines Pushabonnements geplant wird. Diese gespeicherte Prozedur wird beim Verleger mit der Veröffentlichungsdatenbank ausgeführt.

SicherheitshinweisSicherheitshinweis

Bei der Konfiguration eines Verlegers mit einem Remoteverteiler werden die Werte, die für alle Parameter einschließlich job_login und job_password bereitgestellt werden, als Nur-Text an den Verteiler gesendet. Sie sollten die Verbindung zwischen dem Verleger und dem Remoteverteiler verschlüsseln, bevor Sie diese gespeicherte Prozedur ausführen. Weitere Informationen finden Sie unter Verschlüsseln von Verbindungen zu SQL Server.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_addmergepushsubscription_agent [ @publication =] 'publication' 
    [ , [ @subscriber = ] 'subscriber' ] 
    [ , [ @subscriber_db = ] 'subscriber_db' ] 
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ] 
    [ , [ @subscriber_login = ] 'subscriber_login' ] 
    [ , [ @subscriber_password = ] 'subscriber_password' ] 
    [ , [ @publisher_security_mode = ] publisher_security_mode ] 
    [ , [ @publisher_login = ] 'publisher_login' ] 
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 
    [ , [ @job_name = ] 'job_name' ] 
    [ , [ @frequency_type = ] frequency_type ] 
    [ , [ @frequency_interval = ] frequency_interval ] 
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ] 
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ] 
    [ , [ @frequency_subday = ] frequency_subday ] 
    [ , [ @frequency_subday_interval = ] frequency_subday_interval ] 
    [ , [ @active_start_time_of_day = ] active_start_time_of_day ] 
    [ , [ @active_end_time_of_day = ] active_end_time_of_day ] 
    [ , [ @active_start_date = ] active_start_date ] 
    [ , [ @active_end_date = ] active_end_date ] 
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ] 

Argumente

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

  • [ @subscriber = ] 'subscriber'
    Der Name des Abonnenten. subscriber ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @subscriber_db = ] 'subscriber_db'
    Der Name der Abonnementdatenbank. subscriber_db ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @subscriber_security_mode=] subscriber_security_mode
    Der Sicherheitsmodus, der beim Synchronisieren zum Herstellen der Verbindung mit einem Abonnenten verwendet wird. subscriber_security_mode ist vom Datentyp int und hat den Standardwert 1. Mit 0 wird die SQL Server-Authentifizierung angegeben. Der Wert 1 gibt die Windows-Authentifizierung an.

  • [ @subscriber_login =] 'subscriber_login'
    Der Anmeldename des Abonnenten, der beim Synchronisieren zum Herstellen der Verbindung mit einem Abonnenten verwendet wird. subscriber_login ist erforderlich, wenn subscriber_security_mode auf 0 festgelegt wird. subscriber_login ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @subscriber_password=] 'subscriber_password'
    Das Abonnentenkennwort für die SQL Server-Authentifizierung. subscriber_password ist erforderlich, wenn subscriber_security_mode auf 0 festgelegt wird. subscriber_password ist vom Datentyp sysname und hat den Standardwert NULL. Bei Verwendung eines Abonnentenkennworts wird dieses automatisch verschlüsselt.

    SicherheitshinweisSicherheitshinweis

    Die Benutzer sollten nach Möglichkeit zur Laufzeit zur Eingabe von Sicherheitsanmeldeinformationen aufgefordert werden. Wenn Anmeldeinformationen in einer Skriptdatei gespeichert werden müssen, müssen Sie die Datei an einem sicheren Ort speichern, um unberechtigten Zugriff zu vermeiden.

  • [ @publisher_security_mode = ] publisher_security_mode
    Der Sicherheitsmodus, der beim Synchronisieren zum Herstellen der Verbindung mit einem Verleger verwendet wird. publisher_security_mode ist vom Datentyp int und hat den Standardwert 1. Mit 0 wird die SQL Server-Authentifizierung angegeben. Der Wert 1 gibt die Windows-Authentifizierung an.

  • [ @publisher_login = ] 'publisher_login'
    Der Anmeldename, der beim Synchronisieren zum Herstellen der Verbindung mit dem Verleger verwendet wird. publisher_login ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @publisher_password = ] 'publisher_password'
    Das zum Herstellen der Verbindung mit dem Verleger verwendete Kennwort. publisher_password ist vom Datentyp sysname und hat den Standardwert NULL.

    SicherheitshinweisSicherheitshinweis

    Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit anzugeben. Wenn Anmeldeinformationen in einer Skriptdatei gespeichert werden müssen, muss die Datei an einem sicheren Ort gespeichert werden, um unberechtigten Zugriff zu vermeiden.

  • [ @job_login = ] 'job_login'
    Der Anmeldename für das Windows-Konto, unter dem der Agent ausgeführt wird. job_login ist vom Datentyp nvarchar(257) und hat den Standardwert NULL. Dieses Windows-Konto wird immer für Agentverbindungen mit dem Verteiler und für Verbindungen mit dem Abonnenten und Verleger verwendet, wenn die integrierte Windows-Authentifizierung verwendet wird.

  • [ @job_password = ] 'job_password'
    Das Kennwort für das Windows-Konto, unter dem der Agent ausgeführt wird. job_password ist vom Datentyp sysname und hat keinen Standardwert.

    SicherheitshinweisSicherheitshinweis

    Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit anzugeben. Wenn Anmeldeinformationen in einer Skriptdatei gespeichert werden müssen, muss die Datei an einem sicheren Ort gespeichert werden, um unberechtigten Zugriff zu vermeiden.

  • [ @job_name =] 'job_name'
    Der Name eines vorhandenen Agentauftrags. job_name ist vom Datentyp sysname und hat den Standardwert NULL. Dieser Parameter wird nur angegeben, wenn das Abonnement nicht mit einem neu erstellten Auftrag (Standard), sondern mit einem vorhandenen Auftrag synchronisiert wird. Wenn Sie kein Mitglied der festen Serverrolle sysadmin sind, müssen Sie job_login und job_password angeben, wenn Sie job_name angeben.

  • [ @frequency_type=] frequency_type
    Die Häufigkeit für die Planung des Merge-Agents. frequency_type ist vom Datentyp int. Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    1

    Einmal

    2

    Bedarfsgesteuert

    4

    Täglich

    8

    Wöchentlich

    16

    Monatlich

    32

    Monatlich, relativ

    64

    Autostart

    128

    Wiederholt

    NULL (Standard)

     

    HinweisHinweis

    Durch die Angabe des Werts 64 wird der Merge-Agent im fortlaufenden Modus ausgeführt. Dies entspricht dem Festlegen des -Continuous-Parameters für den Agent. Weitere Informationen finden Sie unter Replikationsmerge-Agent.

  • [ @frequency_interval=] frequency_interval
    Die Tage, an denen der Merge-Agent ausgeführt wird. frequency_interval ist vom Datentyp int. Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    1

    Sonntag

    2

    Montag

    3

    Dienstag

    4

    Mittwoch

    5

    Donnerstag

    6

    Freitag

    7

    Samstag

    8

    Tag

    9

    Arbeitstage

    10

    Wochenendtage

    NULL (Standard)

     

  • [ @frequency_relative_interval = ] frequency_relative_interval
    Das Datum des Merge-Agents. Dieser Parameter wird verwendet, wenn frequency_type auf 32 (monatlich, relativ) festgelegt wird. frequency_relative_interval ist vom Datentyp int. Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    1

    Erster

    2

    Zweiter

    4

    Dritter

    8

    Vierter

    16

    Letzter

    NULL (Standard)

     

  • [ @frequency_recurrence_factor = ] frequency_recurrence_factor
    Der von frequency_type verwendete Wiederholungsfaktor. frequency_recurrence_factor ist vom Datentyp int und hat den Standardwert NULL.

  • [ @frequency_subday=] frequency_subday
    Die Häufigkeit der erneuten Planung während des definierten Zeitraumes. frequency_subday ist vom Datentyp int. Die folgenden Werte sind möglich:

    Wert

    Beschreibung

    1

    Einmal

    2

    Sekunde

    4

    Minute

    8

    Stunde

    NULL (Standard)

     

  • [ @frequency_subday_interval=] frequency_subday_interval
    Das Intervall für frequency_subday. frequency_subday_interval ist vom Datentyp int und hat den Standardwert NULL.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Die Tageszeit, zu der der Merge-Agent zum ersten Mal geplant ist. Dabei wird das Format HHMMSS verwendet. active_start_time_of_day ist vom Datentyp int und hat den Standardwert NULL.

  • [ @active_end_time_of_day=] active_end_time_of_day
    Die Tageszeit, ab der der Merge-Agent nicht mehr geplant ist. Dabei wird das Format HHMMSS verwendet. active_end_time_of_day ist vom Datentyp int und hat den Standardwert NULL.

  • [ @active_start_date = ] active_start_date
    Das Datum, an dem der Merge-Agent zum ersten Mal geplant ist. Dabei wird das Format YYYYMMDD verwendet. active_start_date ist vom Datentyp int und hat den Standardwert NULL.

  • [ @active_end_date = ] active_end_date
    Das Datum, ab dem der Merge-Agent nicht mehr geplant ist. Dabei wird das Format YYYYMMDD verwendet. active_end_date ist vom Datentyp int und hat den Standardwert NULL.

  • [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
    Gibt an, ob das Abonnement mit der Synchronisierungsverwaltung von Windows synchronisiert werden kann. enabled_for_syncmgr ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE. Bei false wird das Abonnement nicht bei der Synchronisierungsverwaltung registriert. Bei true wird das Abonnement bei der Synchronisierungsverwaltung registriert und kann synchronisiert werden, ohne SQL Server Management Studio zu starten.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addmergepushsubscription_agent wird für die Mergereplikation verwendet und verwendet ähnliche Funktionen wie sp_addpushsubscription_agent.

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".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica'; 
SET @hostname = N'adventure-works\david8'

-- Add a push subscription to a merge publication.
USE [AdventureWorks]
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'push',
  @hostname = @hostname;

--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

Berechtigungen

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