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

Область применения: 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-элемент Description Допустимые значения Обязательное поле
Уровень ведения журнала <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-элемент Description Допустимые значения Обязательное поле
Контроллер <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-элемент Description Допустимые значения Обязательное поле
Включить действия системного сеанса <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> Element

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

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

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

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

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

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

<OutputOptions> Element

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

Параметр XML-элемент Description Допустимые значения Обязательное поле
Запись числа строк <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. Запустите запись трассировки распределенного воспроизведения и возобновите нормальную рабочую нагрузку.

См. также