Поделиться через


Работа с профилями агента репликации

В данном разделе описывается работа с профилями агента репликации в SQL Server 2012 с помощью среды Среда SQL Server Management Studio, Transact-SQL или объектов RMO. Поведение каждого агента репликации контролируется набором параметров, который может устанавливаться через профили агента. У каждого агента имеются профили по умолчанию, а некоторые агенты имеют дополнительные предопределенные профили. В каждый момент времени активен только один профиль.

В этом разделе

  • Для работы с профилями агента репликации используется:

    Среда SQL Server Management Studio

    • Доступ к диалоговому окну «Профили агентов»

    • Указание профиля для агента

    • Создание профиля

    • Изменение профиля

    • Удаление профиля

    Transact-SQL

    • Создание профиля

    • Изменение профиля

    • Удаление профиля

    • Использование профилей агента при синхронизации

    • Пример (Transact-SQL)

    Объекты RMO

    • Создание профиля

    • Изменение профиля

    • Удаление профиля

  • Дальнейшие действия.  После изменения параметров агента

Использование среды SQL Server Management Studio

Доступ к диалоговому окну «Профили агентов» из среды SQL Server Management Studio

  • На странице Общие диалогового окна Свойства распространителя — <распространитель> щелкните Параметры профиля по умолчанию.

Доступ к диалоговому окну «Профили агентов» из монитора репликации

  • Чтобы открыть диалоговое окно для всех агентов, щелкните издатель правой кнопкой мыши, затем щелкните Профили агентов.

  • Чтобы открыть диалоговое окно для одного агента:

    1. На левой панели монитора репликации раскройте группу издателей, раскройте нужный издатель, а затем выберите публикацию.

    2. Для доступа к профилям агента распространителя и агента слияния щелкните правой кнопкой мыши подписку на вкладке Все подписки, затем щелкните Профиль агента. Для других агентов щелкните правой кнопкой мыши агент на вкладке Агенты и выберите Профиль агента.

    Значок стрелки, используемый со ссылкой «В начало»[Top]

Указание профиля для агента

  1. Если в окне Профили агентов отображены профили нескольких агентов, следует выбрать агент.

  2. Выберите профиль в столбце По умолчанию для новых сетки Профили агентов. По умолчанию профиль применяется к агентам только для новых публикаций и подписок.

  3. Чтобы указать, что всем агентам выбранного типа следует использовать для существующих публикаций или подписок данный профиль, щелкните Изменить существующие агенты.

    Значок стрелки, используемый со ссылкой «В начало»[Top]

Просмотр и редактирование параметров, связанных с профилем

  1. Если в окне Профили агентов отображены профили нескольких агентов, следует выбрать агент.

  2. Нажмите кнопку свойств (), следующую за профилем.

  3. Просмотрите параметры и значения в диалоговом окне <имя_профиля> — свойства профиля.

    • Параметры в пользовательских профилях могут редактироваться, параметры же в предопределенных системных профилях недоступны для изменения.

    • Для просмотра всех параметров агента снимите флажок Показывать только параметры, используемые в этом профиле. К дополнительным сведениям о параметрах агента можно перейти по ссылкам в конце этого раздела.

  4. Нажмите кнопку Закрыть.

    Значок стрелки, используемый со ссылкой «В начало»[Top]

Создание пользовательского профиля

  1. Если в окне Профили агентов отображены профили нескольких агентов, следует выбрать агент.

  2. Нажмите кнопку Создать.

  3. В диалоговом окне инициализации Создать профиль агента выберите существующий профиль, который будет служить основой нового профиля.

  4. В диалоговом окне Создать профиль агента введите значения в текстовые поля Имя и Описание.

  5. Чтобы настроить профиль, измените параметры. Для просмотра всех параметров агента снимите флажок Показывать только параметры, используемые в этом профиле. К дополнительным сведениям о параметрах агента можно перейти по ссылкам в конце этого раздела.

  6. Нажмите кнопку ОК.

    Значок стрелки, используемый со ссылкой «В начало»[Top]

Удаление пользовательского профиля

  1. Если в окне Профили агентов отображены профили нескольких агентов, следует выбрать агент.

  2. Если профиль связан с одним или более агентом, измените профиль для этих агентов:

    1. Выберите другой профиль в сетке Профили агентов.

    2. Щелкните Изменить существующие агенты.

      ПримечаниеПримечание

      В результате изменится профиль всех агентов выбранного типа для существующих публикаций или подписок, а не только тех из них, которые вы намереваетесь удалить.

  3. Выберите профиль, подлежащий удалению, и затем нажмите кнопку Удалить.

  4. Нажмите кнопку ОК.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Использование Transact-SQL

Создание нового профиля агента

  1. Выполните процедуру sp_add_agent_profile (Transact-SQL) на распространителе. Задайте параметр @name, значение 1 для @profile_type и одно из следующих значений для @agent_type:

    Если этот профиль станет профилем по умолчанию для агента репликации данного типа, укажите значение 1 для @default. Идентификатор нового профиля можно получить с помощью выходного параметра @profile_id. Таким образом создается новый профиль с набором параметров профиля на основе профиля по умолчанию для данного типа агента.

  2. Когда новый профиль создан, для его настройки можно добавить, удалить или изменить параметры по умолчанию.

    Значок стрелки, используемый со ссылкой «В начало»[Top]

Изменение существующего профиля агента

  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). Укажите идентификатор профиля из шага 1 для @profile_id, имя изменяемого параметра в @property и новое значение параметра для @value.

    ПримечаниеПримечание

    Существующий профиль агента невозможно сделать профилем по умолчанию для агента. Профиль по умолчанию должен быть создан заново, как показано в предыдущей процедуре.

  4. Чтобы удалить параметр из профиля, выполните процедуру sp_drop_agent_parameter (Transact-SQL). Укажите идентификатор профиля из шага 1 для @profile_id и имя удаляемого параметра для @parameter_name.

  5. Чтобы добавить новый параметр в профиль, сделате следующее.

    • Запросите таблицу MSagentparameterlist (Transact-SQL) на распространителе, чтобы определить, какие параметры профиля можно задать для каждого типа агента.

    • Выполните процедуру sp_add_agent_parameter (Transact-SQL) на распространителе. Укажите идентификатор профиля из шага 1 для @profile_id, имя допустимого добавляемого параметра в @parameter_name и значение параметра для @parameter_value.

    Значок стрелки, используемый со ссылкой «В начало»[Top]

Удаление профиля агента

  1. Выполните процедуру sp_help_agent_profile (Transact-SQL) на распространителе. В параметре @agent_type укажите одно из следующих значений:

    Будут получены все профили для указанного типа агента. Запомните profile_id в результирующем наборе для удаляемого профиля.

  2. Выполните процедуру sp_drop_agent_profile (Transact-SQL) на распространителе. В параметре @profile_id укажите полученный на шаге 1 идентификатор.

    Значок стрелки, используемый со ссылкой «В начало»[Top]

Использование профилей агента при синхронизации

  1. Выполните процедуру sp_help_agent_profile (Transact-SQL) на распространителе. В параметре @agent_type укажите одно из следующих значений:

    Будут получены все профили для указанного типа агента. Запомните значение profile_name в результирующем наборе для профиля, который должен использоваться.

  2. Если агент запускается из задания агента, измените шаг запуска в этом задании, указав значение profile_name из шага 1 после параметра командной строки -ProfileName. Дополнительные сведения см. в разделе Просмотр и изменение параметров командной строки агента репликации (среда SQL Server Management Studio).

  3. Если агент запускается из командной строки, укажите значение profile_name из шага 1 после параметра командной строки -ProfileName.

    Значок стрелки, используемый со ссылкой «В начало»[Top]

Пример (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

Значок стрелки, используемый со ссылкой «В начало»[Top]

При помощи объектов RMO

Создание нового профиля агента

  1. Создайте соединение с распространителем с помощью экземпляра класса ServerConnection.

  2. Создайте экземпляр класса AgentProfile.

  3. Установите следующие свойства объекта.

    • Name — имя профиля.

    • AgentType – значение AgentType, указывающее на тип агента репликации, для которого создается профиль.

    • ConnectionContext – значение ServerConnection, созданного на шаге 1.

    • Description – описание профиля (необязательно).

    • Default – установите в значение true, если во всех заданиях агентов для данного AgentType этот профиль будет использоваться по умолчанию (необязательно).

  4. Вызовите метод Create для создания профиля на этом сервере.

  5. После создания профиля на сервере можно производить его настройку, добавляя, удаляя или изменяя значения параметров агента репликации.

  6. Назначение профиля для существующего задания агента репликации производится методом AssignToAgent. В качестве параметра distributionDBName передайте имя базы данных распространителя, а в параметре agentID — идентификатор задания.

    Значок стрелки, используемый со ссылкой «В начало»[Top]

Изменение существующего профиля агента

  1. Создайте соединение с распространителем с помощью экземпляра класса ServerConnection.

  2. Создайте экземпляр класса ReplicationServer. Передайте объект ServerConnection, созданный на шаге 1.

  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, которые представляют поддерживаемые значения для всех параметров.

    Значок стрелки, используемый со ссылкой «В начало»[Top]

Удаление профиля агента

  1. Создайте соединение с распространителем с помощью экземпляра класса ServerConnection.

  2. Создайте экземпляр класса AgentProfile. Присвойте имя профиля свойству Name и значение ServerConnection, полученное на шаге 1, свойству ConnectionContext.

  3. Вызовите метод LoadProperties. Если метод вернул значение false, то имя указано неверно или профиль не существует на сервере.

  4. Удостоверьтесь в том, что свойству Type присвоено значение User, указывающее на клиентский профиль. Не следует удалять профиль, имеющий значение System в свойстве Type.

  5. Вызовите метод Remove для удаления с сервера пользовательского профиля, представляемого этим объектом.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Дальнейшие действия. После изменения параметров агента

Изменения параметров агента вступают в действие при следующем запуске агента. Если агент выполняется в непрерывном режиме, следует остановить и перезапустить агент.

Значок стрелки, используемый со ссылкой «В начало»[Top]

См. также

Справочник

Профили агента репликации

Агент моментальных снимков репликации

Агент чтения журнала репликации

Агент распространения репликации

Агент слияния репликации

Агент чтения очереди репликации