sp_addpublication_snapshot (Transact-SQL)
Erstellt den Snapshot-Agent für die angegebene Veröffentlichung. Diese gespeicherte Prozedur wird beim Verleger mit der 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 Verschlüsseln von Verbindungen zu SQL Server. |
Syntax
sp_addpublication_snapshot [ @publication= ] 'publication'
[ , [ @frequency_type= ] frequency_type ]
[ , [ @frequency_interval= ] frequency_interval ]
[ , [ @frequency_subday= ] frequency_subday ]
[ , [ @frequency_subday_interval= ] frequency_subday_interval ]
[ , [ @frequency_relative_interval= ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor= ] frequency_recurrence_factor ]
[ , [ @active_start_date= ] active_start_date ]
[ , [ @active_end_date= ] active_end_date ]
[ , [ @active_start_time_of_day= ] active_start_time_of_day ]
[ , [ @active_end_time_of_day= ] active_end_time_of_day ]
[ , [ @snapshot_job_name = ] 'snapshot_agent_name' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] 'publisher_login' ]
[ , [ @publisher_password = ] 'publisher_password' ]
[ , [ @job_login = ] 'job_login' ]
[ , [ @job_password = ] 'job_password' ]
[ , [ @publisher = ] 'publisher' ]
Argumente
[ @publication=] 'publication'
Der Name der Veröffentlichung. publication ist vom Datentyp sysname und hat keinen Standardwert.[ @frequency_type=] frequency_type
Die Häufigkeit für die Ausführung des Snapshot-Agents. frequency_type ist vom Datentyp int. Die folgenden Werte sind möglich:Wert
Beschreibung
1
Einmal
4 (Standardwert)
Täglich
8
Wöchentlich
16
Monatlich
32
Monatlich, relativ zum Häufigkeitsintervall.
64
Wenn der SQL Server-Agent gestartet wird.
128
Ausführen, wenn sich der Computer im Leerlauf befindet
[ @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 kann einen der folgenden Werte annehmen.Wert für frequency_type
Auswirkung auf frequency_interval
1
frequency_interval wird nicht verwendet.
4 (Standardwert)
Alle frequency_interval Tage; der Standard ist täglich.
8
frequency_interval kann einen oder mehrere der folgenden Werte aufweisen (verknüpft mit dem logischen Operator | (Bitweises OR)):
1 = Sonntag |
2 = Montag |
4 = Dienstag |
8 = Mittwoch |
16 = Donnerstag |
32 = Freitag |
64 = Samstag
16
Am frequency_interval-Tag des Monats.
32
frequency_interval ist einer der folgenden Werte:
1 = Sonntag |
2 = Montag |
3 = Dienstag |
4 = Mittwoch |
5 = Donnerstag |
6 = Freitag |
7 = Samstag |
8 = Tag |
9 = Arbeitstag |
10 = Wochenendtag
64
frequency_interval wird nicht verwendet.
128
frequency_interval wird nicht verwendet.
[ @frequency_subday=] frequency_subday
Die Einheit für freq_subday_interval. frequency_subday ist vom Datentyp int. Die folgenden Werte sind möglich.Wert
Beschreibung
1
Einmal
2
Sekunde
4 (Standardwert)
Minute
8
Hour
[ @frequency_subday_interval=] frequency_subday_interval
Das Intervall für frequency_subday. frequency_subday_interval ist vom Datentyp int und hat den Standardwert 5 (alle 5 Minuten).[ @frequency_relative_interval=] frequency_relative_interval
Das Datum, an dem der Snapshot-Agent ausgeführt wird. frequency_relative_interval ist vom Datentyp int und hat den Standardwert 1.[ @frequency_recurrence_factor=] frequency_recurrence_factor
Der von frequency_type verwendete Wiederholungsfaktor. frequency_recurrence_factor ist vom Datentyp int und hat den Standardwert 0.[ @active_start_date=] active_start_date
Das Datum, an dem der Snapshot-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 Snapshot-Agent nicht mehr geplant ist. Dabei wird das Format YYYYMMDD verwendet. active_end_date ist vom Datentyp int und hat den Standardwert 99991231, womit der 31. Dezember 9999 gemeint ist.[ @active_start_time_of_day=] active_start_time_of_day
Die Tageszeit, zu der der Snapshot-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 Snapshot-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, womit 23:59:59 Uhr des 24-Stunden-Systems gemeint ist.[ @snapshot_job_name = ] 'snapshot_agent_name'
Der Name eines vorhandenen Snapshot-Agent-Auftrags, wenn ein vorhandener Auftrag verwendet wird. snapshot_agent_name ist vom Datentyp nvarchar(100) und hat den Standardwert NULL. Dieser Parameter dient der internen Verwendung und sollte beim Erstellen einer neuen Veröffentlichung nicht angegeben werden. Wenn snapshot_agent_name angegeben wird, müssen job_login und job_password den Wert NULL haben.[ @publisher_security_mode= ] publisher_security_mode
Der vom Agent beim Herstellen der Verbindung mit dem Verleger verwendete Sicherheitsmodus. publisher_security_mode ist vom Datentyp smallint und hat den Standardwert 1. 0 legt die SQL Server-Authentifizierung fest und 1 die Windows-Authentifizierung. Für Nicht-SQL Server-Verleger muss ein Wert von 0 angegeben werden. Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.[ @publisher_login= ] 'publisher_login'
Der zum Herstellen der Verbindung mit dem Verleger verwendete Anmeldename. publisher_login ist vom Datentyp sysname und hat den Standardwert NULL. publisher_login muss angegeben werden, wenn publisher_security_mode den Wert 0 hat. Wenn publisher_login den Wert NULL und publisher_security_mode den Wert 1 aufweist, wird das in job_login angegebene Windows-Konto für die Verbindung mit dem Verleger verwendet.[ @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.Sicherheitshinweis Authentifizierungsinformationen sollten nicht in Skriptdateien gespeichert werden. Es wird empfohlen, Anmeldenamen und Kennwörter zur Laufzeit bereitzustellen, um die Sicherheit zu verbessern.
[ @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 Agent-Verbindungen mit dem Verteiler verwendet. Dieser Parameter muss beim Erstellen eines neuen Snapshot-Agent-Auftrags angegeben werden.Hinweis Bei Nicht-SQL Server-Verlegern muss es sich dabei um den Anmeldenamen handeln, der in sp_adddistpublisher (Transact-SQL) festgelegt ist.
[ @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 den Standardwert NULL. Dieser Parameter muss beim Erstellen eines neuen Snapshot-Agent-Auftrags angegeben werden. Wenn job_password NULL ist und der Benutzer, der den Snapshot erstellt, die Rolle sysadmin hat, wird der Parameter standardmäßig auf das Konto festgelegt, unter dem der SQL-Server-Agent ausgeführt wird.Sicherheitshinweis Authentifizierungsinformationen sollten nicht in Skriptdateien gespeichert werden. Es wird empfohlen, Anmeldenamen und Kennwörter zur Laufzeit bereitzustellen, um die Sicherheit zu verbessern.
[ @publisher= ] 'publisher'
Gibt einen Nicht-SQL Server-Verleger an. publisher ist ein Wert vom Datentyp sysname und besitzt den Standardwert NULL.Hinweis publisher sollte nicht verwendet werden, wenn ein Snapshot-Agent auf einem SQL Server-Verleger erstellt wird.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
sp_addpublication_snapshot wird bei der Snapshotreplikation, Transaktionsreplikation und Mergereplikation verwendet.
Beispiel
-- To avoid storing the login and password in the script file, the values
-- are passed into SQLCMD as scripting variables. 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 @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks';
SET @publication = N'AdvWorksProductTran';
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login);
-- This should be passed at runtime.
SET @password = $(Password);
-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption
@dbname=@publicationDB,
@optname=N'publish',
@value = N'true';
-- Execute sp_addlogreader_agent to create the agent job.
EXEC sp_addlogreader_agent
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
-- Create a new transactional publication with the required properties.
EXEC sp_addpublication
@publication = @publication,
@status = N'active',
@allow_push = N'true',
@allow_pull = N'true',
@independent_agent = N'true';
-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
GO
Berechtigungen
Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_addpublication_snapshot ausführen.
Siehe auch