Требования к воспроизведению
В дополнение к любым другим отслеживаемым классам событий при трассировке должны захватываться следующие классы событий, что обеспечивает ее воспроизведение (обратите внимание, что если для настройки трассировки, которая в дальнейшем используется при воспроизведении, применяется шаблон 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.