適用対象:SQL Server
Azure SQL Managed Instance
SQL Server Profiler または分散再生ユーティリティを使用してトレース データを再生するには、特定のイベント クラスと列のセットがトレースにキャプチャされている必要があります。 TSQL_Replay トレース テンプレートを使用して、後で再生に使用するトレースを構成した場合、これらの設定は既定で有効になります。 このトピックでは、これらの設定と、再生を実行するためのその他の必要条件について説明します。
集中型 OLTP アプリケーションを再生するには、分散再生ユーティリティを使用する必要があります (多くのアクティブな同時接続または高スループット)。 Distributed Replay Utility では、複数のコンピューターからのトレース データを再生し、ミッションクリティカルなワークロードをより正確にシミュレートできます。 詳細については、「 SQL Server 分散再生の概要」を参照してください。
再生に必要なイベント クラス
SQL Server Profiler で再生するには、監視するイベント クラスのほかに、以下の一連のイベント クラスをトレースにキャプチャする必要があります。
- CursorClose (サーバー側カーソルを再生する場合にのみ必要)
- CursorExecute (サーバー側のカーソルを再生する場合のみ必要)
- CursorOpen (サーバー側のカーソルを再生する場合のみ必要)
- CursorPrepare (サーバー側のカーソルを再生する場合のみ必要)
- CursorUnprepare (サーバー側のカーソルを再生する場合のみ必要)
- Audit Login
- 監査ログオフ
- ExistingConnection
- RPC 出力パラメーター
- RPC:Completed
- RPC:開始
- Exec Prepared SQL (サーバー側の準備された SQL ステートメントを再生する場合のみ必要)
- Prepare SQL (サーバー側の準備された SQL ステートメントを再生する場合のみ必要)
- SQL:BatchCompleted
- SQL:BatchStarting
再生に必要なデータ列
トレースを再生するには、キャプチャ対象となるデータ列のほかに、以下のデータ列をトレースにキャプチャする必要があります。
- イベント クラス
- EventSequence
- TextData
- アプリケーション名
- LoginName
- DatabaseName
- データベース ID
- ClientProcessID
- ホスト名
- ServerName
- バイナリデータ
- SPID
- 開始時刻
- EndTime
- IsSystem
- NTDomainName
- NTUserName
- エラー
再生するデータをトレースにキャプチャする場合は、トレース テンプレート TSQL_Replay を使用します。
再生を実行するためのその他の必要条件
Microsoft SQL Server では、必要なイベントおよび列が存在するかどうかを再生時に調べます。 この変更によって再生の精度が上がり、必要なデータがない場合でも、再生のトラブルシューティング時に根拠のない作業をしなくて済みます。 必要なデータがトレースにない場合は、再生によってエラーが返され、ファイルの再生が停止します。
最初にトレースしたサーバー (ソース) 以外の SQL Server を実行しているサーバーに対してトレースを再生するには、以下が行われていることを確認します。
トレースに含まれるすべてのログインとユーザーが、ターゲット コンピューター上の、ソースと同じデータベース内にあらかじめ作成されていること。
ターゲット コンピューターのすべてのログインとユーザーに、ソース コンピューター上と同じ権限が与えられていること。
すべてのログイン パスワードが、再生を実行するユーザーと同じであること。
ターゲット コンピューター上のデータベース ID が、ソース コンピューター上のデータベース ID と同じであること。 ただし、これらが同じでない場合、トレース内に DatabaseName が存在すれば、それに基づいてマッチングを行えます。
トレースに記録されている各ログインの既定データベースが、ターゲット コンピューター上で、ログインの対象データベースにそれぞれ設定されていること。 たとえば、再生するトレースには、ソースのデータベースFred_DbにおけるログインFredに関するアクティビティが含まれています。 この場合、ターゲット コンピューター上では、ログイン Fredの既定データベースが、 Fred_Db に一致するデータベースに設定されていなければなりません (データベース名が異なる場合も同様)。 ログインの既定データベースを設定するには、
sp_defaultdb
システム ストアド プロシージャを使用します。
失われたログインや不正なログインに関連付けられたイベントを再生すると、再生エラーとなります。ただし、再生の処理は継続されます。
トレースを再生するために必要なアクセス許可については、「 SQL Server Profiler を実行するために必要なアクセス許可」を参照してください。