Sqldumper.exe ユーティリティを使用して、SQL Server でダンプ ファイルを生成する方法

概要

Sqldumper.exe ユーティリティは、Microsoft SQL Server 2005、Microsoft SQL Server 2008、Microsoft SQL Server 2008 R2、および Microsoft SQL Server 2012 に含まれています。この資料では、ワトソン エラーを報告するためまたはデバッグ タスクのダンプ ファイルを生成するのには、Sqldumper.exe ユーティリティを使用する方法について説明します。

詳細

Sqldumper.exe ユーティリティを使用すると、オン ・ デマンドで任意の Microsoft Windows アプリケーションのダンプ ファイルを生成します。SQL Server 2005、Microsoft SQL Server 2008、Microsoft SQL Server 2008 R2 を実行しているコンピューターと、アプリケーションの問題をデバッグ用のダンプ ファイルを生成するなど、Microsoft SQL Server 2012 は、ユーザーの要求に応答していません。ダンプ ファイルには、最小ダンプ ファイル、完全なダンプ ファイル、またはフィルター処理したダンプ ファイルができます。

ただし、汎用目的のデバッグを Sqldumper.exe ユーティリティを使うことはできません。汎用目的のデバッグの詳細については、次のマイクロソフト Web サイトを参照してください。SQL Server プロセスは、プロセスで例外が発生した場合、ダンプ ファイルを生成するには、内部的には、Sqldumper.exe ユーティリティを呼び出します。SQL Server では、Sqldumper.exe ユーティリティにフラグを渡します。SQL Server が例外のコンテキストで、またはアサーション コンテキスト内でユーティリティに渡されるフラグを変更するのには、トレース フラグを使用できます。これらのトレース フラグは 2540 から 2559 までの範囲では。これらのトレース フラグを使用すると、特定の種類のダンプ ファイルを生成します。次に例を示します。
  • トレース フラグ 2551: フィルターが適用されたメモリ ダンプを生成します。
  • トレース フラグ 2544: 完全メモリ ダンプを生成します。
  • トレース フラグ 2546: ダンプ ・ ファイル内の SQL Server のすべてのスレッドをダンプします。
  • トレース フラグ 8026: SQL Server は 1 回のダンプを生成した後、dumptrigger をオフに
2 つまたは複数のトレース フラグが有効な場合は、最大のメモリ ダンプを示すオプションが受け入れられます。2551 と 2544 のトレース フラグを使用して、SQL Server は、完全メモリ ダンプを作成します。

Microsoft Windows アプリケーションのプロセス識別子を取得する方法

Sqldumper.exe ユーティリティを使用してダンプ ファイルを生成するには、ダンプ ファイルを生成する Windows アプリケーションのプロセス id が必要です。プロセス識別子を取得するには、次の手順を実行します。
  1. CTRL + ALT + DEL を押すし、[タスク マネージャー] をクリックします。
  2. Windows タスク マネージャー ] ダイアログ ボックスで、[プロセス] タブをクリックします。
  3. [表示] メニューで、列の選択] をクリックします。
  4. 列の選択] ダイアログ ボックスで、[ PID (プロセス Id) ] チェック ボックスをオンにし、[ OK] をクリックします。
  5. ダンプ ファイルを生成する Windows アプリケーションのプロセス id を確認します。SQL Server アプリケーションは、Sqlservr.exe プロセスのプロセス id を確認します。
  6. タスク マネージャーを閉じます。
SQL Server エラー ログ ファイルを使用して、お使いのコンピューターで実行されている SQL Server アプリケーションのプロセス id を取得することもできます。たとえば、次のよう、SQL Server エラー ログ ファイルの一部。

2006-04-18 09:53:03.94 Server Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)

10 月 14日 2005年 00時 33分: 37

Copyright (c) 1988-2005 Microsoft Corporation

Windows NT 5.2 にエンタープライズ版 (ビルド 3790: Service Pack 1)



2006-04-18 09:53:03.94 Server (c) 2005 Microsoft Corporation です。

2006-04-18 09:53:03.94 Server のすべての権限が予約されています。

2006-04-18 09:53:03.94 Server サーバー プロセスの ID は、3716 です。

サーバー プロセス IDの後に表示される番号は、Sqlservr.exe プロセスのプロセス識別子です。

Sqldumper.exe ユーティリティを実行する方法

SQL Server ユーティリティがインストールされていたフォルダーのコンテキストで、Sqldumper.exe ユーティリティを実行します。 既定では、Sqldumper.exe ユーティリティのインストール パスはとおりです。
SQLServerInstallDrive: \Program Files\Microsoft SQL Server\90\Shared\SQLDumper.exe
SQLServerInstallDriveは、SQL Server 2005 がインストールされているドライブのプレース ホルダーです。

Sqldumper.exe ユーティリティを使用してダンプ ファイルを生成するには、次の手順を実行します。
  1. 次のフォルダーを開きます。
    SQLServerInstallDrive: \Program Files\Microsoft SQL Server\\Shared
    注: このフォルダーのパスの番号は、次のいずれかのプレース ホルダーです。
    • フォルダー名は、SQL Server 2012 は 110 です。
    • フォルダー名は、SQL Server 2008 では 100 です。
    • SQL Server 2005 用のフォルダー名 90 です。

  2. Dbghelp.dll ファイルがこのフォルダーにあることを確認してください。
  3. [スタート] をクリックし、[ファイル名を指定して実行] をクリックして、 cmd と入力し、[OK] をクリックします。
  4. コマンド プロンプトで、次のコマンドを入力し、ENTER キーを押します。
    cd SQLServerInstallDrive: \Program Files\Microsoft SQL Server\\Shared
    注: このフォルダーのパスの番号は、次のいずれかのプレース ホルダーです。
    • フォルダー名は、SQL Server 2012 は 110 です。
    • フォルダー名は、SQL Server 2008 では 100 です。
    • SQL Server 2005 用のフォルダー名 90 です。
  5. 特定の種類のダンプ ファイルを生成するには、コマンド プロンプトでは、対応するコマンドを入力し、ENTER キーを押します。
    • 完全なダンプ ファイル
      Sqldumper.exeプロセス Id 0 0x01100
    • 最小ダンプ ファイル
      Sqldumper.exeプロセス Id 0 0x0120
    • 間接的に参照されているメモリを含む最小ダンプ ファイル
      Sqldumper.exeプロセス Id 0 0x0120:40
    • フィルター処理したダンプ ファイル
      Sqldumper.exeプロセス Id 0 0x8100
    プロセス Idは、ダンプ ファイルを生成する Windows アプリケーションのプロセス id のプレース ホルダーです。
Sqldumper.exe ユーティリティが正常に実行されると、ユーティリティは、ユーティリティがインストールされているフォルダーにダンプ ファイルを生成します。

Sqldumper.exe ユーティリティが生成されるダンプ ファイルには、次のようなファイル名のパターンがあります。
SQLDmprxxxx.mdmp
このパターンでは、 xxxxは、増加する数値は、決定のようなファイル名を同じフォルダーにあるその他のファイルに基づきます。指定したパターンでファイル名を持つフォルダー内のファイルが既に場合は、日付とするファイルを識別する、ファイルが作成された時刻を比較する必要があります。

その他の情報と注意事項

Sqldumper.exe ユーティリティは、Windows アプリケーションのダンプ ファイルを生成するときに、ダンプ ファイルは Windows アプリケーションを使用しているメモリと同じ大きさあります。 Sqldumper.exe ユーティリティがダンプ ファイルを書き込む先のドライブ上に十分なディスク領域があることを確認します。

Sqldumper.exe ユーティリティがダンプ ファイルの書き込み先ディレクトリを指定することができます。Sqldumper.exe ユーティリティを実行する前にディレクトリが存在する必要があります。それ以外の場合、Sqldumper.exe ユーティリティは失敗します。ダンプ ファイルの場所として UNC パスを使用できません。ミニ ダンプ ファイルのダンプ ファイルの場所を指定する方法の例は次のとおりです。
  1. [スタート] をクリックし、[ファイル名を指定して実行] をクリックして、 cmd と入力し、[OK] をクリックします。
  2. コマンド プロンプトで、次のコマンドを入力し、ENTER キーを押します。
    cd SQLServerInstallDrive: \Program Files\Microsoft SQL Server\\Shared
    注: このフォルダーのパスの番号は、次のいずれかのプレース ホルダーです。
    • フォルダー名は、SQL Server 2012 は 110 です。
    • フォルダー名は、SQL Server 2008 では 100 です。
    • SQL Server 2005 用のフォルダー名 90 です。
  3. コマンド プロンプトで次のコマンドを入力し、ENTER キーを押します。
    Sqldumper.exe プロセス Id 0 0x0120 0 MdumpPath
    MdumpPathは、Sqldumper.exe ユーティリティがダンプ ファイルの書き込み先ディレクトリのプレース ホルダーです。既定では、現在のフォルダーにファイルが書き込まれます。
完全なダンプ ファイルまたはフィルター処理したダンプ ファイルを生成するを指定すると、Sqldumper.exe ユーティリティは、ダンプ ファイルを生成するのに数分をかかる場合があります。 時間は、次の変数によって異なります。
  • Sqldumper.exe ユーティリティを使用しているメモリの量
  • ユーティリティがダンプ ファイルを書き込み、ドライブの速度
この間、Sqldumper.exe ユーティリティはコマンドを処理しません。 サーバーが応答を停止していることがわかります。また、クラスターのフェイル オーバーが発生する可能性があります。

Sqldumper.exe ユーティリティを実行するには、次の方法のいずれかを使用して Windows にログオンする必要があります。
  • コンピューターの administrators グループのメンバーであるアカウントを使用します。
  • SQL Server サービスを実行している同じユーザー アカウントを使用します。
Sqldumper.exe ユーティリティがリモート デスクトップまたはターミナル サービスが正常に機能する、コンソール ・ モードで、リモート デスクトップまたはターミナル サービスを開始する必要があります。などのコンソール モードでリモート デスクトップを起動するに [スタート] ボタン [実行] をクリックして、 mstsc/consoleと入力し、[ OK] をクリックします。ターゲット サーバーは、Windows 2000 を実行する場合、 /consoleオプションはサイレント モードで無視に注意します。リモート デスクトップ経由でサーバーに接続することができます。コンソール セッションを使用していません。
ダンプ ファイルが生成されていない現在のフォルダーに、Sqldumper.exe ユーティリティを実行した後、発生した場合は、ユーティリティによって生成されたエラーの原因を特定するにコマンド ・ ラインで情報を確認します。 この情報は、現在のディレクトリに Sqldumper_errorlog.log ファイルに記録されます。2 つの考えられるエラー メッセージとその原因を次に示します。
メッセージ 1
0x57 に失敗しました: パラメーターが正しくないです。

無効なプロセス ID は、Sqldumper.exe ユーティリティに渡されました。
メッセージ 2
スレッド id: < パラメーターが無効です。 > パラメーターのエラー値が無効です。

Sqldumper.exe ユーティリティに無効なパラメーターが渡されました。

次のいずれかのようなエラー メッセージが生成される場合、このメッセージは無視してかまいません。

ミニダンプ 6 中に不明なコールバックの種類
ミニダンプ 7 中に不明なコールバックの種類

クラスタ ・ フェイル オーバー、Sqldumper.exe ユーティリティ

クラスターのフェイル オーバー シナリオで SQL Server リソース DLL 今すぐことができますダンプ ファイルを取得、フェイル オーバーが発生する前にします。SQL Server リソース DLL は、SQL Server リソースが失敗したことを判断した場合、SQL Server リソース DLL を使用して、Sqldumper.exe ユーティリティ SQL Server プロセスのダンプ ファイルを取得します。Sqldumper.exe ユーティリティが正常にダンプ ファイルを生成することを確認するには、前提条件として次の 3 つのプロパティを設定する必要があります。
  • SqlDumperDumpTimeOut
    ユーザーが指定したタイムアウトします。リソース DLL は、リソース DLL の前に完了するダンプ ファイルの待機は、SQL Server サービスを停止します。
  • SqlDumperDumpPath
    Sqldumper.exe ユーティリティがダンプ ファイルを生成する場所です。
  • SqlDumperDumpFlags
    Sqldumper.exe ユーティリティを使用するフラグです。
プロパティのいずれかが設定されていない場合、Sqldumper.exe ユーティリティは、ダンプ ファイルを生成できません。警告メッセージが記録されるイベント ログとクラスター ログの両方のリソースがオンラインになったときにします。

Sqldumper.exe ユーティリティのプロパティをクラスターのフェイル オーバーを設定するには、次の手順を実行します。
  1. [スタート] をクリックし、[ファイル名を指定して実行] をクリックして、 cmd と入力し、[OK] をクリックします。
  2. プロパティごとに、コマンド プロンプトでは、対応するコマンドを入力し、ENTER キーを押します。
    • SqlDumperDumpFlagsプロパティ
      ダンプ ファイルの特定の種類のSqlDumperDumpFlagsプロパティを設定するのには、コマンド プロンプトで、対応するコマンドを入力し、し、ENTER キーを押します。
      • 完全なダンプ ファイルのすべてのスレッド
        • 既定のインスタンス
          クラスター リソースを"SQL Server"/priv SqlDumperDumpFlags = 0x01100
        • 名前付きインスタンス
          クラスター リソース [SQL Server (INSTANCE1)"/priv SqlDumperDumpFlags = 0x01100
      • すべてのスレッドの最小ダンプ ファイル
        • 既定のインスタンス
          クラスター リソースを"SQL Server"/priv SqlDumperDumpFlags = 0x0120
        • 名前付きインスタンス
          クラスター リソース [SQL Server (INSTANCE1)"/priv SqlDumperDumpFlags = 0x0120
      • すべてのスレッド ダンプ ファイルをフィルター処理
        • 既定のインスタンス
          クラスター リソースを"SQL Server"/priv SqlDumperDumpFlags = 0x8100
        • 名前付きインスタンス
          クラスター リソース [SQL Server (INSTANCE1)"/priv SqlDumperDumpFlags = 0x8100
    • SqlDumperDumpPathプロパティ
      クラスター リソースを"SQL Server"/priv SqlDumperDumpPath = DirectoryPath
      DirectoryPathは、ダンプ ファイルが作成され、引用符で囲まれたことを指定する必要がありますディレクトリのプレース ホルダー ("")。
    • SqlDumperDumpTimeOutプロパティ
      クラスター リソースを"SQL Server"/priv SqlDumperDumpTimeOut =タイムアウト
      タイムアウトは、タイムアウトをミリ秒 (ms) でのプレース ホルダーです。

      SQL Server プロセスのダンプ ファイルを生成するユーティリティが必要な時間は、コンピューターの構成によって異なります。大量のメモリを持つコンピューターでは、時間が大幅に可能性があります。プロセスにかかる時間の見積もりを取得するには、手動でダンプ ファイルを生成するのには、Sqldumper.exe ユーティリティを使用します。SqlDumperDumpTimeOutプロパティの有効値は10000 ミリ秒からMAXDWORDには。MAXDWORDは、DWORD のデータ型 (4294967295) の範囲内の最大値を表します。
設定が有効になっていることを確認するには、次のコマンドを実行できます。

クラスターのリソースの"SQL Server"/priv」

クラスターのフェイル オーバーを Sqldumper.exe ユーティリティ プロパティを削除するには、以下の手順を実行します。
  1. [スタート] をクリックし、[ファイル名を指定して実行] をクリックして、 cmd と入力し、[OK] をクリックします。
  2. 特定のプロパティのコマンド プロンプトでは、対応するコマンドを入力し、ENTER キーを押します。
    • SqlDumperDumpFlagsプロパティ
      • 既定のインスタンス
        クラスターのリソースの「SQL Server」/priv:SqlDumperDumpFlags/usedefault
      • 名前付きインスタンス
        クラスターのリソース [SQL Server (INSTANCE1)」/priv:SqlDumperDumpFlags/usedefault
    • SqlDumperDumpPathプロパティ
      • 既定のインスタンス
        クラスターのリソースの「SQL Server」/priv:SqlDumperDumpPath/usedefault
      • 名前付きインスタンス
        クラスター リソース [SQL Server (インスタンス (1))「/priv:SqlDumperDumpPath/usedefault
    • SqlDumperDumpTimeOutプロパティ
      • 既定のインスタンス
        クラスターのリソースの「SQL Server」/priv:SqlDumperDumpTimeOut/usedefault
      • 名前付きインスタンス
        クラスター リソース [SQL Server (インスタンス (1))「/priv:SqlDumperDumpTimeOut/usedefault
プロパティ

文書番号:917825 - 最終更新日: 2017/02/02 - リビジョン: 1

Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Express Edition

フィードバック