복제 에이전트 프로필 작업

적용 대상:SQL ServerAzure SQL Managed Instance

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

항목 내용

  • 복제 에이전트 프로필을 사용하려면 다음을 사용합니다.

    SQL Server Management Studio

    • 에이전트 프로필 액세스 대화 상자

    • 에이전트에 대한 프로필 지정

    • 프로필 만들기

    • 프로필 수정

    • 프로필 삭제

    Transact-SQL

    • 프로필 만들기

    • 프로필 수정

    • 프로필 삭제

    • 동기화 중 에이전트 프로필 사용

    • Transact-SQL 예제

    복제 관리 개체

    • 프로필 만들기

    • 프로필 수정

    • 프로필 삭제

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

SQL Server Management Studio 사용

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

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

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

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

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

    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 다음 값 중 하나를 지정합니다.

    이 프로필이 해당 유형의 복제본(replica) 에이전트에 대한 새 기본 프로필이 되는 경우 @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 - 프로필의 이름입니다.

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

    • ConnectionContextServerConnection- 1단계에서 만든 것입니다.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. AgentProfile 클래스의 인스턴스를 만듭니다. 에 대한 NameServerConnection 프로필 이름과 1 ConnectionContext단계의 이름을 설정합니다.

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

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

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

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

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

참고 항목

복제 에이전트 프로필
Replication Snapshot Agent
복제 로그 판독기 에이전트
Replication Distribution Agent
Replication Merge Agent
Replication Queue Reader Agent