sp_addmergepushsubscription_agent (Transact-SQL)
S’applique à : SQL Server Azure SQL Managed Instance
Ajoute un nouveau travail d'Agent permettant de planifier la synchronisation d'un abonnement par envoi de données (push) à une publication de fusion. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.
Important
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 au serveur de distribution sous forme de texte brut. Vous devez 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 Configurer le moteur de base de données SQL Server pour le chiffrement des connexions.
Conventions de la syntaxe Transact-SQL
Remarque
Microsoft Entra ID s'appelait Azure Active Directory (Azure AD) jusqu'à une date récente.
Syntaxe
sp_addmergepushsubscription_agent
[ @publication = ] N'publication'
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] N'subscriber_login' ]
[ , [ @subscriber_password = ] N'subscriber_password' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] N'publisher_login' ]
[ , [ @publisher_password = ] N'publisher_password' ]
[ , [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ , [ @job_name = ] N'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 ]
[ , [ @enabled_for_syncmgr = ] N'enabled_for_syncmgr' ]
[ ; ]
Arguments
[ @publication = ] N’publication'
Nom de la publication. @publication est sysname, sans valeur par défaut.
[ @subscriber = ] N’subscriber'
Nom de l'Abonné. @subscriber est sysname, avec la valeur par défaut NULL
.
[ @subscriber_db = ] N’subscriber_db'
Nom de la base de données d’abonnement. @subscriber_db est sysname, avec la valeur par défaut NULL
.
[ @subscriber_security_mode = ] subscriber_security_mode
Mode de sécurité à utiliser lors de la connexion à un Abonné lors de la synchronisation. @subscriber_security_mode est smallint, avec une valeur par défaut de 1
. Les valeurs suivantes définissent le mode de sécurité :
0
spécifie l’authentification SQL Server.1
spécifie Authentification Windows.2
spécifie l’authentification par mot de passe Microsoft Entra, à partir de SQL Server 2022 (16.x) CU 6.3
spécifie l’authentification intégrée Microsoft Entra, à compter de SQL Server 2022 (16.x) CU 6.4
spécifie l’authentification par jeton Microsoft Entra, à partir de SQL Server 2022 (16.x) CU 6.
Important
Lorsque c'est possible, utilisez l'authentification Windows.
[ @subscriber_login = ] N’subscriber_login'
Connexion de l’Abonné à utiliser lors de la connexion à un Abonné lors de la synchronisation. @subscriber_login est sysname, avec la valeur par défaut NULL
. @subscriber_login est obligatoire si @subscriber_security_mode a la valeur 0
.
[ @subscriber_password = ] N’subscriber_password'
Mot de passe de l’Abonné pour l’authentification SQL Server. @subscriber_password est sysname, avec la valeur par défaut NULL
. @subscriber_password est nécessaire si @subscriber_security_mode a la valeur 0
. Si un mot de passe d’abonné est utilisé, il est automatiquement chiffré.
Important
Lorsque c'est possible, demande aux utilisateurs de fournir les informations d'identification au moment de l'exécution. Si vous devez enregistrer les informations d'identification dans un fichier de script, vous devez sécuriser le fichier pour empêcher un accès non autorisé.
[ @publisher_security_mode = ] publisher_security_mode
Mode de sécurité à utiliser lors de la connexion à un serveur de publication lors de la synchronisation. @publisher_security_mode est smallint, avec une valeur par défaut de 1
. Les valeurs suivantes définissent le mode de sécurité :
0
spécifie l’authentification SQL Server.1
spécifie Authentification Windows.2
spécifie l’authentification par mot de passe Microsoft Entra, à partir de SQL Server 2022 (16.x) CU 6.3
spécifie l’authentification intégrée Microsoft Entra, à compter de SQL Server 2022 (16.x) CU 6.4
spécifie l’authentification par jeton Microsoft Entra, à partir de SQL Server 2022 (16.x) CU 6.
Important
Lorsque c'est possible, utilisez l'authentification Windows.
[ @publisher_login = ] N’publisher_login'
Connexion à utiliser lors de la connexion à un serveur de publication lors de la synchronisation. @publisher_login est sysname, avec la valeur par défaut NULL
.
[ @publisher_password = ] N’publisher_password'
Mot de passe utilisé lors de la connexion au serveur de publication. @publisher_password est sysname, avec la valeur par défaut NULL
.
Important
N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort. Lorsque c'est possible, demande aux utilisateurs de fournir les informations d'identification au moment de l'exécution. Si vous devez enregistrer les informations d'identification dans un fichier de script, vous devez sécuriser le fichier pour empêcher un accès non autorisé.
[ @job_login = ] N’job_login'
Connexion pour le compte Windows sous lequel l’agent s’exécute. @job_login est nvarchar(257), avec la valeur par défaut NULL
. Ce compte Windows est toujours utilisé pour les connexions d'Agent au serveur de distribution et pour les connexions à l'Abonné et au serveur de publication lors de l'utilisation de l'authentification intégrée de Windows.
[ @job_password = ] N’job_password'
Mot de passe du compte Windows sous lequel l’agent s’exécute. @job_password est sysname, sans valeur par défaut.
Important
Lorsque c'est possible, demande aux utilisateurs de fournir les informations d'identification au moment de l'exécution. Si vous devez enregistrer les informations d'identification dans un fichier de script, vous devez sécuriser le fichier pour empêcher un accès non autorisé.
[ @job_name = ] N’job_name'
Nom d’un travail d’agent existant. @job_name est sysname, avec la valeur par défaut NULL
. Ce paramètre est uniquement spécifié lorsque l'abonnement est synchronisé à l'aide d'un travail existant au lieu d'un travail nouvellement créé (option par défaut). Si vous n’êtes pas membre du rôle serveur fixe sysadmin , vous devez spécifier job_login et job_password lorsque vous spécifiez @job_name.
[ @frequency_type = ] frequency_type
Valeur indiquant quand le Agent de fusion s’exécute. @frequency_type est int et peut être l’une des valeurs suivantes.
Valeur | Description |
---|---|
1 |
Ponctuelle |
2 |
À la demande |
4 |
Quotidiennement |
8 |
Hebdomadaire |
16 |
Mensuelle |
32 |
Mensuelle relative |
64 |
Démarrage automatique |
128 |
Récurrent |
NULL (valeur par défaut) |
Remarque
La spécification d’une valeur des causes de l’exécution du 64
Agent de fusion en mode continu. Cela correspond à la définition du -Continuous
paramètre de l’agent. Pour plus d’informations, voir Replication Merge Agent.
[ @frequency_interval = ] frequency_interval
Jours où l'Agent de fusion est exécuté. @frequency_interval est int et peut être l’une des valeurs suivantes.
Valeur | Description |
---|---|
1 |
Dimanche |
2 |
Lundi |
3 |
Mardi |
4 |
Mercredi |
5 |
Jeudi |
6 |
Vendredi |
7 |
Samedi |
8 |
Day |
9 |
Jours de la semaine |
10 |
Jours de week-end |
NULL (valeur par défaut) |
[ @frequency_relative_interval = ] frequency_relative_interval
Date du Agent de fusion. Ce paramètre est utilisé lorsque @frequency_type est défini 32
sur (relatif mensuel). @frequency_relative_interval est int et peut être l’une des valeurs suivantes.
Valeur | Description |
---|---|
1 |
First |
2 |
Second |
4 |
Third |
8 |
Quatrième |
16 |
Dernière |
NULL (valeur par défaut) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Facteur de périodicité utilisé par @frequency_type. @frequency_recurrence_factor est int, avec la valeur par défaut 0
.
[ @frequency_subday = ] frequency_subday
Fréquence à replanifier pendant la période définie. @frequency_subday est int et peut être l’une des valeurs suivantes.
Valeur | Description |
---|---|
1 |
Une fois |
2 |
Second |
4 |
Minute |
8 |
Heure |
NULL (valeur par défaut) |
[ @frequency_subday_interval = ] frequency_subday_interval
Intervalle de @frequency_subday. @frequency_subday_interval est int, avec la valeur par défaut NULL
.
[ @active_start_time_of_day = ] active_start_time_of_day
Heure du jour où la Agent de fusion est planifiée pour la première fois, mise en forme comme HHmmss
. @active_start_time_of_day est int, avec la valeur par défaut 0
.
[ @active_end_time_of_day = ] active_end_time_of_day
Heure du jour où la Agent de fusion cesse d’être planifiée, mise en forme comme HHmmss
. @active_end_time_of_day est int, avec la valeur par défaut 235959
.
[ @active_start_date = ] active_start_date
Date à laquelle la Agent de fusion est planifiée pour la première fois, mise en forme en tant que yyyyMMdd
. @active_start_date est int, avec une valeur par défaut de 0
.
[ @active_end_date = ] active_end_date
Date à laquelle la Agent de fusion cesse d’être planifiée, mise en forme comme yyyyMMdd
suit : @active_end_date est int, avec une valeur par défaut de 99991231
.
[ @enabled_for_syncmgr = ] N’enabled_for_syncmgr'
Spécifie si l'abonnement peut être synchronisé à l'aide du Gestionnaire de synchronisation Windows. @enabled_for_syncmgr est nvarchar(5), avec la valeur par défaut false
.
- Si
false
, l’abonnement n’est pas inscrit auprès du Gestionnaire de synchronisation. - Si
true
, l’abonnement est inscrit auprès du Gestionnaire de synchronisation et peut être synchronisé sans démarrer SQL Server Management Studio.
Valeurs des codes de retour
0
(réussite) or 1
(échec).
Notes
sp_addmergepushsubscription_agent
est utilisé dans la réplication de fusion et utilise des fonctionnalités similaires à sp_addpushsubscription_agent.
Exemples
-- 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;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';
SET @hostname = N'adventure-works\david8'
-- Add a push subscription to a merge publication.
USE [AdventureWorks2022];
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@hostname = @hostname;
--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = $(Login),
@job_password = $(Password);
GO
autorisations
Seuls les membres du rôle serveur fixe sysadmin ou db_owner rôle de base de données fixe peuvent s’exécuter sp_addmergepushsubscription_agent
.