sp_addpublication_snapshot (Transact-SQL)
Erstellt den Momentaufnahme-Agent für die angegebene Veröffentlichung. 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_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 Momentaufnahme-Agents. frequency_type ist vom Datentyp int. Die folgenden Werte sind möglich:Wert
Beschreibung
1
Einmal
4 (Standard)
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. Die folgenden Werte sind möglich: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
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 und hat den Standardwert 5 (alle 5 Minuten).[ @frequency_relative_interval=] frequency_relative_interval
Das Datum, an dem der Momentaufnahme-Agent ausgeführt wird. frequency_relative_interval ist vom Datentyp int. Der Standardwert ist 1.[ @frequency_recurrence_factor=] frequency_recurrence_factor
Der von frequency_type verwendete Wiederholungsfaktor. frequency_recurrence_factor ist vom Datentyp int. Der Standardwert ist 0.[ @active_start_date=] active_start_date
Das Datum, an dem der Momentaufnahme-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 Momentaufnahme-Agent nicht mehr geplant ist. Dabei wird das Format JJJJMMTT verwendet. active_end_date ist vom Datentyp int und hat den Standardwert 99991231 (31. Dezember 9999).[ @active_start_time_of_day=] active_start_time_of_day
Die Tageszeit, zu der der Momentaufnahme-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 Momentaufnahme-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 (23:59:59 Uhr im 24-Stunden-Format).[ @snapshot_job_name = ] 'snapshot_agent_name'
Der Name eines vorhandenen Auftrags des Momentaufnahme-Agents, 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. Der Standardwert ist 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 Anmeldename, der beim Herstellen der Verbindung mit dem Verleger verwendet wird. publisher_login ist vom Datentyp sysname und hat den Standardwert NULL. publisher_login muss angegeben werden, wenn publisher_security_mode 0 ist. 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 Kennwort, das beim Herstellen der Verbindung mit dem Verleger verwendet wird. 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 Auftrags des Momentaufnahme-Agents 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 keinen Standardwert. Sie müssen diesen Parameter angeben, wenn Sie einen neuen Auftrag des Momentaufnahme-Agents erstellen.Sicherheitshinweis Speichern Sie keine Authentifizierungsinformationen in Skriptdateien. 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 vom Datentyp sysname und hat den Standardwert NULL.Hinweis publisher sollte nicht verwendet werden, wenn ein Momentaufnahme-Agent auf einem SQL Server-Verleger erstellt wird.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
sp_addpublication_snapshot wird bei der Momentaufnahmereplikation, 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
Verweis
sp_addpublication (Transact-SQL)
sp_changepublication_snapshot (Transact-SQL)
sp_startpublication_snapshot (Transact-SQL)
Gespeicherte Replikationsprozeduren (Transact-SQL)