sp_addmergepullsubscription_agent (Transact-SQL)
Gilt für: SQL Server Azure SQL Managed Instance
Fügt einen neuen Agentauftrag für die geplante Synchronisierung eines Pullabonnements mit einer Mergeveröffentlichung hinzu. Diese gespeicherte Prozedur wird beim Abonnenten in der Abonnementdatenbank ausgeführt.
Transact-SQL-Syntaxkonventionen
Syntax
sp_addmergepullsubscription_agent
[ [ @name = ] N'name' ]
, [ @publisher = ] N'publisher'
, [ @publisher_db = ] N'publisher_db'
, [ @publication = ] N'publication'
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] N'publisher_login' ]
[ , [ @publisher_password = ] N'publisher_password' ]
[ , [ @publisher_encrypted_password = ] publisher_encrypted_password ]
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] N'subscriber_login' ]
[ , [ @subscriber_password = ] N'subscriber_password' ]
[ , [ @distributor = ] N'distributor' ]
[ , [ @distributor_security_mode = ] distributor_security_mode ]
[ , [ @distributor_login = ] N'distributor_login' ]
[ , [ @distributor_password = ] N'distributor_password' ]
[ , [ @encrypted_password = ] encrypted_password ]
[ , [ @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 ]
[ , [ @optional_command_line = ] N'optional_command_line' ]
[ , [ @merge_jobid = ] merge_jobid OUTPUT ]
[ , [ @enabled_for_syncmgr = ] N'enabled_for_syncmgr' ]
[ , [ @ftp_address = ] N'ftp_address' ]
[ , [ @ftp_port = ] ftp_port ]
[ , [ @ftp_login = ] N'ftp_login' ]
[ , [ @ftp_password = ] N'ftp_password' ]
[ , [ @alt_snapshot_folder = ] N'alt_snapshot_folder' ]
[ , [ @working_directory = ] N'working_directory' ]
[ , [ @use_ftp = ] N'use_ftp' ]
[ , [ @reserved = ] N'reserved' ]
[ , [ @use_interactive_resolver = ] N'use_interactive_resolver' ]
[ , [ @offloadagent = ] N'offloadagent' ]
[ , [ @offloadserver = ] N'offloadserver' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @dynamic_snapshot_location = ] N'dynamic_snapshot_location' ]
[ , [ @use_web_sync = ] use_web_sync ]
[ , [ @internet_url = ] N'internet_url' ]
[ , [ @internet_login = ] N'internet_login' ]
[ , [ @internet_password = ] N'internet_password' ]
[ , [ @internet_security_mode = ] internet_security_mode ]
[ , [ @internet_timeout = ] internet_timeout ]
[ , [ @hostname = ] N'hostname' ]
[ , [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ ; ]
Argumente
[ @name = ] N'name'
Der Name des Agents. @name ist "sysname" mit einem Standardwert von NULL
.
[ @publisher = ] N'publisher'
Der Name des Verlegerservers. @publisher ist "sysname" ohne Standard.
[ @publisher_db = ] N'publisher_db'
Der Name der Verlegerdatenbank. @publisher_db ist "sysname" ohne Standard.
[ @publication = ] N'Publikation'
Der Name der Veröffentlichung. @publication ist "sysname" ohne Standard.
[ @publisher_security_mode = ] publisher_security_mode
Der Beim Synchronisieren mit einem Publisher zu verwendende Sicherheitsmodus. @publisher_security_mode ist int, mit einem Standardwert von 1
. Die folgenden Werte definieren den Sicherheitsmodus:
0
Gibt die SQL Server-Authentifizierung an.1
gibt Windows-Authentifizierung an.2
Gibt die Microsoft Entra-Kennwortauthentifizierung ab SQL Server 2022 (16.x) CU 6 an.3
Gibt die integrierte Microsoft Entra-Authentifizierung ab SQL Server 2022 (16.x) CU 6 an.
Wichtig
Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.
[ @publisher_login = ] N'publisher_login'
Die Anmeldung, die beim Herstellen einer Verbindung mit einem Publisher bei der Synchronisierung verwendet werden soll. @publisher_login ist "sysname" mit einem Standardwert von NULL
.
[ @publisher_password = ] N'publisher_password'
Das Kennwort, das beim Herstellen einer Verbindung mit dem Publisher verwendet wird. @publisher_password ist "sysname" mit einem Standardwert von NULL
.
Wichtig
Verwenden Sie kein leeres Kennwort. Verwenden Sie ein sicheres Kennwort. 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.
[ @publisher_encrypted_password = ] publisher_encrypted_password
Das Festlegen @publisher_encrypted_password wird nicht mehr unterstützt. Der Versuch, diesen Bitparameter so festzulegen, dass 1
er zu einem Fehler führt.
[ @subscriber = ] N'subscriber'
Den Namen des Abonnenten. @subscriber ist "sysname" mit der Standardeinstellung "NULL
.
[ @subscriber_db = ] N'subscriber_db'
Der Name der Abonnementdatenbank. @subscriber_db ist "sysname" mit der Standardeinstellung "NULL
.
[ @subscriber_security_mode = ] subscriber_security_mode
Der Sicherheitsmodus, der beim Synchronisieren mit einem Abonnenten verwendet werden soll. @subscriber_security_mode ist int, mit einem Standardwert von 1
. Wenn 0
, gibt die SQL Server-Authentifizierung an. Wenn 1
, gibt die Windows-Authentifizierung an.
Hinweis
Dieser Parameter ist veraltet und wird für die Abwärtskompatibilität von Skripts beibehalten. Wird für diesen Parameter ein Wert angegeben, wird eine Warnmeldung zurückgegeben, der Wert jedoch ignoriert.
[ @subscriber_login = ] N'subscriber_login'
Die Abonnentenanmeldung, die beim Herstellen einer Verbindung mit einem Abonnenten bei der Synchronisierung verwendet werden soll. @subscriber_login ist "sysname" mit der Standardeinstellung "NULL
. @subscriber_login ist erforderlich, wenn subscriber_security_mode auf 0
.
Hinweis
Dieser Parameter ist veraltet und wird für die Abwärtskompatibilität von Skripts beibehalten. Wird für diesen Parameter ein Wert angegeben, wird eine Warnmeldung zurückgegeben, der Wert jedoch ignoriert.
[ @subscriber_password = ] N'subscriber_password'
Das Abonnentenkennwort für die SQL Server-Authentifizierung. @subscriber_password ist "sysname" mit der Standardeinstellung "NULL
. @subscriber_password ist erforderlich, wenn @subscriber_security_mode auf 0
.
Hinweis
Dieser Parameter ist veraltet und wird für die Abwärtskompatibilität von Skripts beibehalten. Wird für diesen Parameter ein Wert angegeben, wird eine Warnmeldung zurückgegeben, der Wert jedoch ignoriert.
[ @distributor = ] N'distributor'
Der Name des Distributors. @distributor ist "sysname" mit einem Standardwert von @publisher, d. h. der Publisher ist auch der Distributor.
[ @distributor_security_mode = ] distributor_security_mode
Der Sicherheitsmodus, der beim Synchronisieren mit einem Verteiler verwendet werden soll. @distributor_security_mode ist int mit einem Standardwert von 1
. Die folgenden Werte definieren den Sicherheitsmodus:
0
Gibt die SQL Server-Authentifizierung an.1
gibt Windows-Authentifizierung an.2
Gibt die Microsoft Entra-Kennwortauthentifizierung ab SQL Server 2022 (16.x) CU 6 an.3
Gibt die integrierte Microsoft Entra-Authentifizierung ab SQL Server 2022 (16.x) CU 6 an.4
Gibt die Microsoft Entra-Tokenauthentifizierung ab SQL Server 2022 (16.x) CU 6 an.
Wichtig
Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.
[ @distributor_login = ] N'distributor_login'
Der Distributor login to use when connecting to a Distributor when synchronizeizing. @distributor_login ist "sysname" mit der Standardeinstellung "NULL
. @distributor_login ist erforderlich, wenn @distributor_security_mode auf 0
.
[ @distributor_password = ] N'distributor_password'
Das Händlerkennwort. @distributor_password ist "sysname" mit einem Standardwert von NULL
. @distributor_password ist erforderlich, wenn @distributor_security_mode auf 0
.
Wichtig
Verwenden Sie kein leeres Kennwort. Verwenden Sie ein sicheres Kennwort. 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.
[ @encrypted_password = ] encrypted_password
Das Festlegen @encrypted_password wird nicht mehr unterstützt. Der Versuch, diesen Bitparameter so festzulegen, dass 1
er zu einem Fehler führt.
[ @frequency_type = ] frequency_type
Ein Wert, der angibt, wann die Merge-Agent ausgeführt wird. @frequency_type ist int und kann einer dieser Werte sein.
Wert | Beschreibung |
---|---|
1 |
Einmal |
2 |
On-Demand-Streaming |
4 |
Täglich |
8 |
Wöchentlich |
16 |
Monatlich |
32 |
Monatlich, relativ |
64 |
Autostart |
128 |
Wiederkehrend |
NULL (Standard) |
Hinweis
Gibt einen Wert an, der 64
bewirkt, dass der Merge-Agent im fortlaufenden Modus ausgeführt wird. Dies entspricht dem Festlegen des -Continuous
Parameters für den Agent. Weitere Informationen finden Sie unter Replication Merge Agent.
[ @frequency_interval = ] frequency_interval
Die Tage, an denen der Merge-Agent ausgeführt wird. @frequency_interval ist int, mit einem Standardwert von NULL
, und kann einer dieser Werte sein.
Wert | Beschreibung |
---|---|
1 |
Sonntag |
2 |
Montag |
3 |
Dienstag |
4 |
Mittwoch |
5 |
Donnerstag |
6 |
Freitag |
7 |
Samstag |
8 |
Tag |
9 |
Wochentage |
10 |
Wochenendtage |
NULL (Standard) |
[ @frequency_relative_interval = ] frequency_relative_interval
Das Datum des Merge-Agent. Dieser Parameter wird verwendet, wenn @frequency_type auf 32
(monatlich relativ) festgelegt ist. @frequency_relative_interval ist int und kann einer dieser Werte sein.
Wert | Beschreibung |
---|---|
1 |
First |
2 |
Second |
4 |
Third |
8 |
Viertes |
16 |
Last |
NULL (Standard) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Der von @frequency_type verwendete Serienfaktor. @frequency_recurrence_factor ist int mit einem Standardwert von NULL
.
[ @frequency_subday = ] frequency_subday
Wie oft während des definierten Zeitraums neu geplant wird. @frequency_subday ist int und kann einer dieser Werte sein.
Wert | Beschreibung |
---|---|
1 |
Einmal |
2 |
Second |
4 |
Minute |
8 |
Hour |
NULL (Standard) |
[ @frequency_subday_interval = ] frequency_subday_interval
Das Intervall für @frequency_subday. @frequency_subday_interval ist int, mit einem Standardwert von NULL
.
[ @active_start_time_of_day = ] active_start_time_of_day
Die Tageszeit, zu der die Merge-Agent zum ersten Mal geplant ist, formatiert als HHmmss
. @active_start_time_of_day ist int mit einem Standardwert von NULL
.
[ @active_end_time_of_day = ] active_end_time_of_day
Die Tageszeit, zu der die Merge-Agent nicht mehr geplant wird, formatiert als HHmmss
. @active_end_time_of_day ist int mit einem Standardwert von NULL
.
[ @active_start_date = ] active_start_date
Das Datum, an dem die Merge-Agent zum ersten Mal geplant ist, formatiert als yyyyMMdd
. @active_start_date ist int, mit einem Standardwert von NULL
.
[ @active_end_date = ] active_end_date
Das Datum, an dem die Merge-Agent nicht mehr geplant wird, formatiert als yyyyMMdd
. @active_end_date ist int, mit einem Standardwert von NULL
.
[ @optional_command_line = ] N'optional_command_line'
Eine optionale Eingabeaufforderung, die dem Merge-Agent bereitgestellt wird. @optional_command_line ist nvarchar(255), wobei standardmäßig eine leere Zeichenfolge vorhanden ist.
Kann zur Bereitstellung zusätzlicher Parameter für den Merge-Agent verwendet werden, wie im folgenden Beispiel gezeigt wird, bei dem das Standardtimeout für Abfragen auf 600
Sekunden erhöht wird:
@optional_command_line = N'-QueryTimeOut 600'
[ @merge_jobid = ] merge_jobid OUTPUT
Der Ausgabeparameter für die Auftrags-ID. @merge_jobid ist ein OUTPUT-Parameter vom Typ Binary(16) mit einem Standardwert von NULL
.
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Gibt an, ob das Abonnement über die Synchronisierungsverwaltung von Windows synchronisiert werden kann. @enabled_for_syncmgr ist nvarchar(5), mit einem Standardwert von false
. Wenn false
das Abonnement nicht beim Synchronisierungs-Manager registriert ist. Wenn true
das Abonnement mit dem Synchronisierungs-Manager registriert ist und ohne sql Server Management Studio synchronisiert werden kann.
[ @ftp_address = ] N'ftp_address'
Nur aus Gründen der Abwärtskompatibilität beibehalten
[ @ftp_port = ] ftp_port
Nur aus Gründen der Abwärtskompatibilität beibehalten
[ @ftp_login = ] N'ftp_login'
Nur aus Gründen der Abwärtskompatibilität beibehalten
[ @ftp_password = ] N'ftp_password'
Nur aus Gründen der Abwärtskompatibilität beibehalten
[ @alt_snapshot_folder = ] N'alt_snapshot_folder'
Gibt den Speicherort an, an dem die Momentaufnahmedateien aufzunehmen sind. @alt_snapshot_folder ist nvarchar(255), mit einem Standardwert von NULL
. Wenn NULL
die Momentaufnahmendateien vom Standardspeicherort, der von Publisher angegeben wird, aufgenommen werden.
[ @working_directory = ] N'working_directory'
Der Name des Arbeitsverzeichnisses, das zum vorübergehenden Speichern von Daten- und Schemadateien für die Publikation verwendet wird, wenn FTP zum Übertragen von Snapshotdateien verwendet wird. @working_directory ist nvarchar(255), mit einem Standardwert von NULL
.
[ @use_ftp = ] N'use_ftp'
Gibt die FTP-Verwendung anstelle des typischen Protokolls an, um Momentaufnahmen abzurufen. @use_ftp ist nvarchar(5) mit einem Standardwert von false
.
[ @reserved = ] N'reserved'
Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
[ @use_interactive_resolver = ] N'use_interactive_resolver'
Verwendet einen interaktiven Konfliktlöser, um Konflikte für alle Artikel zu lösen, die eine interaktive Auflösung ermöglichen. @use_interactive_resolver ist nvarchar(5), mit einem Standardwert von false
.
[ @offloadagent = ] N'offloadagent'
Hinweis
Dieser Parameter ist veraltet und wird für die Abwärtskompatibilität von Skripts beibehalten. Festlegen remote_agent_activation auf einen anderen Wert als false
einen Fehler.
[ @offloadserver = ] N'offloadserver'
Hinweis
Dieser Parameter ist veraltet und wird für die Abwärtskompatibilität von Skripts beibehalten. Wenn Sie remote_agent_server_name auf einen wert ungleich NULL festlegen, wird ein Fehler generiert.
[ @job_name = ] N'job_name'
Der Name eines vorhandenen Agentenauftrags. @job_name ist "sysname" mit der Standardeinstellung "NULL
. Dieser Parameter wird nur angegeben, wenn das Abonnement mithilfe eines vorhandenen Auftrags statt mit einem neu erstellten Auftrag (Standard) 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.
[ @dynamic_snapshot_location = ] N'dynamic_snapshot_location'
Entspricht dem Pfad zum Ordner, aus dem die Momentaufnahmedateien gelesen werden, wenn eine gefilterte Datenmomentaufnahme zu verwenden ist. @dynamic_snapshot_location ist nvarchar(260), wobei die Standardeinstellung istNULL
. Weitere Informationen finden Sie unter Parameterisierte Filter – Parametrisierte Zeilenfilter.
[ @use_web_sync = ] use_web_sync
Gibt an, dass die Websynchronisierung aktiviert wird. @use_web_sync ist bit, mit einem Standardwert von 0
. 1
Gibt an, dass das Pullabonnement mithilfe von HTTP über das Internet synchronisiert werden kann.
[ @internet_url = ] N'internet_url'
Der Speicherort des Replikationslisteners (REPLISAPI.DLL) für die Websynchronisierung. @internet_url ist nvarchar(260), mit einem Standardwert von NULL
. @internet_url ist eine vollqualifizierte URL im Formathttp://server.domain.com/directory/replisapi.dll
. Wenn der Server so konfiguriert ist, dass er einen anderen Port als Port 80 überwacht, muss auch die Portnummer im Format http://server.domain.com:<portnumber>/directory/replisapi.dll
angegeben werden, wobei <portnumber>
den Port darstellt.
[ @internet_login = ] N'internet_login'
Die Anmeldung, die vom Merge-Agent beim Herstellen einer Verbindung mit dem Webserver verwendet wird, der die Websynchronisierung mithilfe der HTTP-Standardauthentifizierung hosten soll. @internet_login ist "sysname" mit der Standardeinstellung "NULL
.
[ @internet_password = ] N'internet_password'
Das Kennwort, das vom Merge-Agent beim Herstellen einer Verbindung mit dem Webserver verwendet wird, der die Websynchronisierung mithilfe der HTTP-Standardauthentifizierung hosten soll. @internet_password ist nvarchar(524), wobei die Standardeinstellung istNULL
.
Wichtig
Verwenden Sie kein leeres Kennwort. Verwenden Sie ein sicheres Kennwort.
[ @internet_security_mode = ] internet_security_mode
Die Authentifizierungsmethode, die vom Merge-Agent beim Herstellen einer Verbindung mit dem Webserver während der Websynchronisierung mit HTTPS verwendet wird. @internet_security_mode ist int und kann einer dieser Werte sein.
Wert | Beschreibung |
---|---|
0 |
Die Standardauthentifizierung wird verwendet. |
1 (Standard) |
Die integrierte Windows-Authentifizierung wird verwendet. |
Hinweis
Wir empfehlen, bei der Websynchronisierung die Standardauthentifizierung zu verwenden. Um die Websynchronisierung zu verwenden, müssen Sie eine TLS-Verbindung mit dem Webserver herstellen. Weitere Informationen finden Sie unter Configure Web Synchronization.
[ @internet_timeout = ] internet_timeout
Die Zeit in Sekunden, nach der eine Websynchronisierungsanforderung abläuft. @internet_timeout ist "int" mit einer Standardeinstellung von 300
Sekunden.
[ @hostname = ] N'hostname'
Überschreibt den Wert, HOST_NAME()
wenn diese Funktion in der WHERE
Klausel eines parametrisierten Filters verwendet wird. @hostname ist "sysname" mit der Standardeinstellung "NULL
.
[ @job_login = ] N'job_login'
Die Anmeldung für das Windows-Konto, unter dem der Agent ausgeführt wird. @job_login ist nvarchar(257), mit einem Standardwert von NULL
. Für Agentverbindungen mit dem Abonnenten sowie für Verbindungen mit dem Verteiler und Verleger über die integrierte Windows-Authentifizierung wird stets dieses Windows-Konto verwendet.
[ @job_password = ] N'job_password'
Das Kennwort für das Windows-Konto, unter dem der Agent ausgeführt wird. @job_password ist "sysname" mit der Standardeinstellung "NULL
.
Achtung
Speichern Sie keine Authentifizierungsinformationen in Skriptdateien. Für die optimale Sicherheit sollten Anmeldenamen und Kennwörter zur Laufzeit bereitgestellt werden.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
sp_addmergepullsubscription_agent
wird in der Zusammenführungsreplikation verwendet und verwendet Funktionen wie sp_addpullsubscription_agent.
Ein Beispiel für die korrekte Angabe von Sicherheitseinstellungen bei der Ausführung sp_addmergepullsubscription_agent
finden Sie unter Erstellen eines Pullabonnements.
Beispiele
-- 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;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2022';
SET @hostname = N'adventure-works\david8';
-- At the subscription database, create a pull subscription
-- to a merge publication.
USE [AdventureWorks2022Replica]
EXEC sp_addmergepullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB;
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addmergepullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@distributor = @publisher,
@job_login = $(Login),
@job_password = $(Password),
@hostname = @hostname;
GO
Berechtigungen
Nur Mitglieder der festen Serverrolle sysadmin oder db_owner feste Datenbankrolle können ausgeführt werden sp_addmergepullsubscription_agent
.