sp_addpublication_snapshot (Transact-SQL)
Crée l'Agent d'instantané pour la publication spécifiée. Cette procédure stockée est exécutée au niveau du serveur de publication dans la base de données de publication.
Remarque relative à la sécurité |
---|
Lors de la configuration d'un serveur de publication avec un serveur de distribution distant, les valeurs fournies pour tous les paramètres, y compris job_login et job_password, sont envoyées en texte brut au serveur de distribution. Vous devriez chiffrer la connexion entre le serveur de publication et son serveur de distribution distant avant d'exécuter cette procédure stockée. Pour plus d'informations, consultez Activer les connexions chiffrées dans le moteur de base de données (Gestionnaire de configuration SQL Server). |
Conventions de la syntaxe de Transact-SQL
Syntaxe
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' ]
Arguments
[ @publication=] 'publication'
Nom de la publication. publication est de type sysname et n'a pas de valeur par défaut.[ @frequency_type=] frequency_type
Fréquence à laquelle l'Agent d'instantané est exécuté. frequency_type est de type int et peut prendre l'une des valeurs suivantes.Valeur
Description
1
Une seule fois.
4 (valeur par défaut)
Tous les jours.
8
Toutes les semaines.
16
Tous les mois.
32
Tous les mois, en fonction de l'intervalle de fréquence.
64
Au démarrage de l'Agent SQL Server.
128
Exécution pendant une période d'inactivité de l'ordinateur.
[ @frequency_interval=] frequency_interval
Valeur appliquée à la fréquence définie par frequency_type. frequency_interval est de type int et peut prendre l'une des valeurs suivantes.Valeur de frequency_type
Effet sur frequency_interval
1
frequency_interval n'est pas utilisé.
4 (par défaut)
Tous les frequency_interval jours, la valeur par défaut étant tous les jours.
8
frequency_interval prend une ou plusieurs des valeurs suivantes (combinées avec un opérateur logique | (OR au niveau du bit)) :
1 = Dimanche |
2 = Lundi |
4 = Mardi |
8 = Mercredi |
16 = Jeudi |
32 = Vendredi |
64 = Samedi
16
Le jour défini par l'argument frequency_interval.
32
frequency_interval prend l'une des valeurs suivantes :
1 = Dimanche |
2 = Lundi |
3 = Mardi |
4 = Mercredi |
5 = Jeudi |
6 = Vendredi |
7 = Samedi |
8 = Jour |
9 = Jour de semaine |
10 = Jour de week-end
64
frequency_interval n'est pas utilisé.
128
frequency_interval n'est pas utilisé.
[ @frequency_subday=] frequency_subday
Unité de freq_subday_interval. frequency_subday est de type int et peut prendre l'une des valeurs suivantes.Valeur
Description
1
Une fois
2
Seconde
4 (valeur par défaut)
Minute
8
Heure
[ @frequency_subday_interval=] frequency_subday_interval
Intervalle pour frequency_subday. frequency_subday_interval est de type int, avec 5 comme valeur par défaut (= toutes les 5 minutes).[ @frequency_relative_interval=] frequency_relative_interval
Date d'exécution de l'Agent d'instantané. frequency_relative_interval est de type int, avec 1 comme valeur par défaut.[ @frequency_recurrence_factor=] frequency_recurrence_factor
Facteur de récurrence utilisé par frequency_type. frequency_recurrence_factor est de type int, avec 0 comme valeur par défaut.[ @active_start_date=] active_start_date
Date à laquelle l’Agent d'instantané est planifié pour la première fois, au format AAAAMMJJ. active_start_date est de type int, avec 0 comme valeur par défaut.[ @active_end_date=] active_end_date
Date à laquelle l’Agent d'instantané cesse d'être planifié, au format AAAAMMJJ. active_end_date est de type int, avec 99991231 comme valeur par défaut (ce qui correspond au 31 décembre 9999).[ @active_start_time_of_day=] active_start_time_of_day
Heure à laquelle l’Agent d'instantané est planifié pour la première fois, au format HHMMSS. active_start_time_of_day est de type int, avec 0 comme valeur par défaut.[ @active_end_time_of_day=] active_end_time_of_day
Heure à laquelle l’Agent d'instantané cesse d'être planifié, au format HHMMSS. active_end_time_of_day est de type int, avec 235959 comme valeur par défaut (ce qui correspond à 23:59:59 avec un affichage horaire au format 24 heures).[ @snapshot_job_name = ] 'snapshot_agent_name'
Nom d'un travail existant de l'Agent d'instantané si un travail existant est en cours d'utilisation. snapshot_agent_name est de type nvarchar(100), avec NULL comme valeur par défaut. Ce paramètre est réservé à un usage interne et ne doit pas être spécifié lors de la création d'une nouvelle publication. Si snapshot_agent_name est spécifié, la valeur de job_login et de job_password doit être NULL.[ @publisher_security_mode= ] publisher_security_mode
Mode de sécurité utilisé par l'agent lors de la connexion au serveur de publication. publisher_security_mode est de type smallint, avec 1 comme valeur par défaut. 0 spécifie l'authentification SQL Server et 1 l'authentification Windows. La valeur 0 doit être spécifiée pour les serveurs de publication non-SQL Server. Lorsque c'est possible, utilisez l'authentification Windows.[ @publisher_login= ] 'publisher_login'
Connexion au serveur de publication. publisher_login est de type sysname, avec NULL comme valeur par défaut. publisher_login doit être spécifié lorsque publisher_security_mode a la valeur 0. Si publisher_login prend la valeur NULL et que publisher_security_modeest défini sur 1, le compte Windows spécifié dans job_login est utilisé lors de la connexion au serveur de publication.[ @publisher_password= ] 'publisher_password'
Mot de passe utilisé lors de la connexion au serveur de publication. publisher_password est de type sysname, avec NULL comme valeur par défaut.Remarque relative à la sécurité Ne stockez pas d'informations d'authentification dans des fichiers de script. Pour améliorer la sécurité, nous vous recommandons de fournir les noms de connexion et les mots de passe au moment de l'exécution.
[ @job_login= ] 'job_login'
Nom de connexion du compte Windows sous lequel l'Agent s'exécute. job_login est de type nvarchar(257), avec NULL comme valeur par défaut. Ce compte Windows est toujours utilisé pour les connexions de l'Agent au serveur de distribution. Vous devez spécifier ce paramètre lors de la création d'un nouveau travail de l'Agent d'instantané.[!REMARQUE]
Pour les serveurs de publication non-SQL Server, le nom de connexion doit être identique à celui défini dans sp_adddistpublisher (Transact-SQL).
[ @job_password= ] 'job_password'
Mot de passe du compte Windows sous lequel l'Agent s'exécute. job_password est de type sysname et n'a pas de valeur par défaut. Vous devez fournir ce paramètre lorsque vous créez un nouveau travail d'Agent d'instantané.Remarque relative à la sécurité Ne stockez pas les informations d'authentification dans des fichiers script. Pour améliorer la sécurité, nous vous recommandons de fournir des noms de connexion et des mots de passe au moment de l'exécution.
[ @publisher= ] 'publisher'
Spécifie un serveur de publication non SQL Server. publisher est de type sysname, avec NULL comme valeur par défaut.[!REMARQUE]
publisher ne doit pas être utilisé lors de la création d'un Agent d'instantané sur un serveur de publication SQL Server.
Valeurs des codes de retour
0 (succès) ou 1 (échec)
Notes
sp_addpublication_snapshot est utilisée dans la réplication transactionnelle, d'instantané et de fusion.
Exemple
-- 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
Autorisations
Seuls les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent exécuter sp_addpublication_snapshot.
Voir aussi
Référence
sp_addpublication (Transact-SQL)
sp_changepublication_snapshot (Transact-SQL)
sp_startpublication_snapshot (Transact-SQL)
Procédures stockées de réplication (Transact-SQL)