sp_addpullsubscription_agent (Transact-SQL)

Ajoute un nouveau travail de l'Agent planifié, utilisé pour synchroniser un abonnement par extraction de données (pull) avec une publication transactionnelle. Cette procédure stockée est exécutée sur la base de données d'abonnement au niveau de l'Abonné.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_addpullsubscription_agent [ @publisher = ] 'publisher'
    [ , [ @publisher_db = ] 'publisher_db' ]
        , [ @publication = ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db = ] 'subscriber_db' ]
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_password' ]
    [ , [ @distributor = ] 'distributor' ]
    [ , [ @distribution_db = ] 'distribution_db' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ]
    [ , [ @distributor_login = ] 'distributor_login' ]
    [ , [ @distributor_password = ] 'distributor_password' ]
    [ , [ @optional_command_line = ] 'optional_command_line' ]
    [ , [ @frequency_type = ] frequency_type ]
    [ , [ @frequency_interval = ] frequency_interval ]
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
    [ , [ @frequency_subda y= ] 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 ]
    [ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
    [ , [ @encrypted_distributor_password = ] encrypted_distributor_password ]
    [ , [ @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' ]
    [ , [ @publication_type = ] publication_type ]
    [ , [ @dts_package_name = ] 'dts_package_name' ]
    [ , [ @dts_package_password = ] 'dts_package_password' ]
    [ , [ @dts_package_location = ] 'dts_package_location' ]
    [ , [ @reserved = ] 'reserved' ]
    [ , [ @offloadagent = ] 'remote_agent_activation' ]
    [ , [ @offloadserver = ] 'remote_agent_server_name']
    [ , [ @job_name = ] 'job_name' ]
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 

Arguments

  • [ @publisher=] 'publisher'
    Nom du serveur de publication. publisher est de type sysname, sans 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, avec NULL comme valeur par défaut. Les serveurs de publication Oracle ignorent publisher_db.

  • [ @publication=] 'publication'
    Nom de la publication. publication est de type sysname, sans valeur par défaut.

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

    Notes

    Ce paramètre a été désapprouvé et n'est conservé que pour assurer la compatibilité descendante des scripts.

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

    Notes

    Ce paramètre a été désapprouvé et n'est conservé que pour assurer la compatibilité descendante des scripts.

  • [ @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 NULL comme valeur par défaut. Une valeur de 0 spécifie l'authentification SQL Server. Une valeur de 1 spécifie l'authentification Windows.

    Notes

    Ce paramètre est à déconseiller et n'est maintenu que dans un but de compatibilité ascendante avec les scripts déjà établis. L'Agent de distribution se connecte toujours à l'Abonné local à l'aide de l'authentification Windows. Si une valeur autre que NULL ou 1 est spécifiée pour ce paramètre, un message d'avertissement est retourné.

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

    Notes

    Ce paramètre est à déconseiller et n'est maintenu que dans un but de compatibilité ascendante avec les scripts déjà établis. Si une valeur est spécifiée pour ce paramètre, un message d'avertissement est retourné mais la valeur reste ignorée.

  • [ @subscriber_password=] 'subscriber_password'
    Mot de passe de l'Abonné. L'argument 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. Si un mot de passe d'abonné est utilisé, il est automatiquement chiffré.

    Notes

    Ce paramètre est à déconseiller et n'est maintenu que dans un but de compatibilité ascendante avec les scripts déjà établis. Si une valeur est précisée pour ce paramètre, un message d'avertissement est retourné mais la valeur reste ignorée.

  • [ @distributor=] 'distributor'
    Nom du serveur de distribution. distributor est de type sysname. Sa valeur par défaut est la valeur spécifiée par publisher.

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

  • [ @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 1 comme valeur par défaut. 0 indique une authentification SQL Server. 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 de serveur de distribution à utiliser lors de la connexion à un serveur de distribution au cours d'une synchronisation. L'argument 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. L'argument 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. Dans la mesure du possible, invitez les utilisateurs à entrer les informations d'identification de sécurité 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é.

  • [ @optional_command_line=] 'optional_command_line'
    Invite de commandes facultative de l'Agent de distribution. Par exemple, -DefinitionFile C:\Distdef.txt ou -CommitBatchSize 10. optional_command_line est de type nvarchar(4000), avec une chaîne vide comme valeur par défaut.

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

    Valeur

    Description

    1

    Une fois

    2 (valeur par défaut)

    Sur demande

    4

    Quotidienne

    8

    Hebdomadaire

    16

    Mensuelle

    32

    Relatif mensuel

    64

    Démarrage automatique

    128

    Périodique

    Notes

    Si vous spécifiez une valeur de 64, l'Agent de distribution 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 distribution de réplication.

  • [ @frequency_interval=] frequency_interval
    Valeur à appliquer à la fréquence définie par frequency_type. frequency_interval est de type int, avec 1 comme valeur par défaut.

  • [ @frequency_relative_interval=] frequency_relative_interval
    Date de l'Agent de distribution. 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 (valeur par défaut)

    Premier

    2

    Deuxième

    4

    Troisième

    8

    Quatrième

    16

    Dernier

  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Facteur de récurrence utilisé par frequency_type. frequency_recurrence_factor est de type int, avec 1 comme valeur par défaut.

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

    Valeur

    Description

    1 (valeur par défaut)

    Une fois

    2

    Deuxième

    4

    Minute

    8

    Heure

  • [ @frequency_subday_interval=] frequency_subday_interval
    Intervalle pour frequency_subday. frequency_subday_interval est de type int, avec 1 comme valeur par défaut.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Heure de la journée à laquelle l'Agent de distribution est planifié pour la première fois, représentée 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 de la journée à laquelle l'Agent de distribution cesse d'être planifié, représentée au format HHMMSS. active_end_time_of_day est de type int, avec 0 comme valeur par défaut.

  • [ @active_start_date=] active_start_date
    Date à laquelle l'Agent de distribution est planifié pour la première fois, représentée 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 de distribution cesse d'être planifié, représentée au format AAAAMMJJ. active_end_date est de type int, avec 0 comme valeur par défaut.

  • [ @distribution_jobid =] distribution_jobidOUTPUT
    ID de l'Agent de distribution pour ce travail. distribution_jobid est de type binary(16), avec NULL comme valeur par défaut. Il s'agit d'un paramètre OUTPUT.

  • [ @encrypted_distributor_password=] encrypted_distributor_password
    La définition de encrypted_distributor_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.

  • [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
    Détermine si l'abonnement peut être synchronisé par le Gestionnaire de synchronisation Microsoft. 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 du dossier secondaire de la capture instantanée. alternate_snapshot_folder est de type nvarchar(255), avec NULL comme valeur par défaut.

  • [ @working_directory= ] 'working_director'
    Nom du répertoire de travail utilisé pour stocker les fichiers de données et de schémas de la publication. working_directory est de type nvarchar(255), avec NULL comme valeur par défaut. Le nom doit être indiqué au format UNC.

  • [ @use_ftp= ] 'use_ftp'
    Spécifie l'utilisation du protocole FTP au lieu du protocole usuel pour récupérer les captures instantanées. use_ftp est de type nvarchar(5), avec FALSE comme valeur par défaut.

  • [ @publication_type= ] publication_type
    Spécifie le type de réplication de la publication. publication_type est de type tinyint, avec 0 comme valeur par défaut. Si la valeur est 0, la publication est de type transactionnel. Si la valeur correspond à 1, la publication est de type capture instantanée. Enfin, si la valeur est 2, la publication est de type fusion.

  • [ @dts_package_name= ] 'dts_package_name'
    Spécifie le nom du package DTS. dts_package_name est de type sysname, avec NULL comme valeur par défaut. Par exemple, pour spécifier un package nommé DTSPub_Package, le paramètre est le suivant : @dts_package_name = N'DTSPub_Package'.

  • [ @dts_package_password= ] 'dts_package_password'
    Spécifie le mot de passe du package, s'il en existe un. dts_package_password est de type sysname, avec NULL comme valeur par défaut ; celle-ci signifie que le package n'a pas de mot de passe.

    Notes

    Vous devez indiquer un mot de passe si l'argument dts_package_name est spécifié.

  • [ @dts_package_location= ] 'dts_package_location'
    Spécifie l'emplacement du package. dts_package_location est de type nvarchar(12), avec subscriber comme valeur par défaut. L'emplacement du package peut prendre la valeur distributor ou subscriber.

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

  • [ @offloadagent= ] 'remote_agent_activation'

    Notes

    L'activation d'agent distant a été désapprouvé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'

    Notes

    L'activation d'agent distant a été désapprouvé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 d'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.

  • [ @job_login= ] 'job_login'
    Nom de connexion du compte Windows sous lequel l'Agent s'exécute. job_login est de type nvarchar(257), sans valeur par défaut. C'est ce compte Windows qui est destiné à toujours être utilisé pour les connexions des Agents à l'Abonné.

  • [ @job_password= ] 'job_password'
    Mot de passe du compte Windows sous lequel l'Agent s'exécute. job_password est de type sysname, sans valeur par défaut.

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

    Lorsque cela est possible, invitez les utilisateurs à saisir leurs 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é.

Valeurs des codes de retour

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

Notes

La procédure stockée sp_addpullsubscription_agent est utilisée lors des réplications transactionnelles et de captures instantanées.

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;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2008R2';

-- At the subscription database, create a pull subscription 
-- to a transactional publication.
USE [AdventureWorks2008R2Replica]
EXEC sp_addpullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

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