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


Требования к воспроизведению

В дополнение к любым другим отслеживаемым классам событий при трассировке должны захватываться следующие классы событий, что обеспечивает ее воспроизведение (обратите внимание, что если для настройки трассировки, которая в дальнейшем используется при воспроизведении, применяется шаблон TSQL_Replay, то эти события включены по умолчанию):

  • **CursorClose (**требуется только при воспроизведении курсоров со стороны сервера);

  • CursorExecute (требуется только при воспроизведении курсоров со стороны сервера);

  • CursorOpen (требуется только при воспроизведении курсоров со стороны сервера);

  • CursorPrepare (требуется только при воспроизведении курсоров со стороны сервера);

  • CursorUnprepare (требуется только при воспроизведении курсоров со стороны сервера);

  • Audit Login;

  • Audit Logout;

  • ExistingConnection;

  • RPC Output Parameter;

  • RPC:Completed;

  • RPC:Starting;

  • Exec Prepared SQL (требуется только при воспроизведении подготовленных инструкций SQL на стороне сервера);

  • Prepare SQL (требуется только при воспроизведении подготовленных инструкций SQL на стороне сервера);

  • SQL:BatchCompleted;

  • SQL:BatchStarting.

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

  • Event Class;

  • EventSequence;

  • TextData;

  • Application Name;

  • LoginName;

  • DatabaseName;

  • Database ID;

  • ClientProcessID;

  • HostName;

  • ServerName;

  • Binary Data;

  • SPID;

  • Start Time;

  • EndTime;

  • IsSystem;

  • NTDomainName

  • NTUserName

  • Error.

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

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

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

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

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

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

  • Все пароли должны совпадать с паролями пользователя, выполняющего воспроизведение.

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

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

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

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