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 beim Verleger mit der Veröffentlichungsdatenbank ausgeführt.
Sicherheitshinweis |
---|
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 zugehörigen Remoteverteiler verschlüsseln, bevor Sie diese gespeicherte Prozedur ausführen. Weitere Informationen finden Sie unter Verschlüsseln von Verbindungen zu SQL Server. |
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 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. 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 und hat den Standardwert 1. Mit 0 wird die SQL Server-Authentifizierung angegeben. Mit 1 wird die Windows-Authentifizierung angegeben.Sicherheitshinweis Bei Abonnements mit verzögerter Aktualisierung ü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 Abonnentenkennwort. 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.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 die Benutzer, sofern möglich, zur Laufzeit zur Eingabe von Sicherheitsanmeldeinformationen auf. 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_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 und nicht mit einem neu erstellten Auftrag (der 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 Planung 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 (Standardwert)
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 und hat den Standardwert 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 (Standardwert)
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 und hat den Standardwert 0.[ @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 (Standardwert)
Minute
8
Stunde
[ @frequency_subday_interval=] frequency_subday_interval
Das Intervall für frequency_subday. frequency_subday_interval ist vom Datentyp int und hat den Standardwert 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 und hat den Standardwert 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 und hat den Standardwert 235959.[ @active_start_date = ] active_start_date
Das Datum, an dem der Verteilungs-Agent zum ersten Mal geplant ist. Dabei wird das Format YYYYMMDD verwendet. active_start_date ist vom Datentyp int und hat den Standardwert 0.[ @active_end_date = ] active_end_date
Das Datum, ab dem der Verteilungs-Agent nicht mehr geplant ist. Dabei wird das Format YYYYMMDD verwendet. active_end_date ist vom Datentyp int und hat den Standardwert 99991231.[ @dts_package_name = ] 'dts_package_name'
Gibt den Namen des DTS-Pakets (Data Transformation Services) an. dts_package_name ist ein Wert 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'
Das Kennwort, das für die Ausführung des Pakets erforderlich ist. 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 Speicherort für das Paket an. dts_package_location ist vom Datentyp nvarchar(12) und hat den Standardwert 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 (PROGID), mit dem der OLE DB-Anbieter für die nicht SQL Server-basierte 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, wie er vom OLE DB-Anbieter interpretiert wird. 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, wie er vom OLE DB-Anbieter interpretiert wird. 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, die die Datenquelle kennzeichnet. 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 Katalog, der beim Herstellen der Verbindung mit dem OLE DB-Anbieter verwendet werden soll. 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 Snapshot- 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'AdventureWorksReplica';
--Add a push subscription to a transactional publication.
USE [AdventureWorks]
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