방법: 복제 에이전트 프로필 작업(복제 Transact-SQL 프로그래밍)

에이전트 프로필은 에이전트 작업이 만들어질 때 기본값을 정의하는 데 사용됩니다. 각 에이전트에는 기본 프로필이 있으며 미리 정의된 프로필이 추가된 에이전트도 있습니다. 복제 저장 프로시저를 사용하여 사용자 정의 프로필을 만들 수 있습니다. 에이전트 프로필에 대한 자세한 내용은 복제 에이전트 프로필을 참조하십시오.

[!참고]

미리 정의된 프로필은 수정하거나 삭제하면 안 됩니다. 에이전트 매개 변수 변경 내용은 다음에 에이전트를 시작할 때 적용됩니다. 에이전트가 계속 실행되면 에이전트를 중지한 후 다시 시작해야 합니다.

새 에이전트 프로필을 만들려면

  1. 배포자에서 sp_add_agent_profile(Transact-SQL)을 실행합니다. @name을 지정하고 @profile_type에 값 1을 지정한 후 @agent_type에 다음 값 중 하나를 지정합니다.

    이 프로필이 해당 유형의 복제 에이전트에 대한 새 기본 프로필이 될 경우 @default에 값 1을 지정합니다. 새 프로필의 식별자는 @profile_id 출력 매개 변수를 통해 반환됩니다. 이 출력 매개 변수는 지정된 에이전트 유형의 기본 프로필을 기반으로 한 프로필 매개 변수 집합을 사용하여 새 프로필을 만듭니다.

  2. 새 프로필이 만들어진 후 기본 매개 변수를 추가, 제거 또는 수정하여 프로필을 사용자 지정합니다.

기존 에이전트 프로필을 수정하려면

  1. 배포자에서 sp_help_agent_profile(Transact-SQL)을 실행합니다. @agent_type에 대해 다음 값 중 하나를 지정합니다.

    이렇게 하면 지정된 에이전트 유형에 대해 모든 이벤트가 반환됩니다. 변경할 프로필의 결과 집합에 있는 profile_id 값을 확인합니다.

  2. 배포자에서 sp_help_agent_parameter(Transact-SQL)를 실행합니다. @profile_id에 1단계에서 얻은 프로필 식별자를 지정합니다. 그러면 해당 프로필의 모든 매개 변수가 반환됩니다. 프로필에서 수정하거나 제거할 매개 변수의 이름을 확인합니다.

  3. 프로필의 매개 변수 값을 변경하려면 sp_change_agent_profile(Transact-SQL)을 실행합니다. @profile_id에 1단계에서 얻은 프로필 식별자를 지정하고 @property에 변경할 매개 변수의 이름을 지정한 후 @value에 매개 변수의 새 값을 지정합니다.

    [!참고]

    기존 에이전트 프로필은 에이전트의 기본 프로필이 되도록 변경할 수 없습니다. 대신 이전 절차에서와 같이 새 프로필을 기본 프로필로 만들어야 합니다.

  4. 프로필에서 매개 변수를 제거하려면 sp_drop_agent_parameter(Transact-SQL)를 실행합니다. @profile_id에 1단계에서 얻은 프로필 식별자를 지정하고 @parameter_name에 제거할 매개 변수의 이름을 지정합니다.

  5. 프로필에 새 매개 변수를 추가하려면 다음을 수행해야 합니다.

    • 배포자에서 MSagentparameterlist(Transact-SQL) 테이블을 쿼리하여 각 에이전트 유형에 설정할 수 있는 프로필 매개 변수를 확인합니다.

    • 배포자에서 sp_add_agent_parameter(Transact-SQL)를 실행합니다. @profile_id에 1단계에서 얻은 프로필 식별자를 지정하고 @parameter_name에 추가할 유효한 매개 변수의 이름을 지정한 후 @parameter_value에 매개 변수의 값을 지정합니다.

에이전트 프로필을 제거하려면

  1. 배포자에서 sp_help_agent_profile(Transact-SQL)을 실행합니다. @agent_type에 대해 다음 값 중 하나를 지정합니다.

    이렇게 하면 지정된 에이전트 유형에 대해 모든 이벤트가 반환됩니다. 제거할 프로필의 결과 집합에 있는 profile_id 값을 확인합니다.

  2. 배포자에서 sp_drop_agent_profile(Transact-SQL)을 실행합니다. @profile_id에 1단계에서 얻은 프로필 식별자를 지정합니다.

동기화 중 에이전트 프로필을 사용하려면

  1. 배포자에서 sp_help_agent_profile(Transact-SQL)을 실행합니다. @agent_type에 대해 다음 값 중 하나를 지정합니다.

    이렇게 하면 지정된 에이전트 유형에 대해 모든 이벤트가 반환됩니다. 사용할 프로필의 결과 집합에 있는 profile_name 값을 확인합니다.

  2. 에이전트가 에이전트 작업에서 시작되는 경우 에이전트를 시작하는 작업 단계를 수정하여 -ProfileName 명령줄 매개 변수 뒤에 1단계에서 얻은 profile_name의 값을 지정합니다. 자세한 내용은 방법: 복제 에이전트의 명령 프롬프트 매개 변수 보기 및 수정(SQL Server Management Studio)을 참조하십시오.

  3. 명령 프롬프트에서 에이전트를 시작하는 경우 -ProfileName 명령줄 매개 변수 뒤에 1단계에서 얻은 profile_name의 값을 지정합니다.

이 예제에서는 custom_merge라는 병합 에이전트의 사용자 지정 프로필을 만들고, -UploadReadChangesPerBatch 매개 변수의 값을 변경하고, 새 -ExchangeType 매개 변수를 추가하고, 만들어진 프로필에 대한 정보를 반환합니다.

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