Обзор распределенное воспроизведение SQL Server

Область применения: 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 распределенное воспроизведение помогает оценить влияние будущих обновлений SQL Server. Его также можно использовать для оценки влияния обновлений оборудования и операционной системы и настройки SQL Server.

распределенное воспроизведение нерекомендуемой в SQL Server 2022

распределенное воспроизведение не рекомендуется использовать в SQL Server 2022 (16.x), как указано в разделеУстаревшие функции ядра СУБД в SQL Server 2022 (16.x). распределенное воспроизведение имеет зависимость от собственного клиента SQL Server (SNAC), который был удален из SQL Server 2022 (16.x). Это изменение описано в политиках поддержки для собственного клиента SQL Server. Кроме того, распределенное воспроизведение использует файлы, которые записываются .trc с помощью трассировки SQL и SQL Server Profiler, оба из которых также устарели.

Контроллер распределенное воспроизведение удален из программы установки SQL Server 2022 (16.x), а клиент распределенное воспроизведение больше недоступен в SQL Server Management Studio (SSMS) начиная с версии 18. Чтобы получить контроллер распределенное воспроизведение, необходимо установить SQL Server 2019 (15.x) или более раннюю версию. Чтобы получить клиент распределенное воспроизведение, необходимо установить SSMS 17.9.1.

Для клиентов в SQL Server 2022 (16.x) вместо этого можно использовать служебные программы языка разметки воспроизведения (RML), включая ostress, для воспроизведения рабочей нагрузки.

Преимущества распределенного воспроизведения

Как и SQL Server Profiler, распределенное воспроизведение можно использовать для воспроизведения записанной трассировки в обновленной тестовой среде. В отличие от SQL Server Profiler, распределенное воспроизведение не ограничено воспроизведением рабочих нагрузок с одного компьютера.

Распределенное воспроизведение является более масштабируемым решением, чем SQL Server Profiler. Распределенное воспроизведение используется для воспроизведения рабочих нагрузок со многих компьютеров и лучше моделирует важные реальные рабочие нагрузки.

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

Когда следует использовать распределенное воспроизведение

Функции SQL Server Profiler и распределенного воспроизведения частично совпадают.

Вы можете использовать SQL Server Profiler для воспроизведения записанной трассировки в обновленной тестовой среде. Кроме того, результаты воспроизведения можно анализировать с целью поиска потенциальных функциональных несовместимостей и проблем производительности. Однако SQL Server Profiler позволяет воспроизводить рабочую нагрузку только с одного компьютера. При воспроизведении работы загруженного приложения OLTP с большим числом активных одновременных подключений или пропускной способностью на сеть для SQL Server Profiler может не хватить ресурсов.

Распределенное воспроизведение является более масштабируемым решением, чем SQL Server Profiler. Распределенное воспроизведение используется для воспроизведения рабочих нагрузок с нескольких компьютеров и лучше моделирует важные реальные рабочие нагрузки.

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

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

Вы хотите воспроизвести трассировку служб Analysis Services.
Распределенное воспроизведение Необходимо оценить совместимость приложений. Например, необходимо протестировать сценарии обновления SQL Server и операционной системы, обновления оборудования или настройки индекса.

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

понятия распределенное воспроизведение

Среда распределенного воспроизведения включает следующие компоненты.

  • Средство администрирования распределенного воспроизведения. Консольное приложение DReplay.exeиспользуется для взаимодействия с контроллером распределенного воспроизведения. Используйте средство администрирования для управления распределенным воспроизведением.

  • распределенное воспроизведение контроллер: компьютер под управлением службы Windows с именем контроллера SQL Server распределенное воспроизведение. Контроллер распределенного воспроизведения управляет согласованными действиями клиентов распределенного воспроизведения. В каждой среде распределенного воспроизведения можно установить только один экземпляр контроллера.

  • распределенное воспроизведение клиентов: один или несколько компьютеров (физических или виртуальных) под управлением службы Windows с именем SQL Server распределенное воспроизведение клиента. Клиенты распределенного воспроизведения работают совместно для имитации рабочей нагрузки на экземпляре SQL Server. В каждой среде распределенного воспроизведения можно установить один или несколько клиентов.

  • Целевой сервер: экземпляр SQL Server, который клиенты распределенное воспроизведение могут использовать для воспроизведения данных трассировки. Рекомендуется размещать целевой сервер в среде тестирования.

Средство администрирования, контроллер и клиент распределенного воспроизведения могут быть установлены на одном компьютере или на разных компьютерах. На одном компьютере может выполняться только один экземпляр контроллера распределенного воспроизведения или службы клиента.

На следующем рисунке показана физическая архитектура SQL Server распределенное воспроизведение:

Diagram of the Distributed Replay architecture.

задачи распределенное воспроизведение

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

Requirements

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

Требования к трассировки входных данных

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

Входные версии трассировки

распределенное воспроизведение поддерживает входные данные трассировки, собранные в следующих версиях SQL Server:

  • SQL Server 2019 (15.x)
  • SQL Server 2017 (14.x) (накопительное обновление 1 и более поздние версии— см . накопительные обновления SQL Server 2017)
  • SQL Server 2016 (13.x)
  • SQL Server 2014 (12.x)
  • SQL Server 2012 (11.x)
  • SQL Server 2008 R2 (10.50.x)
  • SQL Server 2008 (10.0.x)
  • SQL Server 2005 (9.x)

Форматы трассировки входных данных

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

  • Отдельный файл трассировки с расширением .trc .

  • Набор файлов продолжения трассировки, соответствующих соглашению об именовании для переключения на файл продолжения, например: <TraceFile>.trc, <TraceFile>_1.trc, <TraceFile>_2.trc, <TraceFile>_3.trc, … <TraceFile>_n.trc.

Входные события трассировки и столбцы

Входные данные трассировки должны содержать определенные события и столбцы, которые воспроизводятся компонентами распределенного воспроизведения. Шаблон TSQL_Replay в SQL Server Profiler содержит все необходимые события и столбцы, а также дополнительные сведения. Дополнительные сведения об этом шаблоне см. в разделе Replay Requirements.

Предупреждение

Если вы не используете шаблон TSQL_Replay для записи входных данных трассировки или если требования к входной трассировке не удовлетворены, вы можете получить непредвиденные результаты воспроизведения.

Также можно создать пользовательский шаблон трассировки и использовать его для воспроизведения событий в программе распределенного воспроизведения, если он содержит следующие события:

  • Аудит входа в систему
  • Audit Logout
  • ExistingConnection
  • RPC Output Parameter
  • RPC:Completed
  • RPC:Starting
  • SQL:BatchCompleted
  • SQL:BatchStarting

При воспроизведении серверных курсоров также необходимы следующие события:

  • CursorClose
  • CursorExecute
  • CursorOpen
  • CursorPrepare
  • CursorUnprepare

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

  • Exec Prepared SQL
  • Prepare SQL

Все входные данные трассировки должны содержать следующие столбцы:

  • Класс событий
  • EventSequence
  • TextData
  • Имя приложения
  • LoginName
  • имя_базы_данных
  • Идентификатор базы данных
  • HostName
  • Binary Data
  • SPID
  • Время начала
  • EndTime
  • IsSystem

Поддерживаемые сочетания входных трассировок и целевых серверов

В следующей таблице перечислены поддерживаемые версии данных трассировки и для каждой поддерживаемой версии SQL Server, для которых можно воспроизвести данные.

Версия входных данных трассировки Поддерживаемые версии SQL Server для целевого экземпляра сервера
SQL Server 2005 (9.x) SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x), SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x)
SQL Server 2008 (10.0.x) SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x), SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x)
SQL Server 2008 R2 (10.50.x) SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x), SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x)
SQL Server 2012 (11.x) SQL Server 2012 (11.x), SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x)
SQL Server 2014 (12.x) SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x)
SQL Server 2016 (13.x) SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x)
SQL Server 2017 (14.x) SQL Server 2017 (14.x), SQL Server 2019 (15.x)
SQL Server 2019 (15.x) SQL Server 2019 (15.x)

Требования к операционной системе

Поддерживаемые операционные системы для запуска средства администрирования и контроллера и клиентских служб совпадают с экземпляром SQL Server. Дополнительные сведения о том, какие операционные системы поддерживаются для экземпляра SQL Server, см. в статье SQL Server 2016 и 2017: требования к оборудованию и программному обеспечению.

Компоненты распределенного воспроизведения поддерживаются в операционных системах как для платформы x86, так и для платформы x64. Для операционных систем платформы x64 поддерживается только режим Windows on Windows (WOW).

Ограничения установки

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

Компонент распределенного воспроизведения Максимальное число установленных экземпляров для среды воспроизведения
Служба контроллера распределенное воспроизведение SQL Server 1
Клиентская служба SQL Server распределенное воспроизведение 16 (физических или виртуальных компьютеров)
Средство администрирования Не ограничено

Примечание.

Хотя на одном компьютере можно устанавливать только один экземпляр программы администрирования, допускается одновременный запуск нескольких экземпляров программы администрирования. Команды, поступающие от нескольких экземпляров программы администрирования, разрешаются в порядке поступления.

Поставщик доступа к данным

распределенное воспроизведение поддерживает только поставщик доступа к данным ODBC собственного клиента SQL Server.

Требования к подготовке целевого сервера

Рекомендуется размещать целевой сервер в среде тестирования. Чтобы воспроизвести данные трассировки для другого экземпляра SQL Server, отличного от первоначально записанного, убедитесь, что на целевом сервере выполнены следующие действия:

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

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

  • Желательно, чтобы идентификаторы баз данных на целевом и на исходном серверах совпадали. Впрочем, если они не совпадают, соответствие можно установить по параметру DatabaseName, если он есть в трассировке.

  • Для каждого имени входа в трассировке должна быть задана база данных по умолчанию, соответствующая целевой базе данных имени входа. Например, данные трассировки, которые необходимо воспроизвести, содержат действие для входа Фред в базе данных Fred_Db на исходном экземпляре SQL Server. Поэтому на целевом сервере необходимо задать базу данных по умолчанию для имени входа Fred, соответствующую базе данных Fred_Db (даже если имена баз данных различаются). Базу данных по умолчанию для имени входа можно задать с помощью хранимой процедуры sp_defaultdb .

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