Обзор распределённого воспроизведения 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 Native Client. Кроме того, для распределенного воспроизведения используются файлы, фиксируемые с помощью трассировки 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, который клиенты Distributed Replay могут использовать для воспроизведения данных трассировки. Рекомендуется размещать целевой сервер в среде тестирования.
Средство администрирования, контроллер и клиент распределенного воспроизведения могут быть установлены на одном компьютере или на разных компьютерах. На одном компьютере может выполняться только один экземпляр контроллера распределенного воспроизведения или службы клиента.
На следующем рисунке показана физическая архитектура системы распределенного воспроизведения SQL Server.
задачи распределённого воспроизведения
Описание задачи | Статья |
---|---|
Описание настройки распределенного воспроизведения. | Настройка распределенного воспроизведения |
Описывает процесс подготовки данных трассировки для ввода. | Подготовка данных входной трассировки |
Описывает процесс воспроизведения данных трассировки. | Воспроизведение данные трассировки |
Описывает, как проводить процесс обзора результатов данных трассировки распределенного воспроизведения. | Просмотр результатов воспроизведения |
Описывает, как при помощи средства администрирования можно инициировать операции на контроллере, наблюдать за ними и отменять их. | Параметры командной строки средства администрирования (программа распределенного воспроизведения) |
Требования
Прежде чем использовать функцию распределенное воспроизведение, рассмотрите требования к продукту, описанные в этой статье.
Требования к трассировки входных данных
Для успешного воспроизведения данных трассировки они должны соответствовать требованиям к версии и формату и содержать необходимые события и столбцы.
Версии входной трассировки
распределенное воспроизведение поддерживает входные данные трассировки, собранные в следующих версиях 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 для захвата входных данных трассировки или если требования к входной трассировке не удовлетворены, вы можете получить неожиданные результаты воспроизведения.
Также можно создать пользовательский шаблон трассировки и использовать его для воспроизведения событий в программе распределенного воспроизведения, если он содержит следующие события:
- Аудит входа в систему
- Аудит завершения сеанса
- Существующее соединение
- Параметр вывода RPC
- RPC: Завершено
- RPC:Запуск
- SQL:BatchCompleted
- SQL:BatchStarting
При воспроизведении курсоров на стороне сервера также необходимы следующие события:
- CursorClose
- CursorExecute
- CursorOpen
- CursorPrepare
- CursorUnprepare
При воспроизведении инструкций SQL, подготовленных на сервере, дополнительно необходимы следующие события:
- Выполнить подготовленный SQL
- Подготовить SQL
Все входные данные трассировки должны содержать следующие столбцы:
- Класс событий
- Последовательность событий
- TextData
- Имя приложения
- Имя пользователя для входа
- имя_базы_данных
- Идентификатор базы данных
- Имя хоста
- Бинарные данные
- СПИД
- Время начала
- Время окончания
- 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 Native Client SQL Server.
Требования к подготовке целевого сервера
Рекомендуется размещать целевой сервер в среде тестирования. Чтобы воспроизвести данные трассировки для другого экземпляра SQL Server, отличного от первоначально записанного, убедитесь, что на целевом сервере выполнены следующие действия:
Все имена входа и пользователи, содержащиеся в данных трассировки, должны присутствовать на целевом сервере в той же базе данных.
Все имена входа и пользователи на целевом сервере должны обладать теми же разрешениями, которые были у них на исходном сервере.
Желательно, чтобы идентификаторы баз данных на целевом и на исходном серверах совпадали. Впрочем, если они не совпадают, соответствие можно установить по параметру DatabaseName, если он есть в трассировке.
Для каждого имени входа, содержащегося в трассировочных данных, по умолчанию должна быть задана база данных, соответствующая целевой базе данных имени входа на целевом сервере. Например, данные трассировки, которые необходимо воспроизвести, включают действие входа Фред в базе данных Fred_Db на исходном экземпляре SQL Server. Поэтому на целевом сервере необходимо задать базу данных по умолчанию для имени входа Fred, соответствующую базе данных Fred_Db (даже если имена баз данных различаются). Базу данных по умолчанию для учетной записи можно задать с помощью системной хранимой процедуры
sp_defaultdb
.
В результате воспроизведения событий, связанных с отсутствующими или неверными именами входа, возникают ошибки воспроизведения, но операция продолжается.