Procédure : utiliser les profils d'agent de réplication (programmation Transact-SQL de la réplication)

Les profils d'agent sont utilisés pour définir les valeurs par défaut lors de la création d'un travail d'agent. Chaque agent possède un profil par défaut, tandis que certains agents ont des profils prédéfinis supplémentaires. Vous pouvez créer des profils définis par l'utilisateur à l'aide des procédures stockées de réplication. Pour plus d'informations sur les profils d'agent, consultez Profils de l'Agent de réplication.

Notes

Vous ne devez pas modifier ou supprimer des profils prédéfinis. Les modifications apportées au paramètre Agent prennent effet au prochain démarrage de l'agent. Si l'agent fonctionne en continu, vous devez l'arrêter, puis le redémarrer.

Pour créer un profil d'agent

  1. Exécutez sp_add_agent_profile (Transact-SQL) au niveau du serveur de distribution. Spécifiez @name, la valeur 1 pour @profile_type et l'une des valeurs suivantes pour @agent_type :

    Si ce profil devient le nouveau profil par défaut pour son type d'agent de réplication, spécifiez une valeur de 1 pour @default. L'identificateur pour le nouveau profil est retourné à l'aide du paramètre de sortie @profile_id. Cela crée un nouveau profil avec un jeu de paramètres de profil basé sur le profil par défaut pour le type d'agent donné.

  2. Après avoir créé le nouveau profil, ajoutez, supprimez ou modifiez les paramètres par défaut pour personnaliser le profil.

Pour modifier un profil d'agent existant

  1. Exécutez sp_help_agent_profile (Transact-SQL) au niveau du serveur de distribution. Spécifiez l'une des valeurs suivantes pour @agent_type :

    Tous les profils pour le type d'agent spécifié sont retournés. Notez la valeur de profile_id dans le jeu de résultats pour le profil à modifier.

  2. Exécutez sp_help_agent_parameter (Transact-SQL) au niveau du serveur de distribution. Spécifiez l'identificateur de profil de l'étape 1 pour @profile_id. Tous les paramètres du profil sont alors retournés. Notez le nom de tous les paramètres à modifier ou à supprimer du profil.

  3. Pour modifier la valeur d'un paramètre dans un profil, exécutez sp_change_agent_profile (Transact-SQL). Spécifiez l'identificateur de profil de l'étape 1 pour @profile_id, le nom du paramètre à changer pour @property, et une nouvelle valeur pour le paramètre de @value.

    Notes

    Vous ne pouvez pas modifier un profil d'agent existant pour qu'il devienne le profil par défaut d'un agent. Vous devez créer à la place un nouveau profil comme profil par défaut, comme illustré dans la procédure précédente.

  4. Pour supprimer un paramètre d'un profil, exécutez sp_drop_agent_parameter (Transact-SQL). Spécifiez l'identificateur de profil de l'étape 1 pour @profile_id et le nom du paramètre à supprimer pour @parameter_name.

  5. Pour ajouter un nouveau paramètre à un profil, vous devez effectuer les opérations suivantes :

    • Interrogez la table MSagentparameterlist (Transact-SQL) sur le serveur de distribution pour déterminer quels paramètres de profil peuvent être définis pour chaque type d'agent.

    • Exécutez sp_add_agent_parameter (Transact-SQL) au niveau du serveur de distribution. Spécifiez l'identificateur de profil de l'étape 1 pour @profile_id, le nom d'un paramètre valide à ajouter pour @parameter_name et la valeur du paramètre pour @parameter_value.

Pour supprimer un profil d'agent

  1. Exécutez sp_help_agent_profile (Transact-SQL) au niveau du serveur de distribution. Spécifiez l'une des valeurs suivantes pour @agent_type :

    Tous les profils pour le type d'agent spécifié sont retournés. Notez la valeur de profile_id dans le jeu de résultats pour le profil à supprimer.

  2. Exécutez sp_drop_agent_profile (Transact-SQL) au niveau du serveur de distribution. Spécifiez l'identificateur de profil de l'étape 1 pour @profile_id.

Pour utiliser les profils d'agent pendant la synchronisation

  1. Exécutez sp_help_agent_profile (Transact-SQL) au niveau du serveur de distribution. Spécifiez l'une des valeurs suivantes pour @agent_type :

    Tous les profils pour le type d'agent spécifié sont retournés. Notez la valeur de profile_name dans le jeu de résultats pour le profil à utiliser.

  2. Si l'agent est démarré à partir d'un travail d'agent, modifiez l'étape du travail qui démarre l'agent pour spécifier la valeur de profile_name obtenue dans l'étape 1 après le -ProfileName. Pour plus d'informations, consultez Procédure : afficher et modifier des paramètres d'invite de commandes d'un Agent de réplication (SQL Server Management Studio).

  3. Lorsque vous démarrez l'agent à partir de l'invite de commandes, spécifiez la valeur de profile_name obtenue dans l'étape 1 après le paramètre de ligne de commande -ProfileName.

Exemple

Cet exemple crée un profil personnalisé pour l'Agent de fusion nommé custom_merge, modifie la valeur du paramètre -UploadReadChangesPerBatch, ajoute un nouveau paramètre -ExchangeType et retourne des informations sur le profil créé.

DECLARE @profilename AS sysname;
DECLARE @profileid AS int;
SET @profilename = N'custom_merge';

-- Create a temporary table to hold the returned 
-- Merge Agent profiles.
CREATE TABLE #profiles (
    profile_id int, 
    profile_name sysname,
    agent_type int,
    [type] int,
    description varchar(3000),
    def_profile bit)

INSERT INTO #profiles (profile_id, profile_name, 
    agent_type, [type],description, def_profile)
    EXEC sp_help_agent_profile @agent_type = 4;

SET @profileid = (SELECT profile_id FROM #profiles 
    WHERE profile_name = @profilename);

IF (@profileid IS NOT NULL)
BEGIN
    EXEC sp_drop_agent_profile @profileid;
END
DROP TABLE #profiles

-- Add a new merge agent profile. 
EXEC sp_add_agent_profile @profile_id = @profileid OUTPUT, 
@profile_name = @profilename, @agent_type = 4, 
@description = N'custom merge profile';

-- Change the value of uploadreadchangesperbatch in the profile.
EXEC sp_change_agent_parameter @profile_id = @profileid, 
    @parameter_name = N'-UploadReadChangesPerBatch', @parameter_value = 50;

-- Add a new parameter ExchangeType the profile. 
EXEC sp_add_agent_parameter @profile_id = @profileid, 
    @parameter_name = N'-ExchangeType', @parameter_value = 1;

-- Verify the new profile. 
EXEC sp_help_agent_parameter @profileid;
GO