Настройка распределенного воспроизведения

Применимо к: SQL Server 2016 (13.x) SQL Server 2017 (14.x) SQL Server 2019 (15.x)

Внимание

Распределенное воспроизведение SQL Server недоступно в SQL Server 2022 (16.x) и более поздних версиях.

Сведения о конфигурации Microsoft SQL Server Распределенного Воспроизведения указываются в XML-файлах на контроллере распределенного воспроизведения, клиентах распределенного воспроизведения и месте, где установлено средство администрирования. Эти файлы включают в себя:

Файл конфигурации контроллера: DReplayController.config

Когда запускается служба контроллера Распределённое воспроизведение SQL Server, она загружает уровень ведения журнала из файла конфигурации контроллера DReplayController.config. Этот файл находится в папке, в которую установлена служба контроллера распределенного воспроизведения:

<путь установки контроллера>\DReplayController.config

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

Настройки XML-элемент Описание Допустимые значения Обязательное поле
Уровень ведения журнала <LoggingLevel> Задает уровень ведения журнала для службы контроллера. INFORMATION | WARNING | CRITICAL № Значение по умолчанию — CRITICAL.

Пример

В этом примере показан файл конфигурации контроллера, в котором подавляются записи журнала INFORMATION и WARNING .

<?xml version='1.0'?> 
<Options> 
<LoggingLevel>CRITICAL</LoggingLevel> 
</Options> 

Файл конфигурации клиента: DReplayClient.config

При запуске клиентской службы распределенного воспроизведения SQL Server, она загружает параметры из файла конфигурации клиента, DReplayClient.config. Этот файл находится на каждом клиентском компьютере в папке, где установлена служба клиента распределенного воспроизведения:

<путь установки клиента>\DReplayClient.config

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

Настройки XML-элемент Описание Допустимые значения Обязательное поле
Контроллер <Controller> Задает имя компьютера для контроллера. Клиент предпринимает попытку зарегистрироваться в среде распределенного воспроизведения, обращаясь к контроллеру. Локальный компьютер можно указать как «localhost» или «.». № По умолчанию клиент пытается зарегистрироваться на экземпляре контроллера, работающего локально («.»), если таковой существует.
Рабочий каталог клиента <WorkingDirectory> Локальный путь на клиенте, где сохраняются переданные файлы.

Файлы в этом каталоге при следующем воспроизведении перезаписываются.
Полное имя каталога, начиная с буквы диска. № Если значение не задано, то переданные файлы сохраняются в той же папке, где находится файл конфигурации клиента по умолчанию. Если значение указано, но папка не существует на клиенте, то служба клиента не будет запущена.
Каталог с результатами клиента <ResultDirectory> Локальный путь на клиенте, где сохраняется файл результатов трассировки в результате операции воспроизведения (для клиента).

Файлы в этом каталоге при следующем воспроизведении перезаписываются.
Полное имя каталога, начиная с буквы диска. № Если значение не задано, то файл трассировки результатов сохраняется в той же папке, где находится файл конфигурации клиента по умолчанию. Если значение указано, но папка не существует на клиенте, то служба клиента не будет запущена.
Уровень ведения журнала <LoggingLevel> Задает уровень ведения журнала для службы клиента. INFORMATION | WARNING | CRITICAL № Значение по умолчанию — CRITICAL.

Пример

В этом примере показан измененный файл конфигурации клиента, в котором указано, что служба контроллера выполняется на другом компьютере с именем Controller1. Элементы WorkingDirectory и ResultDirectory настроены на использование папок c:\ClientWorkingDir и c:\ResultTraceDirсоответственно. Уровень ведения журнала был изменен с значения по умолчанию для подавления записей журнала INFORMATION и WARNING.

<?xml version='1.0'?> 
<Options> 
    <Controller>Controller1</Controller> 
    <WorkingDirectory>c:\ClientWorkingDir</WorkingDirectory> 
    <ResultDirectory>c:\ResultTraceDir</ResultDirectory> 
    <LoggingLevel>CRITICAL</LoggingLevel> 
</Options> 

Файл конфигурации предварительной обработки: DReplay.exe.preprocess.config

При использовании средства администрирования для запуска предварительной обработки оно загружает параметры из файла конфигурации предварительной обработки DReplay.exe.preprocess.config.

Расположение измененного файла конфигурации предварительной обработки можно указать в файле конфигурации по умолчанию или в параметре средства администрирования -c . Дополнительные сведения об использовании параметра предварительной обработки средства администрирования см. в разделе Параметр предварительной обработки (средство администрирования распределенного воспроизведения).

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

<путь установки средства администрирования>\DReplayAdmin\DReplay.exe.preprocess.config

Параметры конфигурации предварительной обработки указываются в дочерних XML-элементах элемента <PreprocessModifiers> в файле конфигурации предварительной обработки. В их число входят следующие параметры.

Настройки XML-элемент Описание Допустимые значения Обязательное поле
Включить действия системного сеанса <IncSystemSession> Указывает, будут ли включены записанные действия системного сеанса при воспроизведении. Yes | No № Значение по умолчанию — No.
Максимальное время простоя <MaxIdleTime> Ограничивает время простоя до определенного числа (в секундах). Целое число >= –1.

-1 указывает, что значение в исходном файле трассировки не менялось.

0 указывает наличие некоторой активности, которая происходит в любой момент времени.
№ Значение по умолчанию — -1.

Пример

Файл конфигурации предварительной обработки по умолчанию.

<?xml version='1.0'?> 
<Options> 
    <PreprocessModifiers> 
        <IncSystemSession>No</IncSystemSession> 
        <MaxIdleTime>-1</MaxIdleTime> 
    </PreprocessModifiers> 
</Options> 

Файл конфигурации воспроизведения: DReplay.exe.replay.config

При использовании средства администрирования для запуска воспроизведения событий оно загружает параметры воспроизведения из файла конфигурации воспроизведения DReplay.exe.replay.config.

Расположение измененного файла конфигурации воспроизведения можно указать в файле конфигурации по умолчанию или в параметре средства администрирования -c . Дополнительные сведения об использовании параметра воспроизведения средства администрирования см. в разделе Параметр воспроизведения (средство администрирования распределенного воспроизведения).

Файл конфигурации воспроизведения по умолчанию расположен в папке установки средства администрирования.

<путь установки средства администрирования>\DReplayAdmin\DReplay.exe.replay.config

Параметры конфигурации воспроизведения указываются в дочерних XML-элементах элементов <ReplayOptions> и <OutputOptions> в файле конфигурации воспроизведения.

<ReplayOptions> элемент

В файле конфигурации воспроизведения в элементе <ReplayOptions> указываются следующие параметры.

Настройки XML-элемент Описание Допустимые значения Обязательное поле
Целевой экземпляр SQL Server (тестовый сервер) <Server> Указывает имя сервера и экземпляра SQL Server для подключения. имя_сервера[\имя_экземпляра]

Указывать "localhost" или "." в качестве псевдонима локального узла нельзя.
Нет, если имя сервера уже указано с использованием параметра -sуказанный сервер с опцией replay инструмента администрирования.
Режим последовательного выполнения <SequencingMode> Задает режим планирования событий. synchronization | stress № Значение по умолчанию — stress.
Гранулярность масштабирования нагрузки <StressScaleGranularity> Указывает, должны ли все подключения к идентификатору сеанса (SPID) масштабироваться вместе (SPID) или независимо (подключение) в режиме стресса. SPID | Соединение Да. Значение по умолчанию — SPID.
Масштаб времени коннекта <ConnectTimeScale> Используется для масштабирования времени подключения в режиме нагрузки. Целое число от 1 до 100. № Значение по умолчанию — 100.
Масштаб времени <ThinkTimeScale> Используется для масштабирования времени размышления в режиме нагрузки. Целое число от 0 до 100. № Значение по умолчанию — 100.
Использование пула соединений <UseConnectionPooling> Указывает, будет ли использоваться пул соединений на каждом клиенте распределенного воспроизведения. Да | Нет Да. Значение по умолчанию — Yes.
Интервал мониторинга состояния <HealthmonInterval> Указывает, как часто запускать монитор состояния системы (в секундах).

Это значение используется только в режиме синхронизации.
Целое число >= 1

(-1 для отключения)
№ Значение по умолчанию — 60.
Превышен лимит времени ожидания запроса <QueryTimeout> Задает время ожидания запроса в секундах. Это значение действует только до возврата первой строки. Целое число >= 1

(-1 для отключения)
№ Значение по умолчанию — 3600.
Потоков на клиент <ThreadsPerClient> Задает число потоков воспроизведения для использования на каждом клиенте воспроизведения. Целое число от 1 до 512. № Если значение не указано, то для распределенного воспроизведения будет использоваться значение 255.

<ПараметрыВывода> Element

В файле конфигурации воспроизведения в элементе <OutputOptions> указываются следующие параметры.

Настройки XML-элемент Описание Допустимые значения Обязательное поле
Записать количество строк <RecordRowCount> Указывает, следует ли записывать число строк для каждого результирующего набора. Yes | No № Значение по умолчанию — Yes.
Запись результирующего набора <RecordResultSet> Указывает, следует ли записывать содержимое всех результирующих наборов. Yes | No № Значение по умолчанию — No.

Пример

Файл конфигурации воспроизведения по умолчанию:

<?xml version='1.0'?> 
<Options> 
    <ReplayOptions> 
        <Server></Server> 
        <SequencingMode>stress</SequencingMode> 
        <ConnectTimeScale></ConnectTimeScale> 
        <ThinkTimeScale></ThinkTimeScale> 
        <HealthmonInterval>60</HealthmonInterval> 
        <QueryTimeout>3600</QueryTimeout> 
        <ThreadsPerClient></ThreadsPerClient> 
    </ReplayOptions> 
    <OutputOptions> 
        <ResultTrace> 
            <RecordRowCount>Yes</RecordRowCount> 
            <RecordResultSet>No</RecordResultSet> 
        </ResultTrace> 
    </OutputOptions> 
</Options> 

Возможная ошибка при запуске с режимом последовательного выполнения синхронизации

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

Одним из примеров является записанная рабочая нагрузка, использующая WAITFOR, например, в инструкции WAITFOR RECEIVE в Service Broker. При использовании режима последовательного выполнения синхронизации пакеты воспроизводятся последовательно. Если после резервного копирования базы данных, но до запуска трассировки захвата для воспроизведения, в исходной базе данных происходит INSERT, то оператор WAITFOR RECEIVE, выданный во время воспроизведения, может ожидать в течение всего времени, заданного в WAITFOR. События, назначенные для повторного воспроизведения после WAITFOR RECEIVE, будут задержаны. Это может привести к тому, что счетчик системного монитора пакетных запросов/с для конечного объекта базы данных воспроизведения опускается до нуля, пока не завершится оператор WAITFOR.

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

  1. Приостановите базы данных, которые будут использоваться в качестве объектов воспроизведения.

  2. Позвольте всем ожидающим действиям завершиться.

  3. Создайте резервные копии баз данных и дождитесь завершения резервного копирования.

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

См. также