重播要求

除了其他所有要监视的事件类之外,还必须在跟踪中捕获下列事件类,跟踪才能重播(请注意,如果 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 的服务器(目标)而非最初跟踪的服务器(源)的跟踪,请确保已执行下列操作:

  • 必须在目标上而且是在与源相同的数据库中创建跟踪包含的所有登录名和用户。

  • 目标中的所有登录名和用户具有的权限必须与源中的相同。

  • 所有登录密码必须是执行重播的用户的密码。

  • 目标上的数据库 ID 最好与源上的数据库 ID 相同。但是,如果它们不相同,则在跟踪中出现 DatabaseName 时,将根据它进行匹配。

  • 必须将跟踪内包含的每个登录名的默认数据库在目标上设置成登录名各自的目标数据库。例如,在源上,要重播的跟踪包含数据库 Fred_Db 内登录名 Fred 的活动。因此在目标上,必须将登录名 Fred 的默认数据库设置成与 Fred_Db 相匹配的数据库(即使数据库名称不同)。若要设置登录名的默认数据库,请使用 sp_defaultdb 系统存储过程。

重播与不存在的或不正确的登录名相关的事件会导致重播错误,但重播操作会继续。

有关重播跟踪所需权限的信息,请参阅运行 SQL Server Profiler 所需的权限