Procedura: Utilizzo dei profili agenti di replica (programmazione Transact-SQL della replica)
I profili agenti sono utilizzati per definire i valori predefiniti quando viene creato un processo dell'agente. Ciascun agente dispone di un profilo predefinito e alcuni agenti dispongono anche di profili predefiniti aggiuntivi. È possibile creare profili definiti dall'utente utilizzando le stored procedure di replica. Per ulteriori informazioni sui profili degli agenti, vedere Profili degli agenti di replica.
Nota
È necessario non modificare né eliminare i profili predefiniti. Le modifiche apportate al parametro dell'agente diventano effettive al successivo avvio dell'agente. Se l'agente viene eseguito in modo continuo, è necessario interromperlo e riavviarlo.
Per creare un nuovo profilo agente
Nel server di distribuzione eseguire sp_add_agent_profile (Transact-SQL). Specificare @name, il valore 1 per @profile_type e uno dei seguenti valori per @agent_type:
Se si desidera impostare il profilo come nuovo profilo predefinito per il tipo di agente di replica, specificare il valore 1 per @default. L'identificatore per il nuovo profilo viene restituito mediante il parametro di output @profile_id. Viene creato un nuovo profilo con un set di parametri del profilo basato sul profilo predefinito per il tipo di agente specificato.
Una volta creato il nuovo profilo, è possibile personalizzarlo aggiungendo, rimuovendo o modificando i parametri predefiniti.
Per modificare un profilo agente esistente
Nel server di distribuzione eseguire sp_help_agent_profile (Transact-SQL). Specificare uno dei seguenti valori per @agent_type:
Vengono restituiti tutti i profili per il tipo di agente specificato. Tenere presente il valore di profile_id nel set di risultati del profilo da modificare.
Nel server di distribuzione eseguire sp_help_agent_parameter (Transact-SQL). Specificare l'identificatore del profilo restituito nel passaggio 1 per @profile_id. Vengono restituiti tutti i parametri per il profilo. Tenere presente il nome dei parametri del profilo da modificare o rimuovere.
Per modificare il valore di un parametro in un profilo, eseguire sp_change_agent_profile (Transact-SQL). Specificare l'identificatore del profilo restituito nel passaggio 1 per @profile_id, il nome del parametro da modificare per @property e un nuovo valore del parametro per @value.
Nota
Non è possibile modificare un profilo agente esistente in modo da impostarlo come profilo predefinito di un agente. A tale scopo, è necessario creare un nuovo profilo come profilo predefinito, come indicato nella procedura indicata in precedenza.
Per rimuovere un parametro da un profilo, eseguire sp_drop_agent_parameter (Transact-SQL). Specificare l'identificatore del profilo restituito nel passaggio 1 per @profile_id e il nome del parametro da rimuovere per @parameter_name.
Per aggiungere un nuovo parametro a un profilo è necessario effettuare le seguenti operazioni:
Eseguire una query sulla tabella MSagentparameterlist (Transact-SQL) nel server di distribuzione per determinare i parametri del profilo che è possibile impostare per ciascun tipo di agente.
Nel server di distribuzione eseguire sp_add_agent_parameter (Transact-SQL). Specificare l'identificatore del profilo restituito nel passaggio 1 per @profile_id, il nome di un parametro valido da aggiungere per @parameter_name e il valore del parametro per @parameter_value.
Per rimuovere un profilo agente
Nel server di distribuzione eseguire sp_help_agent_profile (Transact-SQL). Specificare uno dei seguenti valori per @agent_type:
Vengono restituiti tutti i profili per il tipo di agente specificato. Tenere presente il valore di profile_id nel set di risultati del profilo da rimuovere.
Nel server di distribuzione eseguire sp_drop_agent_profile (Transact-SQL). Specificare l'identificatore del profilo restituito nel passaggio 1 per @profile_id.
Per utilizzare i profili agenti durante la sincronizzazione
Nel server di distribuzione eseguire sp_help_agent_profile (Transact-SQL). Specificare uno dei seguenti valori per @agent_type:
Vengono restituiti tutti i profili per il tipo di agente specificato. Tenere presente il valore di profile_name nel set di risultati del profilo da utilizzare.
Se l'agente è avviato da un processo dell'agente, modificare il passaggio del processo che avvia l'agente per specificare il valore di profile_name ottenuto nel passaggio 1 dopo il parametro della riga di comando -ProfileName. Per ulteriori informazioni, vedere Procedura: Visualizzazione e modifica dei parametri del prompt dei comandi dell'agente di replica (SQL Server Management Studio).
Quando si avvia l'agente dal prompt dei comandi, specificare il valore di profile_name ottenuto nel passaggio 1 dopo il parametro della riga di comando -ProfileName.
Esempio
In questo esempio viene creato un profilo personalizzato per l'agente di merge denominato custom_merge, viene modificato il valore del parametro -UploadReadChangesPerBatch, viene aggiunto un nuovo parametro -ExchangeType e vengono restituite informazioni sul profilo creato.
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
Vedere anche