次の方法で共有


データベース実験アシスタントでトレースを再生する

手記

このツールは、2024 年 12 月 15 日 廃止されました。 発生した問題については、このツールのサポートを停止しており、バグ修正やそれ以降の更新プログラムは発行されません。

Database Experimentation Assistant (DEA) では、アップグレードされたテスト環境に対してキャプチャされたトレース ファイルを再生できます。 たとえば、SQL Server 2008 R2 で実行される運用ワークロードを考えてみましょう。 ワークロードのトレース ファイルは 2 回再生する必要があります。運用環境で実行されている SQL Server のバージョンが同じ環境では 1 回、SQL Server 2016 などのアップグレードターゲット SQL Server バージョンの環境では 2 回再生されます。

手記

トレースを再生するには、分散再生トレースを実行するように仮想マシンまたは物理コンピューターを手動で設定する必要があります。 詳細については、「Database Experimentation Assistantの分散再生を構成する」を参照してください。

ターゲット 1 のトレース再生を構成する

まず、既存の運用環境を表すターゲット 1 に対してトレース再生を実行する必要があります。

  1. DEA の左側のナビゲーションバーで矢印アイコンを選択し、その後、[すべての再生 ] ページで [新しい再生 ] を選択します。

    DEA で再生を作成するのスクリーンショット。

    手記

    分散再生コントローラー コンピューターには、リモート接続に使用するユーザー アカウントへのアクセス許可が必要です。

  2. [新しい再生 ] ページの [再生の詳細 ] に、次の情報を入力または選択します。

    • 再生名: トレース再生の名前を入力します。

    • ソース トレース形式: ソース トレース ファイルの形式 (Trace または XEvents) を指定します。

    • ソース ファイルへの完全なパス: ソース トレース ファイルへの完全なパスを指定します。 DReplay を使用する場合は、DReplay コントローラーとして機能するコンピューターにファイルが存在する必要があり、ユーザー アカウントにはファイルとフォルダーへのアクセスが必要です。

    • 再生ツールの: 再生ツール (DReplay または InBuilt) を指定します。

    • コントローラーコンピューター名: 分散再生コントローラーとして機能するコンピューターの名前を指定します。

    • トレース再生の場所: トレースの再生に関連付けられたトレース ファイルやXEventsを格納するパスを指定します。

      手記

      Azure SQL Database または Azure SQL Managed Instance の場合は、Azure Blob Storage アカウントの SAS URI を指定する必要があります。

  3. [はい、データベースを手動で復元しました] チェック ボックスを オンにして、データベース 復元したことを確認します。

  4. [SQL Server 接続の詳細] で、次の情報を入力または選択します。

    • サーバーの種類の: SQL Server の種類を指定します (SqlServerAzureSqlDbAzureSqlManagedInstance)。
    • サーバー名: SQL Server のサーバー名または IP アドレスを指定します。
    • 認証の種類: 認証の種類として、Windows 選択します。
    • データベース名: サーバー側トレースを開始するデータベースの名前を入力します。 データベースを指定しない場合、トレースはサーバー上のすべてのデータベースでキャプチャされます。
  5. シナリオに応じて、[接続 の暗号化] チェック ボックスと [信頼サーバー証明書 ] チェック ボックスをオンまたはオフにします。

    新しい再生ページのスクリーンショット。

ターゲット 1 でトレース再生を開始する

  • 必要な情報を入力または選択した後、開始 を選択してトレースの再生を開始します。

    入力した情報が有効な場合は、分散再生プロセスが開始されます。 それ以外の場合は、正しくない情報を含むテキスト ボックスが赤で強調表示されます。 入力した値が正しいことを確認し、[スタート] 選択します。

    ターゲット 1 に対する再生の進行状況のスクリーンショット。

    必要に応じてプロセスを監視できます。 再生の実行が完了すると、DEA は指定した場所にあるファイルに結果を格納します。

    ターゲット 1 に対する再生が完了したスクリーンショット。

ターゲット 2 に対してトレース再生を実行する

ターゲット 1 に対するトレース再生の実行が完了したら、目的のアップグレード環境を表す 2 番目のターゲットに対して同じ操作を行う必要があります。

  1. 今回は、ターゲット 2 環境に関連付けられている詳細を使用して、トレース再生を構成します。

  2. ターゲット 2 でトレース再生を開始します。

    必要に応じてプロセスを監視できます。 再生の実行が完了すると、DEA は指定した場所にあるファイルに結果を格納します。

トレースの再生に関してよく寄せられる質問

Q: ターゲット サーバーで再生キャプチャを開始するには、どのようなセキュリティ アクセス許可が必要ですか?

  • DEA アプリケーションでトレース操作を実行している Windows ユーザーは、SQL Server を実行しているターゲット コンピューターに対する sysadmin 権限を持っている必要があります。 トレースを開始するには、これらのユーザー権限が必要です。
  • SQL Server を実行しているターゲット コンピューターが実行されているサービス アカウントには、指定したトレース ファイル パスへの書き込みアクセス権が必要です。
  • 分散再生クライアント サービスが実行されているサービス アカウントには、SQL Server を実行しているターゲット コンピューターに接続してクエリを実行するためのユーザー権限が必要です。

Q: 同じセッションで複数の再生を開始できますか?

はい。複数の再生を開始し、同じセッションで完了するように追跡できます。

Q: 複数の再生を並列で開始できますか。

はい。ただし、コントローラーとクライアントで選択されているコンピューターのセットは同じではありません。 コントローラーとクライアントは忙しくなります。 並列再生を開始するには、コントローラーとクライアント の下に別のコンピューター セットを設定します。

Q: 通常、再生が完了するまでにどのくらいの時間がかかりますか。

通常、リプレイには、ソース トレースと同じ時間と、ソース トレースの前処理にかかる時間が必要です。 ただし、コントローラーに登録されているクライアント コンピューターがリプレイから生成された負荷を管理するのに十分でない場合は、再生の完了に時間がかかる可能性があります。 最大 16 台のクライアント コンピューターをコントローラーに登録できます。

Q: ターゲット トレース ファイルのサイズはどのくらいですか?

ターゲット トレース ファイルは、ソース トレースのサイズの 5 ~ 15 倍にすることができます。 ファイル サイズは、実行されるクエリの数に基づきます。 たとえば、クエリ プランの BLOB が大きい場合があります。 これらのクエリの統計が頻繁に変更される場合は、より多くのイベントがキャプチャされます。

Q: データベースを復元する必要がある理由

SQL Server は、ステートフル リレーショナル データベース管理システムです。 A/B テストを適切に実行するには、データベースの状態を常に保持する必要があります。 そうしないと、再生中のクエリで、運用環境に表示されないエラーが表示される場合があります。 これらのエラーを回避するには、ソース キャプチャの直前にバックアップを作成することをお勧めします。 同様に、再生中にエラーが発生しないようにするには、SQL Server を実行しているターゲット コンピューターでバックアップを復元する必要があります。

Q: 再生ページの "pass %" とはどういう意味ですか?

パス % は、渡されたクエリの割合のみを意味します。 エラーの数が予想されるかどうかを診断できます。 エラーが予想される場合や、データベースの整合性が失われたためにエラーが発生する可能性があります。 パス % の値が期待通りでない場合は、トレースを停止し、SQL Profiler のトレース ファイルを調んで、成功しなかったクエリを確認できます。

Q: 再生中に収集されたトレース イベントを確認するにはどうすればよいですか?

ターゲット トレース ファイルを開き、SQL Profiler で表示します。 または、再生キャプチャを変更する場合は、すべての SQL Server スクリプトを C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Scripts\StartReplayCapture.sql で使用できます。

Q: 再生中に DEA はどのようなトレース イベントを収集しますか?

DEA は、パフォーマンス関連の情報を含むトレース イベントをキャプチャします。 キャプチャ構成は、StartReplayCaptureTrace.sql スクリプト内にあります。 これらのイベントは、sp_trace_setevent (Transact-SQL) リファレンス ドキュメントに記載されている一般的な SQL Server トレース イベントです。

トレース再生のトラブルシューティング

Q: SQL Server を実行しているコンピューターに接続できないのはなぜですか?

  • SQL Server を実行しているコンピューターの名前が有効であることを確認します。 確認するには、SQL Server Management Studio (SSMS) を使用してサーバーに接続してみてください。
  • ファイアウォール構成によって、SQL Server を実行しているコンピューターへの接続がブロックしていないことを確認します。
  • ユーザーが必要なユーザー権限を持っていることを確認します。
  • 分散再生クライアントのサービス アカウントが、SQL Server を実行しているコンピューターにアクセスできるかどうかを確認します。

詳細については、\DEA のログ %temp%参照してください。 問題が解決しない場合は、製品チームにお問い合わせください。

Q: 分散再生コントローラーに接続できないのはなぜですか?

  • 分散再生コントローラー サービスがコントローラー コンピューターで実行されていることを確認します。 確認するには、分散再生管理ツールを使用します (コマンド dreplay.exe status -f 1を実行します)。
  • 再生がリモートで開始された場合:
    • DEA を実行しているコンピューターがコントローラーに正常に ping できることを確認します。 再生環境の構成 ページの手順に従って、ファイアウォール設定で接続が許可されていることを確認します。 詳細については、SQL Server 分散再生 概要に関する記事を参照してください。
    • 分散再生コントローラーのユーザーに対して DCOM リモート起動とリモート アクティブ化が許可されていることを確認します。
    • 分散再生コントローラーのユーザーに対して DCOM リモート アクセスユーザー権限が許可されていることを確認します。

Q: トレース ファイルのパスがコンピューターに存在します。 分散再生コントローラーで見つからないのはなぜですか?

分散再生は、ローカル ディスク リソースにのみアクセスできます。 再生を開始する前に、ソース トレース ファイルを分散再生コントローラー コンピューターにコピーする必要があります。 また、DEA 新しい再生 ページにパスを指定する必要があります。

UNC パスは分散再生と互換性がありません。 分散再生パスは、拡張子を含む最初のソース トレース ファイルへのローカル絶対パスである必要があります。

Q: 新しい再生ページでファイルを参照できないのはなぜですか?

リモート コンピューター上のフォルダーを参照できないため、ファイルの参照は役に立ちません。 絶対パスをコピーして貼り付ける方が効率的です。

Q: トレースで再生を開始しましたが、Distributed Replay ではイベントが再生されませんでした。 なぜでしょうか。

この問題は、トレース ファイルに再生可能なイベントがない、またはイベントの再生方法に関する情報がないために発生する可能性があります。 指定されたトレース ファイル パスがソース トレース ファイルを指しているかどうかを確認します。 ソース トレース ファイルは、StartCaptureTrace.sql スクリプトで提供される構成を使用して作成されます。

Q: SQL Server 2017 分散再生コントローラーを使用してトレース ファイルを前処理しようとすると、"予期しないエラーが発生しました" と表示されます。 なぜでしょうか。

この問題は、SQL Server 2017 の RTM バージョンで知られています。 詳細については、「DReplay 機能を使用して SQL Server 2017でキャプチャされたトレースを再生する場合の予期しないエラーを参照してください。

この問題は、SQL Server 2017 の最新の累積的な更新プログラム 1 で対処されています。 SQL Server 2017 の最新バージョンのKB4038634 - 累積的な更新プログラム 1 をダウンロードします。