다음을 통해 공유


복제 에이전트 프로필 작업

적용 대상: SQL Server Azure SQL Managed Instance

이 항목에서는 SQL Server Management Studio, Transact-SQL 또는 RMO(복제 관리 개체)를 사용하여 SQL Server에서 복제 에이전트 프로필로 작업하는 방법에 대해 설명합니다. 각 복제 에이전트의 동작은 에이전트 프로필을 통해 설정할 수 있는 매개 변수 집합에 의해 제어됩니다. 각 에이전트에는 기본 프로필이 있으며 일부 에이전트에는 미리 정의된 추가 프로필이 있습니다. 지정된 시간에 에이전트에 대해 하나의 프로필만 활성화됩니다.

항목 내용

SQL Server Management Studio 사용

SQL Server Management Studio에서 에이전트 프로필 대화 상자에 액세스하려면

  1. 배포자 속성 - <Distributor> 대화 상자의 일반 페이지에서 프로필 기본값을 클릭합니다.

복제 모니터에서 에이전트 프로필 대화 상자에 액세스하려면

  • 모든 에이전트에 대한 대화 상자를 열려면 게시자를 마우스 오른쪽 단추로 클릭한 다음 에이전트 프로필을 클릭합니다.

  • 단일 에이전트에 대한 대화 상자를 열려면 다음을 수행합니다.

    1. 복제 모니터에서 왼쪽 창의 게시자 그룹을 확장한 다음 게시자를 확장하고 게시를 클릭합니다.

    2. 배포 에이전트 및 병합 에이전트 프로필의 경우 모든 구독 탭에서 구독을 마우스 오른쪽 단추로 클릭한 다음 에이전트 프로필을 클릭합니다. 다른 에이전트의 경우 에이전트 탭에서 에이전트를 마우스 오른쪽 단추로 클릭하고 에이전트 프로필을 클릭합니다.

에이전트에 대한 프로필을 지정하려면

  1. 에이전트 프로필 대화 상자에 둘 이상의 에이전트에 대한 프로필이 표시되면 에이전트를 선택합니다.

  2. 에이전트 프로필 표의 열에 대한 기본값에서 프로필을 선택합니다. 기본적으로 프로필은 새 게시 및 구독에 대한 에이전트에만 적용됩니다.

  3. 기존 게시 또는 구독에 대해 선택한 유형의 모든 에이전트가 이 프로필을 사용하도록 지정하려면 기존 에이전트 변경을 클릭합니다.

프로필과 연결된 매개 변수를 보고 편집하려면

  1. 에이전트 프로필 대화 상자에 둘 이상의 에이전트에 대한 프로필이 표시되면 에이전트를 선택합니다.

  2. 프로필 옆에 있는 속성 버튼(...)을 클릭합니다.

  3. <ProfileName> 프로필 속성 대화 상자에서 매개 변수 및 값을 봅니다.

    • 사용자 정의 프로필의 매개 변수는 편집할 수 있지만 미리 정의된 시스템 프로필의 매개 변수는 편집할 수 없습니다.

    • 지정한 에이전트에 대한 모든 매개 변수를 보려면 이 프로필에서 사용되는 매개 변수만 표시 확인란의 선택을 취소합니다. 에이전트 매개 변수에 대한 자세한 내용은 이 항목의 끝에 있는 링크를 참조하세요.

  4. 닫기를 클릭합니다.

사용자 정의 프로필을 만들려면

  1. 에이전트 프로필 대화 상자에 둘 이상의 에이전트에 대한 프로필이 표시되면 에이전트를 선택합니다.

  2. 새로 만들기를 클릭합니다.

  3. 새 에이전트 프로필 초기화 대화 상자에서 새 프로필의 기준으로 사용할 기존 프로필을 선택합니다.

  4. 새 에이전트 프로필 대화 상자에서 이름설명 입력란에 값을 입력합니다.

  5. 매개 변수를 수정하여 프로필을 조정합니다. 지정한 에이전트에 대한 모든 매개 변수를 보려면 이 프로필에서 사용되는 매개 변수만 표시 확인란의 선택을 취소합니다. 에이전트 매개 변수에 대한 자세한 내용은 이 항목의 끝에 있는 링크를 참조하세요.

  6. 확인을 선택합니다.

사용자 정의 프로필을 삭제하려면

  1. 에이전트 프로필 대화 상자에 둘 이상의 에이전트에 대한 프로필이 표시되면 에이전트를 선택합니다.

  2. 프로필이 하나 이상의 에이전트와 연결되어 있으면 해당 에이전트의 프로필을 변경합니다.

    1. 에이전트 프로필 그리드에서 다른 프로필을 선택합니다.

    2. 기존 에이전트 변경 클릭합니다.

      참고 항목

      이렇게 하면 삭제하려는 프로필을 사용하는 에이전트뿐만 아니라 기존 게시 또는 구독에 대해 선택한 유형의 모든 에이전트에 대한 프로필이 변경됩니다.

  3. 삭제하려는 프로필을 선택한 다음 삭제를 클릭합니다.

  4. 확인을 선택합니다.

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_parameter(Transact-SQL)를 실행합니다. @profile_id에 1단계에서 얻은 프로필 식별자를 지정하고 @parameter_name에 변경할 매개 변수의 이름을 지정한 후 @parameter_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 의 값을 지정합니다.

예(Transact-SQL)

이 예제에서는 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

RMO 사용

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

  1. ServerConnection 클래스의 인스턴스를 사용하여 배포자 연결을 만듭니다.

  2. AgentProfile 클래스의 인스턴스를 만듭니다.

  3. 개체의 속성을 다음과 같이 설정합니다.

    • Name - 프로필의 이름입니다.

    • AgentType - an AgentType은(는) 프로필을 만들 복제 에이전트의 형식을 지정하는 값입니다.

    • ConnectionContext - the ServerConnection은(는) 1단계에서 만든 것입니다.

    • (선택 사항) Description - 프로필에 대한 설명.

    • (선택 사항) Default - 이 AgentType에 대한 모든 새 에이전트 작업이 기본적으로 이 프로필을 사용하는 경우 이 속성을 true로 설정합니다.

  4. Create 메서드를 호출하여 서버에서 프로필을 만듭니다.

  5. 서버에 프로필이 있으면 복제 에이전트 매개 변수 값을 추가, 제거 또는 변경하여 사용자 지정할 수 있습니다.

  6. 기존 복제 에이전트 작업에 프로필을 할당하려면 AssignToAgent 메서드를 호출합니다. distributionDBName에 대한 배포 데이터베이스의 이름과 agentID에 대한 작업의 ID를 전달합니다.

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

  1. ServerConnection 클래스의 인스턴스를 사용하여 배포자 연결을 만듭니다.

  2. ReplicationServer 클래스의 인스턴스를 만듭니다. 1단계에서 만든 ServerConnection 개체를 전달합니다.

  3. LoadProperties 메서드를 호출합니다. 이 메서드가 false를 반환하는 경우 배포자의 존재 여부를 확인합니다.

  4. EnumAgentProfiles 메서드를 호출합니다. 반환된 프로필을 특정 유형의 복제 에이전트로 좁히려면 AgentType 값을 전달합니다.

  5. 반환된 AgentProfile에서 원하는 ArrayList 개체를 가져옵니다. 여기서 개체의 Name 속성은 프로필 이름과 일치합니다.

  6. 프로필을 변경하려면 AgentProfile의 다음 방법 중 하나를 호출합니다.

    • AddParameter - 지원되는 매개 변수를 프로필에 추가합니다. 여기서 name은 복제 에이전트 매개 변수의 이름이고 value는 지정된 값입니다. 지정된 에이전트 형식에 대해 지원되는 모든 에이전트 매개 변수를 열거하려면 EnumParameterInfo 메서드를 호출합니다. 이 메서드는 지원되는 모든 매개 변수를 나타내는 ArrayList 개체의 AgentProfileParameterInfo을(를) 반환합니다.

    • RemoveParameter - 프로필에서 기존 매개 변수를 제거합니다. 여기서 name은 복제 에이전트 매개 변수의 이름입니다. 프로필에 대해 정의된 모든 현재 에이전트 매개 변수를 열거하려면 EnumParameters 메서드를 호출합니다. 이 메서드는 이 프로필의 기존 매개 변수를 나타내는 ArrayList 개체의 AgentProfileParameter을(를) 반환합니다.

    • ChangeParameter - 프로필의 기존 매개 변수 설정을 변경합니다. 여기서 name은 에이전트 매개 변수의 이름이고 newValue는 매개 변수를 변경할 값입니다. 프로필에 대해 정의된 모든 현재 에이전트 매개 변수를 열거하려면 EnumParameters 메서드를 호출합니다. 이 메서드는 이 프로필의 기존 매개 변수를 나타내는 ArrayList 개체의 AgentProfileParameter을(를) 반환합니다. 지원되는 모든 에이전트 매개 변수 설정을 열거하려면 EnumParameterInfo 메서드를 호출합니다. 이 메서드는 지원되는 모든 매개 변수의 값을 나타내는 ArrayList 개체의 AgentProfileParameterInfo을(를) 반환합니다.

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

  1. ServerConnection 클래스의 인스턴스를 사용하여 배포자 연결을 만듭니다.

  2. AgentProfile 클래스의 인스턴스를 만듭니다. Name에 프로필 이름과 ServerConnection에 1단계에서 얻은 ConnectionContext을(를) 설정합니다.

  3. LoadProperties 메서드를 호출합니다. 이 메서드가 false를 반환하는 경우 지정한 이름이 올바르지 않거나 해당 프로필이 서버에 없는 것입니다.

  4. Type 속성이 고객 프로필을 나타내는 User(으)로 설정되어 있는지 확인합니다. Type에 대한 값이 System인 프로필은 제거해서는 안 됩니다.

  5. 서버에서 이 개체가 나타내는 사용자 정의 프로필을 제거하려면 Remove 메서드를 호출합니다.

후속 작업: 에이전트 매개 변수 변경 후

에이전트 매개 변수 변경 내용은 다음에 에이전트가 시작될 때 적용됩니다. 에이전트가 지속적으로 실행되는 경우 에이전트를 중지하고 다시 시작해야 합니다. SQL Server 2017 CU3부터 에이전트를 다시 시작하지 않고도 일부 에이전트 매개 변수 변경 내용이 적용됩니다.