sp_addpushsubscription_agent (Transact-SQL)
Fügt einen neuen geplanten Agentauftrag hinzu, der zum Synchronisieren eines Pushabonnements mit einer Transaktionsveröffentlichung verwendet wird. Diese gespeicherte Prozedur wird auf dem Verleger für die Veröffentlichungsdatenbank ausgeführt.
Sicherheitshinweis |
---|
Beim Konfigurieren 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 zugehörigen Remoteverteiler verschlüsseln, bevor Sie diese gespeicherte Prozedur ausführen. Weitere Informationen finden Sie unter Aktivieren von verschlüsselten Verbindungen zum Datenbankmodul (SQL Server-Konfigurations-Manager). |
Transact-SQL-Syntaxkonventionen
Syntax
sp_addpushsubscription_agent [ @publication= ] 'publication'
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db = ] 'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] 'subscriber_login' ]
[ , [ @subscriber_password = ] 'subscriber_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 ]
[ , [ @dts_package_name = ] 'dts_package_name' ]
[ , [ @dts_package_password = ] 'dts_package_password' ]
[ , [ @dts_package_location = ] 'dts_package_location' ]
[ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]
[ , [ @distribution_job_name = ] 'distribution_job_name' ]
[ , [ @publisher = ] 'publisher' ]
[ , [ @subscriber_provider = ] 'subscriber_provider' ]
[ , [ @subscriber_datasrc = ] 'subscriber_datasrc' ]
[ , [ @subscriber_location = ] 'subscriber_location' ]
[ , [ @subscriber_provider_string = ] 'subscriber_provider_string' ]
[ , [ @subscriber_catalog = ] 'subscriber_catalog' ]
Argumente
[ @publication =] 'publication'
Der Name der Veröffentlichung. publication ist vom Datentyp sysname und hat keinen Standardwert.[ @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. Geben Sie für einen Nicht-SQL Server-Abonnenten den Wert (Standardziel) für subscriber_db an.[ @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. Der Standardwert ist 1. 0 gibt die SQL Server-Authentifizierung an. Mit 1 wird die Windows-Authentifizierung angegeben.Sicherheitshinweis 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. Verwenden Sie für alle anderen Abonnements die Windows-Authentifizierung.
[ @subscriber_login =] 'subscriber_login'
Der Anmeldename des Abonnenten, der beim Synchronisieren zum Herstellen der Verbindung mit einem Abonnenten verwendet wird. subscriber_login ist vom Datentyp sysname und hat den Standardwert NULL.[ @subscriber_password =] 'subscriber_password'
Das Kennwort des Abonnenten. subscriber_password ist erforderlich, wenn subscriber_security_mode auf 0 festgelegt ist. subscriber_password ist vom Datentyp sysname und hat den Standardwert NULL. Bei Verwendung eines Abonnentenkennworts wird dieses automatisch verschlüsselt.Sicherheitshinweis Verwenden Sie kein leeres Kennwort. Verwenden Sie ein sicheres Kennwort. 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 den nicht autorisierten Zugriff zu verhindern.
[ @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 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.Sicherheitshinweis Fordern Sie nach Möglichkeit die Benutzer zur Laufzeit auf, die Sicherheitsanmeldeinformationen einzugeben. 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 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.[ @frequency_type = ] frequency_type
Die Häufigkeit für die Zeitplanung des Verteilungs-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 (Standard)
Autostart
128
Wiederholt
Hinweis Durch die Angabe des Werts 64 wird der Verteilungs-Agent im fortlaufenden Modus ausgeführt. Dies entspricht dem Festlegen des -Continuous-Parameters für den Agent. Weitere Informationen finden Sie unter Replikationsverteilungs-Agent.
[ @frequency_interval = ] frequency_interval
Der Wert, der auf die durch frequency_type festgelegte Häufigkeit angewendet werden soll. frequency_interval ist vom Datentyp int. Der Standardwert ist 1.[ @frequency_relative_interval = ] frequency_relative_interval
Das Datum des Verteilungs-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 (Standard)
Erster
2
Zweiter
4
Dritter
8
Vierter
16
Letzter
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Der von frequency_type verwendete Wiederholungsfaktor. frequency_recurrence_factor ist vom Datentyp int. Der Standardwert ist 0.[ @frequency_subday = ] frequency_subday
Die Häufigkeit für die erneute geplante Ausführung während des definierten Zeitraums. frequency_subday ist vom Datentyp int. Die folgenden Werte sind möglich:Wert
Beschreibung
1
Einmal
2
Zweimal
4 (Standard)
Minute
8
Stunde
[ @frequency_subday_interval = ] frequency_subday_interval
Das Intervall für frequency_subday. frequency_subday_interval ist vom Datentyp int. Der Standardwert ist 5.[ @active_start_time_of_day = ] active_start_time_of_day
Die Tageszeit, zu der der Verteilungs-Agent zum ersten Mal geplant ist. Dabei wird das Format HHMMSS verwendet. active_start_time_of_day ist vom Datentyp int. Der Standardwert ist 0.[ @active_end_time_of_day = ] active_end_time_of_day
Die Tageszeit, ab der der Verteilungs-Agent nicht mehr geplant ist. Dabei wird das Format HHMMSS verwendet. active_end_time_of_day ist vom Datentyp int. Der Standardwert ist 235959.[ @active_start_date = ] active_start_date
Das Datum, an dem der Verteilungs-Agent zum ersten Mal geplant ist. Dabei wird das Format JJJJMMTT verwendet. active_start_date ist vom Datentyp int. Der Standardwert ist 0.[ @active_end_date = ] active_end_date
Das Datum, ab dem der Verteilungs-Agent nicht mehr geplant ist. Dabei wird das Format JJJJMMTT verwendet. active_end_date ist vom Datentyp int. Der Standardwert ist 99991231.[ @dts_package_name = ] 'dts_package_name'
Gibt den Namen des DTS-Pakets (Data Transformation Services) an. dts_package_name ist vom Datentyp sysname und hat den Standardwert NULL. Zum Angeben des Paketnamens DTSPub_Package wird beispielsweise der @dts\_package\_name = N'DTSPub_Package'-Parameter verwendet.[ @dts_package_password = ] 'dts_package_password'
Gibt das zum Ausführen des Pakets erforderliche Kennwort an. dts_package_password ist vom Datentyp sysname und hat den Standardwert NULL.Hinweis Sie müssen ein Kennwort angeben, wenn dts_package_name angegeben wird.
[ @dts_package_location = ] 'dts_package_location'
Gibt den Paketspeicherort an. dts_package_location ist vom Datentyp nvarchar(12). Der Standardwert ist DISTRIBUTOR. Der Speicherort des Pakets kann distributor oder subscriber sein.[ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'
Gibt an, ob das Abonnement mit der Synchronisierungsverwaltung von Microsoft 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.[ @distribution_job_name = ] 'distribution_job_name'
Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.[ @publisher = ] 'publisher'
Der Name des Verlegers. publisher ist vom Datentyp sysname und hat den Standardwert NULL.[ @subscriber_provider= ] 'subscriber_provider'
Der eindeutige Programmbezeichner (Programmatic Identifier, PROGID), mit dem der OLE DB-Anbieter für die Nicht-SQL Server-Datenquelle registriert wird. subscriber_provider ist vom Datentyp sysname und hat den Standardwert NULL. subscriber_provider muss für den auf dem Verteiler installierten OLE DB-Anbieter eindeutig sein. subscriber_provider wird nur für Nicht-SQL Server-Abonnenten unterstützt.[ @subscriber_datasrc= ] 'subscriber_datasrc'
Der Name der Datenquelle im vom OLE DB-Anbieter unterstützten Format. subscriber_datasrc ist vom Datentyp nvarchar(4000) und hat den Standardwert NULL. subscriber_datasrc wird als DBPROP_INIT_DATASOURCE-Eigenschaft übergeben, um den OLE DB-Anbieter zu initialisieren. subscriber_datasrc wird nur für Nicht-SQL Server-Abonnenten unterstützt.[ @subscriber_location= ] 'subscriber_location'
Der Speicherort der Datenbank im vom OLE DB-Anbieter unterstützten Format. subscriber_location ist vom Datentyp nvarchar(4000) und hat den Standardwert NULL. subscriber_location wird als DBPROP_INIT_LOCATION-Eigenschaft übergeben, um den OLE DB-Anbieter zu initialisieren. subscriber_location wird nur für Nicht-SQL Server-Abonnenten unterstützt.[ @subscriber_provider_string= ] 'subscriber_provider_string'
Die für den OLE DB-Anbieter spezifische Verbindungszeichenfolge zum Identifizieren der Datenquelle. subscriber_provider_string ist vom Datentyp nvarchar(4000) und hat den Standardwert NULL. subscriber_provider_string wird an IDataInitialize übergeben oder als DBPROP_INIT_PROVIDERSTRING-Eigenschaft festgelegt, um den OLE DB-Anbieter zu initialisieren. subscriber_provider_string wird nur für Nicht-SQL Server-Abonnenten unterstützt.[ @subscriber_catalog= ] 'subscriber_catalog'
Der beim Herstellen einer Verbindung mit dem OLE DB-Anbieter zu verwendende Katalog. subscriber_catalog ist vom Datentyp sysname und hat den Standardwert NULL. subscriber_catalog wird als DBPROP_INIT_CATALOG-Eigenschaft übergeben, um den OLE DB-Anbieter zu initialisieren. subscriber_catalog wird nur für Nicht-SQL Server-Abonnenten unterstützt.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
sp_addpushsubscription_agent wird bei der Momentaufnahme- und Transaktionsreplikation verwendet.
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;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorks2012Replica';
--Add a push subscription to a transactional publication.
USE [AdventureWorks2012]
EXEC sp_addsubscription
@publication = @publication,
@subscriber = @subscriber,
@destination_db = @subscriptionDB,
@subscription_type = N'push';
--Add an agent job to synchronize the push subscription.
EXEC sp_addpushsubscription_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_addpushsubscription_agent ausführen.
Siehe auch
Verweis
Gespeicherte Replikationsprozeduren (Transact-SQL)
sp_addsubscription (Transact-SQL)
sp_changesubscription (Transact-SQL)
sp_dropsubscription (Transact-SQL)
sp_helpsubscription (Transact-SQL)
Konzepte
Erstellen eines Pushabonnements
Erstellen eines Abonnements für einen Nicht-SQL Server-Abonnenten