Como trabalhar com perfis do Replication Agent (Programação Transact-SQL de replicação)

Os perfis de agentes são usados para definir os valores padrão quando um trabalho de agente é criado. Cada agente tem um perfil padrão e alguns agentes têm perfis adicionais predefinidos. Você pode criar perfis definidos pelo usuário que usam procedimentos armazenados de replicação. Para obter mais informações sobre perfis de agentes, consulte Perfis do Replication Agent.

ObservaçãoObservação

Você não deve modificar ou excluir perfis predefinidos. As alterações do parâmetro de agente entrarão em vigor na próxima vez o agente for iniciado. Se o agente ficar executando continuamente, será necessário parar e reiniciar o agente.

Para criar um perfil novo de agente

  1. No Distribuidor, execute sp_add_agent_profile (Transact-SQL). Especifique @name, o valor 1 para @profile_type e um dos seguintes valores para @agent_type:

    Se esse perfil se tornar o novo perfil padrão para seu tipo de agente de replicação, especifique o valor 1 para @default. O identificador para o novo perfil retorna usando o parâmetro de saída @profile_id. Isso cria um perfil novo com um conjunto de parâmetros de perfis baseado no perfil padrão para o tipo de agente especificado.

  2. Depois que o perfil novo for criado, adicione, remova ou modifique os parâmetros padrão para personalizar o perfil.

Para modificar um perfil de agente existente

  1. No Distribuidor, execute sp_help_agent_profile (Transact-SQL). Especifique um dos valores a seguir para @agent_type:

    Isso retorna todos os perfis para o tipo de agente especificado. Observe o valor de profile_id no conjunto de resultados para o perfil a ser alterado.

  2. No Distribuidor, execute sp_help_agent_parameter (Transact-SQL). Especifique o identificador de perfil da etapa 1 para @profile_id. Isso retorna todos os parâmetros para o perfil. Observe o nome de qualquer parâmetro a modificar ou remover do perfil.

  3. Para alterar o valor de um parâmetro em um perfil, execute sp_change_agent_profile (Transact-SQL). Especifique o identificador de perfil da etapa 1 para @profile_id, o nome do parâmetro a ser mudado de @property e um novo valor de parâmetro para @value.

    ObservaçãoObservação

    Você não pode alterar um perfil de agente existente para se tornar o perfil padrão para um agente. Em vez disso, você deve criar um perfil novo como perfil padrão, como mostrado no procedimento anterior.

  4. Para remover um parâmetro de um perfil, execute sp_drop_agent_parameter (Transact-SQL). Especifique o identificador de perfil da etapa 1 para @profile_id e o nome do parâmetro a remover para @parameter_name.

  5. Para adicionar um parâmetro novo a um perfil, você deve fazer o seguinte:

    • Examine a tabela do MSagentparameterlist (Transact-SQL) no Distribuidor para determinar quais parâmetros de perfil que podem ser definidos para cada tipo de agente.

    • No Distribuidor, execute sp_add_agent_parameter (Transact-SQL). Especifique o identificador de perfil da etapa 1 para @profile_id, o nome de um parâmetro válido para adicionar para @parameter_name e o valor de parâmetro para @parameter_value.

Para remover um perfil de agente

  1. No Distribuidor, execute sp_help_agent_profile (Transact-SQL). Especifique um dos valores a seguir para @agent_type:

    Isso retorna todos os perfis para o tipo de agente especificado. Observe o valor de profile_id no conjunto de resultados para o perfil a remover.

  2. No Distribuidor, execute sp_drop_agent_profile (Transact-SQL). Especifique o identificador de perfil da etapa 1 para @profile_id.

Para usar perfis de agente durante sincronização

  1. No Distribuidor, execute sp_help_agent_profile (Transact-SQL). Especifique um dos valores a seguir para @agent_type:

    Isso retorna todos os perfis para o tipo especificado de agente. Observe o valor de profile_name no conjunto de resultados para o perfil a usar.

  2. Se o agente for iniciado a partir do trabalho de agente, edite a etapa de trabalho que inicia o agente para especificar o valor profile_name obtido na etapa 1, depois do parâmetro do comando em linha -ProfileName. Para obter mais informações, consulte Como exibir e modificar parâmetros do prompt de comando de agentes de replicação (SQL Server Management Studio).

  3. Ao iniciar o agente no prompt de comando, especifique o valor profile_name obtido na etapa 1, depois do parâmetro do comando em linha -ProfileName.

Exemplo

Este exemplo cria uma perfil personalizado para o Merge Agent nomeado custom_merge, altera o valor do parâmetro -UploadReadChangesPerBatch, adiciona um novo parâmetro -ExchangeType e retorna informações sobre o perfil criado.

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