replay オプション (Distributed Replay 管理ツール)
適用対象: 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 分散再生管理ツールである DReplay.exe は、分散再生コントローラーと通信するために使用できるコマンド ライン ツールです。 このトピックでは、 replay コマンド ライン オプションとそれに対応する構文について説明します。
replay オプションはイベント再生段階を開始します。ここでは、コントローラーは、指定されたクライアントに再生データをディスパッチし、分散再生を開始して、クライアントを同期します。 必要に応じて、再生に参加している各クライアントは再生アクティビティを記録し、結果トレース ファイルをローカルに保存できます。
管理ツールの構文で使用される構文表記規則の詳細については、「Transact-SQL 構文表記規則」を参照してください。
構文
dreplay replay [-m controller] -d controller_working_dir [-o]
[-s target_server] -w clients [-c config_file]
[-f status_interval]
パラメーター
-m controller
コントローラーのコンピューターの名前を指定します。 "localhost
" または ".
" を使用してローカル コンピューターを参照できます。
-m パラメーターが指定されていない場合、ローカル コンピューターが使用されます。
-d controller_working_dir
中間ファイルが格納される、コントローラー上のディレクトリを指定します。 -d パラメーターは必須です。
これには次の要件があります。
ディレクトリはコントローラー上に置く必要があります。
ドライブ文字で始まる完全なパスを指定する必要があります (たとえば、
c:\WorkingDir
)。パスはバックスラッシュ "
\
" で終了することはできません。UNC パスはサポートされていません。
-o
クライアントの再生アクティビティをキャプチャし、クライアント構成ファイル <ResultDirectory>
の DReplayClient.xml
要素によって指定されたパスにある結果トレース ファイルに保存します。
-o パラメーターが指定されていない場合は、結果トレース ファイルは生成されません。 コンソール出力は再生の最後に概要情報を返しますが、他の再生統計情報は提供されません。
-s target_server
分散ワークロードが再生される SQL Server の対象インスタンスを指定します。 このパラメーターは、 server_name[\instance name] の形式で指定します。
"localhost
" または ".
" をターゲット サーバーとして使用することはできません。
再生構成ファイル DReplay.exe.replay.config
の <ReplayOptions>
セクションに <Server>
要素が指定されている場合、-s パラメーターは必要ありません。
-s パラメーターが使用されている場合、再生構成ファイルの <Server>
セクションの <ReplayOptions>
要素は無視されます。
-w clients
この必須パラメーターは、分散再生に参加するクライアントのコンピューター名を指定するコンマ区切りのリスト (スペースを含まない) です。 IP アドレスは指定できません。 コントローラーにクライアントが既に登録されている必要があることに注意してください。
Note
クライアント サービスが開始するときに、クライアント構成ファイルで指定されているコントローラーにクライアントが登録されます。
-c config_file
再生構成ファイルの完全なパスです。別の場所に保存されている場合に、その場所を指定するために使用します。
再生構成ファイル DReplay.exe.replay.config
の既定値を使用する場合、-c パラメーターは必要ありません。
-f status_interval
状態を表示する頻度 (秒単位) を指定します。
-f を指定しない場合は、既定の間隔は 30 秒です。
例
この例の分散再生では、変更された再生構成ファイル DReplay.exe.replay.config
から多くの動作が派生しています。
-m パラメーターは、
controller1
というコンピューターがコントローラーとして動作するように指定しています。 コントローラー サービスが別のコンピューターで実行されている場合は、コンピューター名を指定する必要があります。-d パラメーターは、コントローラーの中間ファイルの場所として
c:\WorkingDir
を指定しています。-o パラメーターは、指定された各クライアントが再生アクティビティをキャプチャし、それを結果トレース ファイルに保存するように指定しています。 注:構成ファイル内の
<ResultTrace>
要素は、行数と結果セットが記録される場合に使用できます。-w パラメーターは、
client1
からclient4
までのコンピューターがクライアントとして分散再生に参加するように指定しています。-c パラメーターは、変更された構成ファイル
DReplay.exe.replay.config
を指すために使用されています。再生構成ファイル
DReplay.exe.replay.config
の<ReplayOptions>
要素で<Server>
要素が指定されているため、-s パラメーターは必要ありません。
管理ツールがコントローラーとは別のコンピューターから実行される場合、イベント再生段階は、次の構文で開始されます。
dreplay replay -m controller1 -d c:\WorkingDir -o -w client1,client2,client3,client4 -c c:\DReplay.exe.replay.config
同期シーケンス モードを指定するために、 <SequencingMode>
ファイルの DReplay.exe.replay.config
要素が値 synchronization
と同じに設定されます。 再生構成ファイルの <ResultTrace>
セクションは、行数を記録するように変更されます。 これらの変更を示したものが、次の XML 例です。
<?xml version='1.0'?>
<Options>
<ReplayOptions>
<Server>server_name\replay_target_instance</Server>
<SequencingMode>synchronization</SequencingMode>
<ConnectTimeScale></ConnectTimeScale>
<ThinkTimeScale></ThinkTimeScale>
<HealthmonInterval>60</HealthmonInterval>
<QueryTimeout>3600</QueryTimeout>
<ThreadsPerClient></ThreadsPerClient>
</ReplayOptions>
<OutputOptions>
<ResultTrace>
<RecordRowCount>Yes</RecordRowCount>
<RecordResultSet>No</RecordResultSet>
</ResultTrace>
</OutputOptions>
</Options>
ストレス シーケンス モードを指定するために、 <SequencingMode>
ファイルの DReplay.exe.replay.config
要素が値 stress
と同じに設定されます。 <ConnectTimeScale>
および <ThinkTimeScale>
要素が値 50
に設定されます (50% を指定する場合)。 接続時間と待ち時間の詳細については、「 Configure Distributed Replay」を参照してください。 これらの変更を示したものが、次の XML 例です。
<?xml version='1.0'?>
<Options>
<ReplayOptions>
<Server>server_name\replay_target_instance_name</Server>
<SequencingMode>stress</SequencingMode>
<ConnectTimeScale>50</ConnectTimeScale>
<ThinkTimeScale>50</ThinkTimeScale>
<HealthmonInterval>60</HealthmonInterval>
<QueryTimeout>3600</QueryTimeout>
<ThreadsPerClient></ThreadsPerClient>
</ReplayOptions>
<OutputOptions>
<ResultTrace>
<RecordRowCount>Yes</RecordRowCount>
<RecordResultSet>No</RecordResultSet>
</ResultTrace>
</OutputOptions>
</Options>
アクセス許可
対話ユーザー (ローカル ユーザーまたはドメイン ユーザー アカウント) として、管理ツールを実行する必要があります。 ローカル ユーザー アカウントを使用するには、管理ツールとコントローラーが同じコンピューター上で実行されている必要があります。
詳細については、「 Distributed Replay Security」を参照してください。