概要
PSSDIAG は、Microsoft 製品サポート サービスがさまざまなログとデータ ファイルを収集するために使用する汎用診断収集ユーティリティです。 PSSDIAG では、パフォーマンス モニター ログ、SQL Profiler トレース、ブロック スクリプト出力、Windows イベント ログ、および SQLDIAG 出力SQL Serverをネイティブに収集できます。 データ収集をカスタマイズするには、これらのログの種類のいずれかを有効または無効にするか、ブロックスクリプトとパフォーマンス モニターログのサンプル間隔を変更し、SQL Profiler とキャプチャするパフォーマンス モニターの特定のイベントとカウンターを変更します。 PSSDIAG では、ネイティブでサポートされている診断の種類以外のデータを必要とするサポート ケースに対して、カスタム ユーティリティまたはカスタム Transact-SQL スクリプトを実行することもできます。
追加情報
このドキュメントは、サポート ケースのトラブルシューティングを支援するために Microsoft 製品サポート サービスが送信する PSSDIAG のバージョンに適用されます。 少し異なるバージョンのツールを一般にダウンロードできます。 このツールのパブリック ダウンロード 可能なバージョンに焦点を当てたドキュメントについては、次の Microsoft Developer Network (MSDN) Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/aa175399(SQL.80).aspx
Microsoft SQL Server 2005 以降のバージョンの場合は、次の codeplex サイトにある Pssdiag および Sqldiag マネージャーを使用します。
http://diagmanager.codeplex.com/
詳細については、次の MSDN Web サイトを参照してください。
http://blogs.msdn.com/b/psssql/archive/2011/05/24/pssdiag-sqldiag-configuration-manager-released-to-codeplex.aspx
マイクロソフトのサポート ファイルをダウンロードする方法の詳細については、以下のサポート技術情報番号をクリックしてください。
119591 Microsoftがこのファイルをスキャンしてウイルスをスキャンしたオンライン サービスからMicrosoftサポートファイルを取得する方法。 配布ファイルはセキュリティで保護されたサーバー上に置かれており、権限のない第三者が無断でファイルを変更できないようになっています。 配布ファイルはセキュリティで保護されたサーバー上に置かれており、権限のない第三者が無断でファイルを変更できないようになっています。
PSSDIAG を開始する方法
PSSDIAG は、コンピューター上に作成される C:\PSSDIAG フォルダーに展開されます。 このフォルダーは、データと PSSDIAG がキャプチャするように構成されたログ ファイルを保持するのに十分なディスク領域を持つドライブ上にある必要があります。 PSSDIAG はさまざまな種類のログを収集するように構成できるため、必要な空きディスク領域はメガバイトまたは 2 から数ギガバイトまで異なる場合があります。 収集されるトレース データの量は、サーバーが処理しているワークロードの性質とボリュームによって異なる場合があることに注意してください。 したがって、正確な見積もりができない場合があります。 SQL Profiler トレースなどの大量のトレースの種類を含むデータ収集の場合は、PSSDIAG がネットワーク共有またはマップされたネットワーク ドライブからのではなく、ローカル ドライブから実行されていることを確認します。
通常、PSSDIAG は、監視対象のサーバーでローカルで実行します。 ただし、リモート サーバーを監視するように PSSDIAG を構成できます。 PSSDIAG をリモートで実行する方法の詳細については、この記事の「PSSDIAG をリモートまたはクラスター化されたSQL Serverで実行する」セクションを参照してください。 PSSDIAG をリモートで実行することは、収集およびトレースされたデータがネットワーク経由でリモート コンピューターに送信されることを意味します。 これにより、ネットワークの帯域幅と速度、およびデータが書き込まれるリモート システムの I/O と処理能力に応じて、SQL Serverのパフォーマンスに中程度から大きな影響が生じる可能性があります。
注 SQL Serverのクラスター化されたインスタンスからデータを収集する場合は、追加の手順を実行する必要がある場合があります。 PSSDIAG をサーバー上でローカルに実行する場合でも、SQL Serverのクラスター化インスタンスに接続する場合は、この記事の「PSSDIAG をリモートで実行する方法」または「クラスター化されたSQL Serverで実行する方法」セクションを参照してください。
Pssdiag.exe には、重要な固有のセキュリティ要件はありません。 ただし、PSSDIAG をキャプチャするようにオプションで構成できる多くの診断には、Microsoft Windows NT管理者の資格情報が必要です。 また、PSSDIAG がSQL Serverから診断をキャプチャする場合は、SQL Serverに sysadmin 資格情報が必要です (つまり、PSSDIAG が /G コマンド ライン スイッチで "汎用" モードで実行されていない場合)。 既定では、PSSDIAG はSQL Serverへの Windows 認証接続を行います。ただし、必要に応じてSQL Server認証を使用できます。
PSSDIAG では、いくつかのオプションのコマンド ライン パラメーターがサポートされています。 省略可能なコマンド ライン パラメーターの詳細については、「PSSDIAG コマンド ライン パラメーター」セクションを参照してください。 ただし、一般に省略可能なパラメーターを使用する必要はありません。 Microsoft ダウンロード センターのパッケージから PSSDIAG ファイルを抽出したら、Pssdiag.exe を実行してデータ収集を開始します。
PSSDIAG を起動すると、最初に開き、キャプチャするように構成されたログ ファイルが構成されます。 このプロセスには数秒かかることがあります。 PSSDIAG が完全に開始され、すべてのログがアクティブになると、コンソールに次のメッセージが出力されます。
2003/10/02 12:30:14.90 PSSDIAG コレクションが開始されました。 Ctrl キーを押しながら C キーを押して停止します。
PSSDIAG を実行して、再現可能な問題に関するデータを収集する場合は、メッセージが表示されるまで待ってから、問題の再現を試みます。
データ収集が完了し、PSSDIAG がシャットダウンされる前に PSSDIAG が実行されているコンソール セッションからログアウトしないでください。 PSSDIAG はサービスではなくコンソール ユーティリティであるため、PSSDIAG が実行されているセッションからログアウトすると、ユーティリティがシャットダウンされ、データ収集が終了します。 必要に応じてターミナル サーバー セッションから PSSDIAG を実行し、ログアウトせずにセッションを切断して PSSDIAG を実行したままにすることができます。
PSSDIAG を停止する方法
PSSDIAG を停止するには、PSSDIAG が実行されているコンソール ウィンドウで Ctrl キーを押しながら C キーを押します。 特定の時刻に自動的にシャットダウンするように PSSDIAG に指示することもできます。 詳細については、「PSSDIAG を自動的に開始および停止する」セクションを参照してください。 PSSDIAG が圧縮された .cab ファイルにファイルを自動的に追加する場合、PSSDIAG が最終的なログ ファイルの圧縮を完了するまでにかなりの時間がかかる場合があります。 Ctrl + C キーを押すと、PSSDIAG は次のようなメッセージをコンソールに送信します。
注
2003/10/02 12:24:00.69 PSSDIAG 終了データ収集。 プロセスがシャットダウンされ、ファイルが圧縮されるまで待機します (これには数分かかる場合があります)
このメッセージが表示された後、PSSDIAG は、以前に収集したデータを圧縮し続ける可能性があるにもかかわらず、サーバーから追加のデータを収集しなくなりました。
PSSDIAG が完全にシャットダウンされる前に、次のようなメッセージが表示されることがあります。
注
F:\pssdiag\output\ のファイルが PSSDIAG.CAB に追加されました。 F:\pssdiag\output\backup\でバックアップを削除しますか?
可能であれば、収集したデータ ファイルを Backup フォルダーに保持するには、"N" で回答することをお勧めします。Pssdiag.cab 出力ファイルがそのままであることを確認できます。
PSSDIAG 出力の場所
/O コマンド ライン パラメーターを使用してカスタム出力フォルダーを指定しない限り、PSSDIAG は Output という名前のフォルダーを実行するフォルダーに作成します。 自動圧縮を無効にするために /C0 (既定値) または /C1 コマンド ライン パラメーターを使用して PSSDIAG を実行している場合、出力ファイルはこのフォルダーに残ります。 Microsoft サポート担当者にフォルダーをアップロードする必要がある場合は、任意のツールを使用して Output フォルダーを圧縮できます。
PSSDIAG が自動圧縮モードで動作している場合、すべての出力ファイルが Output フォルダー内の圧縮された Pssdiag.cab ファイルに追加されます。 既定では、PSSDIAG は圧縮を実行しません。 ファイルが Pssdiag.cab ファイルに正常に追加されると、Backup という名前の別のフォルダーに移動されます。 Backup フォルダーは、Output フォルダーに作成されます。 1 つの CAB ファイルに追加できる非圧縮データの最大量は 2 ギガバイト (GB) であることに注意してください。 収集されたデータが 2 GB を超える場合は、Pssdiag2.cab、Pssdiag3.cab などの名前の追加の CAB ファイルが作成されます。
PSSDIAG の削除
PSSDIAG では、COM オブジェクトの登録、システム ディレクトリへのファイルのコピー、システム レジストリの変更は行われません。 データ収集が完了したときに PSSDIAG を削除するには、PSSDIAG ファイルを含むフォルダーを削除します。 PSSDIAG では、いくつかのシステム ストアド プロシージャがマスター データベースにインストールされます。 これらのストアド プロシージャは、PSSDIAG がシャットダウンすると自動的に削除されます。
PSSDIAG コマンド ライン パラメーター
PSSDIAG /? を使用して、PSSDIAG でサポートされているコマンド ライン パラメーターの一覧を表示します。 最もよく使用されるパラメーターを次の表に示します。 これらのコマンド ライン パラメーターはすべて省略可能です。
| パラメーター | 説明 |
|---|---|
| /Q | 静音モード。 バックアップ ファイルを削除するプロンプトなど、ユーザーの操作を必要とするプロンプトを抑制します。 |
| /C# | /C0 では自動圧縮が無効になり、/C1 では OUTPUT ディレクトリ内のファイルに対して NTFS 圧縮が有効になります。 /C0 (圧縮なし) が既定値です。 |
| /B YYYYMMDD_HH:MM:SS | コレクションを開始する将来の開始時刻を指定します。 PSSDIAG は、この時間に達するまでアイドル状態のままです。 日付と時刻は、ここで指定した正確な形式で指定する必要があります。 日付と時刻は、一緒に指定することも、個別に指定することもできます。 たとえば、時刻のみ、または日付のみを指定できます。 |
| /E YYYYMMDD_HH:MM:SS | 自動シャットダウン時間を指定します。 この時間に達すると、PSSDIAG は自動的にデータ収集を停止し、シャットダウンします。 日付と時刻は、一緒に指定することも、個別に指定することもできます。 たとえば、時刻のみ、または日付のみを指定できます。 |
| /G | ジェネリック モード。 PSSDIAG は、SQL Serverの実行中のインスタンスを必要とするSQL Server中心のデータ収集モードに既定で設定されます。 /G パラメーターは、PSSDIAG を他のシナリオで使用できるように、SQL Server固有のデータ収集を無効にします。 |
PSSDIAG を自動的に開始および停止する
場合によっては、PSSDIAG で指定した時刻にデータ収集を自動的に開始したり、指定した時間のデータ収集後に自動的に停止させたりすると便利な場合があります。 たとえば、午前 2 時に一貫して表示される問題のトラブルシューティングを行っている可能性があります。 このような場合は、PSSDIAG で午前 1 時にデータ収集を開始し、午前 3 時に自動的にシャットダウンすることができます。 指定した時刻にデータ収集を自動的に開始および停止する最も簡単な方法は、/B および /E コマンド ライン パラメーターを使用することです。 "PSSDIAG コマンド ライン パラメーター" セクションで指定されているこれらのパラメーターの正確な日付形式を使用してください。 時刻は、PSSDIAG が実行されているコンピューターのローカル時刻を基準として指定する必要があります。
PSSDIAG は、ユーティリティの出力フォルダーに Pssdiag.stop という名前のファイルが見つかるたびに、自動的にシャットダウンされます。 これは、一部のイベントが発生した後に PSSDIAG をプログラムでシャットダウンするが、このイベントが発生する時刻が事前にわからない場合に役立ちます。 Pssdiag.stop ファイルの内容は関係ありません。 1 つのオプションは、バッチ ファイルで次のようなコマンドを使用することです。
ECHO abc > F:\PSSDIAG\Output\PSSDIAG.STOP
PSSDIAG のパフォーマンスへの影響
PSSDIAG は他のデータ収集 API とユーティリティのラッパーに過ぎないため、PSSDIAG の実行によるパフォーマンスへの影響は、通常、PSSDIAG がキャプチャするように構成されたトレースの影響と同じです。 PSSDIAG を使用せずに、同じトレース データが手動でキャプチャされた場合も、同じパフォーマンスへの影響が見られます。
PSSDIAG は、少量のデータまたは大量のデータをキャプチャするように構成でき、キャプチャされるデータの種類は通常、インシデントごとにカスタマイズされます。 このため、収集されるログの種類とトレース イベントを考慮せずに PSSDIAG を実行する場合の影響に関する一般的なステートメントを作成することはできません。 サーバー上のデータ収集の潜在的な影響が懸念される場合は、PSSDIAG を送信したサポート プロフェッショナルに問い合わせて、キャプチャするように構成されている診断の種類を明確にしてください。
CPU リソースを大量に消費する可能性がある Pssdiag.exe 直接実行する 1 つのタスクは、CAB アーカイブ内のデータ ファイルの自動圧縮です。 既定では、この機能は無効になっています。 ただし、/C コマンド ライン パラメーターを使用して有効にできます。 /C コマンド ライン パラメーターについては、「PSSDIAG コマンド ライン パラメーター」セクションで詳しく説明します。
PSSDIAG をリモートまたはクラスター化されたSQL Serverで実行する
PSSDIAG がリモート サーバーまたはSQL Serverのクラスター化されたインスタンスからデータを収集するには、Pssdiag.ini ファイルを変更する必要があります。 PSSDIAG が接続するサーバーの名前を指定する必要があります。 PSSDIAG が送信される前に正しく構成できるように、サーバーの名前を操作していることをサポート プロフェッショナルに伝えます。
この変更を自分で行う場合は、Pssdiag.exe と同じフォルダー内の Pssdiag.ini ファイルを見つけます。 メモ帳で Pssdiag.ini を開きます。 ファイルの最初の行には、"[.]" という文字列が含まれています。 角かっこの間のピリオドをリモート サーバーの名前に置き換えます。 SQL Serverの名前付きインスタンスからデータを収集する場合は、サーバー名が SQL Server のインスタンスの完全な名前ではないことに注意してください。 たとえば、SQL Serverのインスタンスの名前が "MYSERVER\MyInstance" の場合、Pssdiag.ini ファイルの最初の行を "[MYSERVER]" に置き換えます。
SQL Profiler トレースは常にサーバーで実行されます。 このため、プロファイラー データを収集するように PSSDIAG が構成されている場合は、PSSDIAG をリモートで実行する場合にさらに複雑な問題が発生します。 このような場合、サーバーで PSSDIAG をローカルで実行することをお勧めします。 Profiler トレースが必要な場合にリモート データ収集のオプションを検討する場合は、使用しているサポート プロフェッショナルに詳細を確認してください。 ここでも、この選択が行われた場合、SQL Serverに対するパフォーマンスへの影響を確認できます。
SQL Serverのインスタンスがクラスター化されている場合は、クラスター ノードのコンピューター名ではなく仮想サーバー名を使用します。
重要 PSSDIAG がいずれかのクラスター ノードでローカルに実行される場合でも、SQL Serverのクラスター化インスタンスに接続するときは、Pssdiag.ini ファイル内の仮想サーバー名を常に明示的に指定する必要があります。
PSSDiag ユーティリティは、もともと SQL Server 7.0 および SQL Server 2000 用に作成されました。 バージョンが作成され、SQL Server 2005 以降のビルドに含まれています。 新しいバージョンは SQLDiag という名前で、SQL Serverに含まれています。 SQLDiag の詳細については、「SQLDiag ユーティリティ」を参照してください。