Partager via


sp_addmergepullsubscription_agent (Transact-SQL)

Ajoute un nouveau travail d'Agent permettant de planifier la synchronisation d'un abonnement par extraction de données (pull) à une publication de fusion. Cette procédure stockée est exécutée sur la base de données d'abonnement de l'abonné.

Icône Lien de rubrique Conventions de la syntaxe de Transact-SQL

Syntaxe

sp_addmergepullsubscription_agent [ [ @name = ] 'name' ] 
        , [ @publisher = ] 'publisher'  
        , [ @publisher_db = ] 'publisher_db' 
        , [ @publication =] 'publication' 
    [ , [ @publisher_security_mod e= ] publisher_security_mode ] 
    [ , [ @publisher_login = ] 'publisher_login' ] 
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @publisher_encrypted_password = ] publisher_encrypted_password ] 
    [ , [ @subscriber = ] 'subscriber' ] 
    [ , [ @subscriber_db = ] 'subscriber_db' ] 
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ] 
    [ , [ @subscriber_login = ] 'subscriber_login' ] 
    [ , [ @subscriber_password= ] 'subscriber_password' ] 
    [ , [ @distributor = ] 'distributor' ] 
    [ , [ @distributor_security_mode = ] distributor_security_mode ] 
    [ , [ @distributor_login = ] 'distributor_login' ] 
    [ , [ @distributor_password = ] 'distributor_password' ] 
    [ , [ @encrypted_password = ] encrypted_password ] 
    [ , [ @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 ] 
    [ , [ @optional_command_line = ] 'optional_command_line' ] 
    [ , [ @merge_jobid = ] merge_jobid ] 
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ] 
    [ , [ @ftp_address = ] 'ftp_address' ] 
    [ , [ @ftp_port = ] ftp_port ] 
    [ , [ @ftp_login = ] 'ftp_login' ] 
    [ , [ @ftp_password = ] 'ftp_password' ]  
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ] 
    [ , [ @working_directory = ] 'working_directory' ] 
    [ , [ @use_ftp = ] 'use_ftp' ] 
    [ , [ @reserved = ] 'reserved' ] 
    [ , [ @use_interactive_resolver = ] 'use_interactive_resolver' ] 
    [ , [ @offloadagent = ] 'remote_agent_activation' ] 
    [ , [ @offloadserver = ] 'remote_agent_server_name'] 
    [ , [ @job_name = ] 'job_name' ] 
    [ , [ @dynamic_snapshot_location = ] 'dynamic_snapshot_location' ]
    [ , [ @use_web_sync = ] use_web_sync ]
        [ , [ @internet_url = ] 'internet_url' ]
    [ , [ @internet_login = ] 'internet_login' ]
        [ , [ @internet_password = ] 'internet_password' ]
    [ , [ @internet_security_mode = ] internet_security_mode ]
        [ , [ @internet_timeout = ] internet_timeout ]
    [ , [ @hostname = ] 'hostname' ]
        [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 

Arguments

  • [ @name = ] 'name'
    Nom de l'agent. name est de type sysname, avec NULL comme valeur par défaut.

  • [ @publisher = ] 'publisher'
    Nom du serveur de publication. publisher est de type sysname et n'a pas de valeur par défaut.

  • [ @publisher_db = ] 'publisher_db'
    Nom de la base de données du serveur de publication. publisher_db est de type sysname et n'a pas de valeur par défaut.

  • [ @publication = ] 'publication'
    Nom de la publication. publication est de type sysname et n'a pas de valeur par défaut.

  • [ @publisher_security_mode = ] publisher_security_mode
    Mode de sécurité à utiliser lors de la connexion à un serveur de publication au cours d'une synchronisation. publisher_security_mode est de type int, avec 1 comme valeur par défaut. Une valeur de 0 indique le mode d'authentification SQL Server. La valeur 1 spécifie l'authentification Windows.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    Lorsque c'est possible, utilisez l'authentification Windows.

  • [ @publisher_login = ] 'publisher_login'
    Nom de connexion à utiliser lors de la connexion à un serveur de publication pendant la synchronisation. publisher_login est de type sysname, avec NULL comme valeur par défaut.

  • [ @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éRemarque relative à la sécurité

    N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort. Si possible, invitez les utilisateurs à entrer leurs informations d'identification au moment de l'exécution. Si vous avez besoin de stocker des informations d'identification dans un fichier de script, vous devez sécuriser ce dernier de manière à empêcher les accès non autorisés.

  • [ @publisher_encrypted_password = ]publisher_encrypted_password
    La définition de publisher_encrypted_password n'est plus prise en charge. Si vous essayez de définir ce paramètre de type bit sur 1, une erreur est retournée.

  • [ @subscriber = ] 'subscriber'
    Nom de l'abonné. subscriber est de type sysname, avec NULL comme valeur par défaut.

  • [ @subscriber_db = ] 'subscriber_db'
    Nom de la base de données d'abonnement. subscriber_db est de type sysname, avec NULL comme valeur par défaut.

  • [ @subscriber_security_mode = ] subscriber_security_mode
    Mode de sécurité à utiliser lors de la connexion à un abonné au cours d'une synchronisation. subscriber_security_mode est de type int, avec 1 comme valeur par défaut. Une valeur de 0 indique le mode d'authentification SQL Server. La valeur 1 spécifie l'authentification Windows.

    [!REMARQUE]

    Ce paramètre est déconseillé et est conservé pour la compatibilité descendante des scripts. L'Agent de fusion se connecte toujours à l'Abonné local à l'aide de l'authentification Windows. Si une valeur est spécifiée pour ce paramètre, un message d'avertissement est retourné, mais la valeur est ignorée.

  • [ @subscriber_login = ] 'subscriber_login'
    Nom de connexion de l'abonné à utiliser lors de la connexion à un abonné au cours d'une synchronisation. subscriber_login est requis si subscriber_security_mode a la valeur 0. subscriber_login est de type sysname, avec NULL comme valeur par défaut.

    [!REMARQUE]

    Ce paramètre est déconseillé et est conservé pour la compatibilité descendante des scripts. Si une valeur est spécifiée pour ce paramètre, un message d'avertissement est retourné, mais la valeur est ignorée.

  • [ @subscriber_password = ] 'subscriber_password'
    Mot de passe de l'abonné pour l'authentification SQL Server. subscriber_password est requis si subscriber_security_mode a la valeur 0. subscriber_password est de type sysname, avec NULL comme valeur par défaut.

    [!REMARQUE]

    Ce paramètre est déconseillé et est conservé pour la compatibilité descendante des scripts. Si une valeur est spécifiée pour ce paramètre, un message d'avertissement est retourné, mais la valeur est ignorée.

  • [ @distributor = ] 'distributor'
    Nom du serveur de distribution. distributor est de type sysname, avec publisher comme valeur par défaut ; autrement dit, le serveur de publication est aussi le serveur de distribution.

  • [ @distributor_security_mode = ] distributor_security_mode
    Mode de sécurité à utiliser lors de la connexion à un serveur de distribution au cours d'une synchronisation. distributor_security_mode est de type int, avec 0 comme valeur par défaut. La valeur 0 spécifie l'authentification SQL Server. La valeur 1 spécifie l'authentification Windows.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    Lorsque c'est possible, utilisez l'authentification Windows.

  • [ @distributor_login = ] 'distributor_login'
    Nom de connexion du serveur de distribution à utiliser lors de la connexion au cours d'une synchronisation. distributor_login est requis si distributor_security_mode a la valeur 0. distributor_login est de type sysname, avec NULL comme valeur par défaut.

  • [ @distributor_password = ] 'distributor_password'
    Mot de passe du serveur de distribution. distributor_password est requis si distributor_security_mode a la valeur 0. distributor_password est de type sysname, avec NULL comme valeur par défaut.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort. Si possible, invitez les utilisateurs à entrer leurs informations d'identification au moment de l'exécution. Si vous avez besoin de stocker des informations d'identification dans un fichier de script, vous devez sécuriser ce dernier de manière à empêcher les accès non autorisés.

  • [ @encrypted_password = ] encrypted_password
    La définition de encrypted_password n'est plus prise en charge. Si vous essayez de définir ce paramètre de type bit sur 1, une erreur est retournée.

  • [ @frequency_type = ] frequency_type
    Fréquence de planification de l'Agent de fusion. frequency_type est de type int et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    1

    Une fois

    2

    À la demande

    4

    Quotidienne

    8

    Hebdomadaire

    16

    Mensuelle

    32

    Mensuelle relative

    64

    Démarrage automatique

    128

    Périodique

    NULL (par défaut)

     

    [!REMARQUE]

    Si vous spécifiez une valeur de 64, l'Agent de fusion s'exécute en mode continu. Ceci correspond à la définition du paramètre -Continuous de l'Agent. Pour plus d'informations, consultez Agent de fusion de réplication.

  • [ @frequency_interval = ] frequency_interval
    Jour(s) où l'Agent de fusion s'exécute. frequency_interval est de type int et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    1

    Dimanche

    2

    Lundi

    3

    Mardi

    4

    Mercredi

    5

    Jeudi

    6

    Vendredi

    7

    Samedi

    8

    Jour

    9

    Jours de la semaine

    10

    Jours de week-end

    NULL (par défaut)

     

  • [ @frequency_relative_interval = ] frequency_relative_interval
    Date de l'Agent de fusion. Ce paramètre est utilisé lorsque frequency_type a la valeur 32 (fréquence mensuelle relative). frequency_relative_interval est de type int et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    1

    Première

    2

    Seconde

    4

    Troisième

    8

    Quatrième

    16

    Dernière

    NULL (par défaut)

     

  • [ @frequency_recurrence_factor = ] frequency_recurrence_factor
    Est le facteur de récurrence utilisé par frequency_type. frequency_recurrence_factor est de type int, avec NULL comme valeur par défaut.

  • [ @frequency_subday = ] frequency_subday
    Fréquence de replanification nécessaire pendant la période définie. frequency_subday est de type int et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    1

    Une fois

    2

    Seconde

    4

    Minute

    8

    Heure

    NULL (par défaut)

     

  • [ @frequency_subday_interval = ] frequency_subday_interval
    Est l'intervalle pour frequency_subday. frequency_subday_interval est de type int, avec NULL comme valeur par défaut.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Heure à laquelle l’Agent de fusion est planifié pour la première fois, au format HHMMSS. active_start_time_of_day est de type int, avec NULL comme valeur par défaut.

  • [ @active_end_time_of_day = ] active_end_time_of_day
    Heure à laquelle l’Agent de fusion cesse d'être planifié, au format HHMMSS. active_end_time_of_day est de type int, avec NULL comme valeur par défaut.

  • [ @active_start_date = ] active_start_date
    Date à laquelle l’Agent de fusion est planifié pour la première fois, au format AAAAMMJJ. active_start_date est de type int, avec NULL comme valeur par défaut.

  • [ @active_end_date = ] active_end_date
    Date à laquelle l’Agent de fusion cesse d'être planifié, au format AAAAMMJJ. active_end_date est de type int, avec NULL comme valeur par défaut.

  • [ @optional_command_line = ] 'optional_command_line'
    Invite de commandes facultative fournie par l'Agent de distribution. optional_command_line est de type nvarchar(255), avec NULL comme valeur par défaut. Permet de fournir des paramètres supplémentaires à l'Agent de fusion, comme dans l'exemple suivant où le délai d'expiration par défaut de la requête est augmenté jusqu'à 600 secondes :

    @optional_command_line = N'-QueryTimeOut 600'
    
  • [ @merge_jobid = ] merge_jobid
    Paramètre de sortie pour l'ID de travail. merge_jobid est de type binary(16), avec NULL comme valeur par défaut.

  • [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'
    Spécifie si l'abonnement peut être synchronisé à l'aide du Gestionnaire de synchronisation Windows. enabled_for_syncmgr est de type nvarchar(5), avec FALSE comme valeur par défaut. Si la valeur est false, l'abonnement n'est pas enregistré par le Gestionnaire de synchronisation. Si la valeur est true, l'abonnement est enregistré par le Gestionnaire de synchronisation et peut ensuite être synchronisé sans qu'il soit nécessaire de démarrer SQL Server Management Studio.

  • [ @ftp_address = ] 'ftp_address'
    Uniquement à des fins de compatibilité descendante.

  • [ @ftp_port = ] ftp_port
    Uniquement à des fins de compatibilité descendante.

  • [ @ftp_login = ] 'ftp_login'
    Uniquement à des fins de compatibilité descendante.

  • [ @ftp_password = ] 'ftp_password'
    Uniquement à des fins de compatibilité descendante.

  • [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
    Spécifie l'emplacement à partir duquel récupérer les fichiers d'instantané. alternate_snapshot_folder est de type nvarchar(255), avec NULL comme valeur par défaut. Si la valeur est NULL, les fichiers d'instantané sont extraits à partir de l'emplacement par défaut spécifié par le serveur de publication.

  • [ @working_directory = ] 'working_directory'
    Nom du répertoire de travail utilisé pour stocker temporairement les fichiers de données et de schémas de la publication lorsque le protocole FTP est utilisé pour transférer les fichiers d'instantané. working_directory est de type nvarchar(255), avec NULL comme valeur par défaut.

  • [ @use_ftp = ] 'use_ftp'
    Spécifie que le protocole FTP est utilisé à la place du protocole normal pour l'extraction des instantanés. use_ftp est de type nvarchar(5), avec FALSE comme valeur par défaut.

  • [ @reserved = ] 'reserved'
    Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

  • [ @use_interactive_resolver = ] 'use_interactive_resolver' ]
    Utilise la résolution interactive des conflits pour tous les articles autorisant la résolution interactive. use_interactive_resolver est de type nvarchar(5), avec FALSE comme valeur par défaut.

  • [ @offloadagent = ] 'remote_agent_activation'

    [!REMARQUE]

    L'activation d'agent distant est déconseillée et n'est plus prise en charge. Ce paramètre est uniquement pris en charge pour assurer la compatibilité descendante des scripts. Si vous donnez au paramètre remote_agent_activation une valeur autre que false, une erreur est retournée.

  • [ @offloadserver = ] 'remote_agent_server_name'

    [!REMARQUE]

    L'activation d'agent distant est déconseillée et n'est plus prise en charge. Ce paramètre est uniquement pris en charge pour assurer la compatibilité descendante des scripts. Si vous donnez au paramètre remote_agent_server_name une valeur autre que NULL, une erreur est retournée.

  • [ @job_name = ] 'job_name' ]
    Nom d'un travail de l'agent existant. job_name est de type sysname, avec NULL comme valeur par défaut. Ce paramètre n'est indiqué que lorsque l'abonnement est synchronisé grâce à un travail existant plutôt qu'un nouveau travail (étant le comportement par défaut). Si vous n'êtes pas membre du rôle serveur fixe sysadmin, vous devez définir les arguments job_login et job_password lorsque vous spécifiez job_name.

  • [ @dynamic_snapshot_location = ] 'dynamic_snapshot_location' ]
    Chemin d'accès au dossier à partir duquel les fichiers d'instantané sont lus en cas d'utilisation d'un instantané de données filtrées. dynamic_snapshot_location est de type nvarchar(260), avec NULL comme valeur par défaut. Pour plus d'informations, consultez Filtres de lignes paramétrés.

  • [ @use_web_sync = ] use_web_sync
    Indique que la synchronisation Web est activée. use_web_sync est de type bit, avec 0 comme valeur par défaut. La valeur 1 spécifie que l'abonnement par extraction peut être synchronisé via Internet à l'aide du protocole HTTP.

  • [ @internet_url = ] 'internet_url'
    Emplacement qui représente l'écouteur de réplication (REPLISAPI.DLL) de la synchronisation Web. internet_url est de type nvarchar(260), avec NULL comme valeur par défaut. internet_url est une URL complète, au format http://server.domain.com/directory/replisapi.dll. Si le serveur est configuré de manière à être à l'écoute sur un port autre que le port 80, le numéro de port doit également être fourni sous la forme http://server.domain.com:portnumber/directory/replisapi.dll, où portnumber représente le port.

  • [ @internet_login = ] 'internet_login'
    Nom de connexion que l'Agent de fusion utilise pour se connecter, à l'aide de l'authentification de base HTTP, au serveur Web qui héberge la synchronisation Web. internet_login est de type sysname, avec NULL comme valeur par défaut.

  • [ @internet_password = ] 'internet_password'
    Mot de passe qu'utilise l'Agent de fusion lors de la connexion au serveur Web qui héberge la synchronisation Web avec l'authentification de base HTTP. internet_password est de type nvarchar(524), avec NULL comme valeur par défaut.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort.

  • [ @internet_security_mode = ] internet_security_mode
    Méthode d'authentification utilisée par l'Agent de fusion pour se connecter au serveur Web pendant la synchronisation Web à l'aide du protocole HTTPS. internet_security_mode est de type int et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    0

    L'authentification de base est utilisée.

    1 (par défaut)

    L'authentification intégrée de Windows est utilisée.

    [!REMARQUE]

    Il est recommandé d'utiliser l'authentification de base avec la synchronisation Web. Pour utiliser la synchronisation Web, vous devez établir une connexion SSL au serveur Web. Pour plus d'informations, consultez Configurer la synchronisation Web.

  • [ @internet_timeout = ] internet_timeout
    Durée (en secondes) avant l'expiration d'une demande de synchronisation Web. internet_timeout est de type int, avec 300 secondes comme valeur par défaut.

  • [ @hostname = ] 'hostname'
    Remplace la valeur de HOST_NAME() lorsque cette fonction est utilisée dans la clause WHERE d'un filtre paramétré. hostname est de type sysname, avec NULL comme valeur par défaut.

  • [ @job_login = ] 'job_login'
    Nom de connexion du compte Windows sous lequel l'Agent s'exécute. job_login est de type nvarchar(257) et n'a pas de valeur par défaut. Ce compte Windows est toujours utilisé pour les connexions d'Agent à l'Abonné et pour les connexions au serveur de distribution et au serveur de publication lors de l'utilisation de l'authentification intégrée de Windows.

  • [ @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.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    Ne stockez pas les informations d'authentification dans des fichiers script. Pour une sécurité maximale, les noms de connexion et les mots de passe doivent être fournis au moment de l'exécution.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

La fonctionnalité sp_addmergepullsubscription_agent est utilisée dans la réplication de fusion et se sert d'une fonctionnalité similaire à sp_addpullsubscription_agent.

Pour un exemple d'une spécification correcte des paramètres de sécurité lors de l'exécution de sp_addmergepullsubscription_agent, consultez Créer un abonnement par extraction de données (pull).

Exemple

-- 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".

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2012';
SET @hostname = N'adventure-works\david8';

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorks2012Replica]
EXEC sp_addmergepullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
  @publisher = @publisher, 
  @publisher_db = @publicationDB, 
  @publication = @publication, 
  @distributor = @publisher, 
  @job_login = $(Login), 
  @job_password = $(Password),
  @hostname = @hostname;
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_addmergepullsubscription_agent.

Voir aussi

Référence

sp_addmergepullsubscription (Transact-SQL)

sp_changemergepullsubscription (Transact-SQL)

sp_dropmergepullsubscription (Transact-SQL)

sp_helpmergepullsubscription (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

Concepts

Créer un abonnement par extraction de données (pull)

S'abonner à des publications