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

適用対象: SQL Server 2012 StandardSQL Server 2012 EnterpriseSQL Server 2012 Developer

概要


Microsoft SQL Server には、お持ちの Office のユーティリティが含まれています。 この記事では、ワトソン博士ユーティリティを使用して、ワトソンエラー報告またはデバッグタスクのダンプファイルを生成する方法について説明します。
: このユーティリティに加えて、次のメソッドを使用することもできます。

警告: プロセスダンプファイルを生成すると、サービスの可用性 (SQL Server) に影響し、常にオンのコンテキスト (フェールオーバークラスターインスタンスと可用性グループの両方) でリソースのフェールオーバーが発生する可能性があります。 ダンプファイルを生成するために使用されるオプションは、大きく異なることがあります。 ダンプの生成ダンプの種類のセクションの影響を必ず読んでください。

SQL Server プロセスダンプファイル (特に、フィルター処理されたダンプファイルまたは完全なダンプファイル) をキャプチャすると、sql server または AG が、完了までに時間がかかりすぎる場合に、クラスター化された sql server または AG が別のノードにフェイルオーバーする可能性があります。 フェールオーバーの可能性を回避するために、ダンプファイルをキャプチャする前に、次の設定を使用できます。ダンプファイルが取得された後で変更を元に戻すことができます。

  • Clustered SQL Server (FCI) の場合、[クラスターアドミニストレーター] で [SQL Server] リソースを右クリックし、[ポリシー ] タブの [リソースに障害が発生した場合は再起動しない] を選択します。
  • AG の場合は、次のすべての設定を適用します。
    • セッションタイムアウトを増やします (たとえば、すべてのレプリカの120秒)。 SQL Server Management Studio で、構成するレプリカを右クリックし、[プロパティ] をクリックします。セッションタイムアウト (秒) フィールドを120秒に変更します。詳細については、「可用性レプリカのセッションタイムアウト期間を変更する (SQL Server)」を参照してください。
    • すべてのレプリカの "自動フェールオーバー" を "手動フェールオーバー" に変更します。 SQL Server Management Studio で、[レプリカ] を右クリックし、[プロパティ] を選択して、[プロパティ] タブで、すべてのレプリカの "自動フェールオーバー" を "手動フェールオーバー" に変更します。 詳細については、「 可用性レプリカのフェールオーバーモード (SQL Server) を変更する」を参照してください。
    • "LeaseTimeout" を6万ミリ秒 (60 秒) に増やし、HealthCheckTimeout を9万ミリ秒 (90 秒) に変更します。 クラスターアドミニストレーターで、[AG リソース] を右クリックし、[プロパティ] を選択してから、[プロパティ] タブに切り替えて両方の設定を変更します。 詳細については、「 HealthCheckTimeout プロパティの設定を構成する」を参照してください

詳細情報


カスタムユーティリティを手動で実行する方法

SQL Server によってユーティリティが最初にインストールされたフォルダーのコンテキストの下で、元の .exe ユーティリティを実行します。 既定では、次のようにして、ファイルのインストールパスを設定します。SQLServerInstallDrive: Server\90\Shared\SQLDumper.exe の sqlメモSQLServerInstallDriveは、sql Server 2005 をインストールしたドライブのプレースホルダーです。.Dump ユーティリティを使用してダンプファイルを生成するには、次の手順を実行します。 
  1. 次のフォルダーを開きます。 SQLServerInstallDrive:number\Sharedこのフォルダーのパスには、次のいずれかのプレースホルダーとして、[このフォルダーのパス] というプレースホルダーがあります。
    • 140 for SQL Server 2017
    • 130 for SQL Server 2016
    • 120 for SQL Server 2014
    • 110 for SQL Server 2012
    • 100 for SQL Server 2008
    • 90 for SQL Server 2005
  2. このフォルダーに Dbghelp .dll ファイルが含まれていることを確認してください。
  3. [スタート] をクリックし、[実行] をクリックし、「 cmd」と入力して、[ OK]をクリックします。
  4. コマンド プロンプトで以下のコマンドを入力し、Enter キーを押します。 cd SQLServerInstallDrive:\Program Files\Microsoft SQL Server\number\Shared 注意:このフォルダーのパスでは、前に説明したように、数値は SQL Server のバージョンで変更されたプレースホルダーと同じです。
  5. 特定の種類のダンプファイルを生成するには、コマンドプロンプトで対応するコマンドを入力し、enter キーを押します。
    • 完全なダンプファイル
      0x01100 のプロセス id 0 の
    • ミニダンプファイル
      ファイルのプロセス id 0 0x0120
    • 間接参照メモリを含むミニダンプファイル。 これは推奨されるオプションであり、メモリダンプを自動生成するときに既定で SQL Server によって使用されます。
      ファイルのプロセス id 0 0x0128
    • フィルター処理されたダンプファイル
      ファイルのプロセス id 0 0x8100
    ProcessIDは、ダンプファイルを生成する Windows アプリケーションのプロセス識別子のプレースホルダーです。
.Dump ユーティリティが正常に実行されると、ユーティリティがインストールされているフォルダーにダンプファイルが生成されます。このダンプファイルには、次のようなファイル名パターンがあります。
SQLDmprxxxx.mdmp
このパターンでは、 xxxxは、同じフォルダーに同じファイル名を持つ他のファイルに基づいて決定される増加する数値です。 指定したパターンのファイル名を持つフォルダーに既にファイルがある場合は、ファイルを作成した日付と時刻を比較して、目的のファイルを特定する必要があります。

追加情報と考慮事項

通常は、特定の問題 (例外、アサート、非生成スケジューラなど) を解決するためにメモリダンプが必要となるシナリオで、SQL Server プロセスのメモリダンプが生成されます。 このような場合、SQL Server は、そのプロセスのメモリダンプを生成するために、出力元の .exe を呼び出します。 メモリダンプは、 SQL Server 構成マネージャーで既定の場所 MSSQL\LOG\ ディレクトリを使って構成されたパスに格納されます。  たとえば、ダンプサイズが大きすぎる場合は、次の手順でパスを変更できます。 

  1. SQL Server 構成マネージャーを開く
  2. [ Sql Server サービス] で、[調査] で sql server を探します。
  3. 右クリックし、[プロパティ] を選択して、[詳細設定] タブに移動します。
  4. ダンプディレクトリを目的のパスに変更して、[OK] をクリックします。
  5. 新しい設定を有効にするには、SQL Server を再起動する必要があります (可能な場合)。

すべての Windows アプリケーションのダンプファイルを生成するために、.dump ユーティリティを手動で使用すると、Windows アプリケーションで現在使用されているメモリと同じサイズのダンプファイルを作成できます。 .Dump ユーティリティがダンプファイルを書き込み中のドライブに十分なディスク領域があることを確認してください。.Dump ユーティリティを使用してダンプファイルを作成するディレクトリを指定できます。 このディレクトリは、既に存在している必要があります。 そうしないと、元の .exe ユーティリティは失敗します。 ダンプファイルの場所として UNC パスを使用しないでください。 次に、ミニダンプファイルのダンプファイルの場所を指定する方法の例を示します。

  1. [スタート] をクリックし、[実行] をクリックし、「 cmd」と入力して、[ OK]をクリックします。
  2. コマンド プロンプトで以下のコマンドを入力し、Enter キーを押します。
    cd SQLServerInstallDrive:\Program Files\Microsoft SQL Server\number\Shared
    注: [このフォルダーのパス] には、次のいずれかのプレースホルダーが表示されます。
    • 140 for SQL Server 2017
    • 130 for SQL Server 2016
    • 120 for SQL Server 2014
    • 110 for SQL Server 2012
    • 100 for SQL Server 2008
    • 90 for SQL Server 2005
  3. コマンドプロンプトで次のコマンドを入力し、enter キーを押します。 Sqldumper.exe ProcessID 0 0x0128 0 MdumpPath MdumpPathは、.dump ユーティリティを使用してダンプファイルを作成するディレクトリのプレースホルダーです。 既定では、ファイルは現在のフォルダーに書き込まれます。
生成される完全なダンプファイルまたはフィルター処理されたダンプファイルを指定した場合、ダンプファイルの生成には数分かかることがあります。 時間は、次の変数によって異なります。
  • 現在使用しているファイルの数
  • ユーティリティがダンプファイルを書き込むドライブの速度

この時点では、コマンドは処理されません。 サーバーが応答を停止したことがわかります。 さらに、クラスターのフェールオーバーが発生することもあります。出力ユーティリティを実行するには、次のいずれかの方法を使用して Windows にログオンする必要があります。

  • コンピューターの管理者グループのメンバーであるアカウントを使用します。
  • SQL Server サービスを実行しているのと同じユーザーアカウントを使用します。
この機能を使って、リモートデスクトップまたはターミナルサービスで正常に動作するには、リモートデスクトップまたはターミナルサービスをコンソールモードで開始する必要があります。 たとえば、コンソールモードでリモートデスクトップを起動するには、[スタート] をクリックし、[実行] をクリックし、「 mstsc/console」と入力して、[ OK]をクリックします。 ターゲットサーバーで Windows 2000 を実行している場合は、 /consoleオプションは黙って無視されることに注意してください。 リモートデスクトップ経由でサーバーに接続できます。 ただし、コンソールセッションは使用されません。
.Dump ユーティリティを実行した後、現在のフォルダーにダンプファイルが生成されていないことに気付いた場合は、コマンドラインでそのユーティリティが生成した情報を確認して、問題の原因を特定してみてください。 この情報は、現在のディレクトリの Sqldumper_errorlog .log ファイルにも記録されます。 次の2つのエラーメッセージとその原因が考えられます。
メッセージ 1
OpenProcess failed 0x57-パラメーターが間違っています
無効なプロセス ID が、お持ちの .exe ユーティリティーに渡されました。
メッセージ 2
スレッド id の無効な値-<無効なパラメーター> パラメーターエラー
無効なパラメーターが、すべての.次のいずれかのようなエラーメッセージが表示される場合は、このメッセージを無視しても問題ありません。 
ミニダンプ6での不明なコールバックの種類ミニダンプ7での不明なコールバックの種類

ダンプ生成の影響

この記事で説明しているように、ユーザーモードプロセスのダンプが要求された場合 (この記事で説明しているように、この記事で説明しているように、スコープ外のオペレーティングシステムのカーネルダンプを対比します)、ターゲットプロセス (ここでは、この例では、ファイルターゲットへのダンプコンテンツのシリアル化にかかる

固定されているということは、Windows クラスタリングの IsAlive と LooksAlive の実装などのリソースポーリングメカニズムなど、すべてのユーザー要求または進行状況を処理できなくなることを意味します (この状況の処理の詳細については、「クラスターのフェイルオーバーとその他の方法」をご覧ください)。 壁のクロック時間に依存するタイムアウトは、凍結の結果として侵害されることもあります。

前のステートメントから派生させることができるため、凍結の継続時間はここで重要な要素であり、主に次のように動作します。

  • 選択されているダンプの種類
  • メモリ内の SQL Server プロセスのサイズ(既定のパラメーターを実行している単一のアクティブなインスタンスの場合) は、多くの場合、サーバーの物理 RAM の合計に近いことになります。
  • ダンプのターゲットとして使用されるディスクのパフォーマンス。

また、ディスク上のダンプファイルのサイズを計画する必要があります。特に、複数のダンプが可能である場合や、大規模な既定以外のダンプタイプが選択されている場合に適しています。 [ダンプの種類]セクションを確認して、期待されることを確認してください。 既定では、一部のダンプメソッドによって、SQL Server インスタンスの \ Log フォルダーにダンプが作成されます。このフォルダーでは、既定の単純構成では、システムディスクと SQL Server 用データ + ログディスクもあります。 このディスクを飽和状態にすると、SQL Server やシステムの可用性に重大な影響があります。

最新バージョンの SQL Server には、次の3つの主な改善が追加されました。これは、ダンプファイルのサイズやメモリダンプを生成する時間を減らすためです。
  • ビットマップフィルター処理機構
  • 同じ問題に関する重複したダンプを削除する
  • エラーログの出力の短縮
 

ビットマップフィルター処理: フィルター処理されたダンプ速度と縮小サイズの改善は、sql server 2019 および sql server 2017 に追加された新しいビットマップフィルターメカニズムによって実現されました。SQL Server では、フィルター処理されたダンプからメモリページを除外するビットマップを割り当てます。 その他のメモリマネージャーのメタデータを読み取ることなく、ビットマップを読み取り、ページをフィルター処理します。 ビットマップが有効または無効になると、SQL Server のエラーログに次のメッセージが表示されます。 "ページの除外ビットマップは有効です" と "ページの除外ビットマップは無効になっています。"

SQL Server 2016

  • SQL Server 2016 SP2 CU13 以降では、ビットマップフィルターは既定で有効になっています。

SQL Server 2017

  • これは、CU15 の RTM では利用できません。
  • SQL Server 2017 CU16 では、T8089 を使用してビットマップフィルターを有効にして、T8089 をオフにすることで無効にすることができます。
  • SQL Server 2017 CU20 以降では、ビットマップフィルターは既定で有効になっています。 トレースフラグ T8089 は適用されなくなり、オンになっている場合は無視されます。 ビットマップフィルターは、T8095 経由で無効にすることができます。

SQL Server 2019

これは、SQL Server 2019 RTM では既定で有効になっています。 T8095 を使用して無効にすることができます。

 
同じ問題に関する重複したダンプを削除すると、同じ問題についてのメモリダンプが削除されるようになりました。スタック署名を使うと、SQL エンジンは、例外が既に発生しているかどうかを追跡し、既に存在する場合は新しいメモリダンプを生成しません。これは、アクセス違反、スタックオーバーフロー、アサート、インデックス破損の例外に適用されます。これにより、メモリダンプによって使用されるディスク領域の量が大幅に減少し、ダンプを生成するためにプロセスが一時的に停止されることはありません。これは、SQL Server 2019 に追加されました。
 
Shortened outputエラーログの出力の短縮:1つのメモリダンプから SQL Server のエラーログによって生成されたコンテンツは、圧倒的なものにすることはできませんが、すべての情報をエラーログのテキスト形式にシリアル化する必要があったため、メモリダンプの生成プロセスも遅くなります。 SQL Server 2019 では、ダンプ生成時にエラーログに保存されていたコンテンツが大幅に減少し、次のように表示されることがあります。
 
DateTime spidSpid * * ダンプスレッド-Spid = 0、EC = 0x0000015C7169BF40
DateTime spidSpid *
DateTime spidSpid * ユーザーがスタックダンプを開始しました。 これは、サーバーの例外ダンプではありません。
DateTime spidSpid *
ダンプのDateTime spidSPidスタック署名は 0x00000000788 e5
DateTime spidSpid外部ダンププロセスリターンコード0x20000001。
外部ダンププロセスでエラーは返されませんでした。
 

以前の SQL Server では、ユーザーによって手動でダンプがトリガーされた場合に、各セッション/スレッドの情報が印刷されます。 

ダンプの種類

ここで説明する方法では、ミニダンプ、完全なダンプ、フィルター処理されたダンプの3種類のダンプを生成できます。

参照メモリを使ったミニダンプは、プロセスのアクティブなすべてのスレッド (スレッドスタック) のスナップショットであり、スレッドスタックによって参照されるメモリと、その他の主要なプロセス/スレッドデータの限定的な抽出と共に使用されます。 通常、これらのサイズのサイズは数 mb であり、生成は非常に高速です (1 秒未満から2秒間)。 大規模なサーバーシステム (SQL Server プロセスで大量のスレッドを実行する CPU を間接的に使用している場合) でも、サイズが 20-30 MB を超えることはありません。ミニダンプのサイズは、SQL Server プロセスのサイズによって大きくなっていません。 このダンプの種類は、例外、スケジューラの問題、ラッチ問題などでメモリダンプを自動的に生成するときに SQL Server によって使用される既定の型です。

SQL Server は、組み込みのインストルメンテーションの一部として、自動化された "診断ミニダンプ" を生成することに注意してください。 そのため、この操作は、必要に応じて SQL Server が自動的にトリガーできる適切なセキュリティであると見なされます。

完全なダンプは、アクティブなターゲットプロセス領域の完全なコピーです。 これにより、すべてのスレッドの状態、割り当てられているすべてのプロセスメモリ、読み込まれたすべてのモジュールが含まれます。 そのため、完全なダンプにはサイズがあります。これは、SQL Server プロセスとほぼ同じであり、合計システム RAM とほぼ同じです。1つの SQL Server インスタンス専用の大規模なサーバーで、数百 gb 以上のファイルを使用している可能性があります。 そうしないと、このようなファイルは生成に時間がかかるため、prolongated freeze が発生します。 ダンプのファイルターゲットのディスクパフォーマンスは、時間を凍結する主なドライバーになります。 この種のダンプは、今日の SQL Server ではあまり使われないことに注意してください。次の種類の説明について説明します。

フィルター処理されたダンプ: SQL Server を実行している一般的なサーバーの RAM サイズが着実に増加しているため、完全なダンプが増え、扱いにくくなっています。このように、フィルター処理されたダンプが実装されています。完全なダンプのサブセットであり、SQL Server に関連するメモリ構造の大きな領域が、トラブルシューティングの値 (通常は、データ/インデックスページ、一部の内部キャッシュなど) がないため、ディスクにシリアル化されません。Hekaton データページとログプールメモリなど)。これにより、ファイルのサイズが完全なダンプよりも小さくなり、ほとんどすべての機能が維持されます。ミニダンプが十分でない場合は、ほとんどの状況で [完全なダンプ] が優先されます。サイズを小さくしても、完全なダンプはあまり変わりませんが、SQL Server プロセスサイズの30-60% という大きなサイズのファイルである可能性が高いため、適切なサイズの場合は、良好な安全余白を残しておくことをお勧めします。フィルター処理されたダンプは、すべての場合に完全なダンプよりも速く生成されることはありません。 IO の数に関連するゲインが、フィルターのロジックを実装するために必要な時間 (ディスクの速度、CPU、RAM、RAM の速度など) を超えているかどうかを確認できます。

すべての Microsoft Windows アプリケーションについて、必要に応じてダンプファイルを生成するために、.dump ユーティリティを使用することができます。 たとえば、Microsoft SQL Server を実行しているコンピューターがユーザー要求に応答しない場合に、アプリケーションの問題をデバッグするためのダンプファイルを生成できます。 ダンプファイルには、ミニダンプファイルまたは完全なダンプファイルを指定できます。フィルター処理されたダンプファイルは、SQL Server のコンテキストでのみ適用され、意味があります。.ただし、一般的な目的のデバッグには、このユーティリティを使用することはできません。 一般的な目的のデバッグの詳細については、次の Microsoft Web サイトを参照してください。

http://www.microsoft.com/whdc/devtools/debugging/default.mspx

プロセスで例外が発生した場合は、SQL Server のプロセスによって、内部の .dump ユーティリティが内部的に呼び出され、ダンプファイルが生成されます。SQL Server は、フラグを、各 .exe ユーティリティに渡します。トレースフラグを使って、SQL Server が例外のコンテキストまたはアサーションのコンテキストでユーティリティに渡すフラグを変更することができます。これらのトレースフラグは、2540から2559の範囲内にあります。これらのトレースフラグを使って、特定の種類のダンプファイルを生成できます。次に例を示します。

  • トレースフラグ 2551: フィルター処理されたメモリダンプを生成します
  • トレースフラグ 2544: 完全なメモリダンプを生成します
  • トレースフラグ 8026: ダンプを1回生成した後、SQL Server はダンプトリガーをクリアします

2つ以上のトレースフラグがアクティブな場合は、最大のメモリダンプを示すオプションが有効になります。 たとえば、トレースフラグ2551と2544を使用すると、SQL Server は完全なメモリダンプを作成します。

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

.Dump ユーティリティを使ってダンプファイルを生成するには、ダンプファイルを生成する Windows アプリケーションのプロセス識別子を持っている必要があります。プロセス識別子を取得するには、次の手順を実行します。

  1. CTRL キーと ALT キーを押しながら DELETE キーを押し、[タスクマネージャー] をクリックします。
  2. [ Windows タスクマネージャー ] ダイアログボックスで、[プロセス] タブをクリックします。
  3. [表示] メニューの [列の選択] をクリックします。
  4. [列の選択] ダイアログボックスで、[ PID (プロセス識別子) ] チェックボックスをオンにし、[ OK]をクリックします。
  5. ダンプファイルを生成する Windows アプリケーションのプロセス id に注目してください。 SQL Server アプリケーションの場合は、Sqlservr.exe プロセスのプロセス id に注目してください。
  6. タスクマネージャーを閉じます。

SQL Server のエラーログファイルを使用して、コンピューターで実行されている SQL Server アプリケーションのプロセス id を取得することもできます。 たとえば、SQL Server エラーログファイルの一部は、次のようになります。

Date/Time Server Microsoft SQL Server 2005-9.00.1399.06 (Intel X86)日付/時刻型著作権 (c) 1988-2005 Microsoft CorporationWindows NT 5.2 の Enterprise Edition (ビルド 3790: Service Pack 1)日付/時刻型サーバー (c) 2005 Microsoft Corporation。Date/Time すべてのサーバーの権限が予約されています。Date/Time サーバーサーバーのプロセス ID は3716です。

サーバープロセス IDの後に表示される数値は、sqlservr.exe プロセスのプロセス id です。

クラスターのフェイルオーバーとお持ちの .exe ユーティリティー

クラスターのフェールオーバーシナリオでは、フェールオーバーが発生する前に、SQL Server リソース DLL がダンプファイルを取得できるようになりました。 Sql server リソース DLL が、SQL Server リソースが失敗したと判断した場合、SQL Server リソース DLL は、.dump ユーティリティを使って SQL Server プロセスのダンプファイルを取得します。 .Dump ユーティリティによってダンプファイルが正常に生成されるようにするには、次の3つのプロパティを前提条件として設定する必要があります。
  • SqlDumperDumpTimeOut ユーザーが指定したタイムアウト。 リソース dll は、ダンプファイルが完了するのを待機してから、リソース DLL が SQL Server サービスを停止します。
  • SqlDumperDumpPath ダンプファイルを生成する、.dump ユーティリティの場所。
  • SqlDumperDumpFlags 使用しているすべての .exe ユーティリティで使用されるフラグ。

いずれかのプロパティが設定されていない場合は、ダンプファイルを生成することはできません。 リソースがオンラインになるたびに、警告メッセージがイベントログとクラスターログの両方に記録されます。

SQL Server 2012 以降の場合

[ALTER SERVER CONFIGURATION (T-sql)] コマンドを使って、これらのプロパティを変更することができます。 次に例を示します。

ALTER SERVER CONFIGURATION set FAILOVER CLUSTER プロパティ SqlDumperDumpTimeOut = 0;

ALTER SERVER CONFIGURATION set FAILOVER CLUSTER プロパティ SqlDumperDumpPath = ' C:\temp\ ';

ALTER SERVER CONFIGURATION set FAILOVER CLUSTER プロパティ SqlDumperDumpPath = 296;

または、PowerShell スクリプトを使用することもできます。 たとえば、名前付きインスタンス SQL2017A の場合は、次のようになります。

Get-ClusterResource Name "SQL Server (SQL2017AG)" |Set-ClusterParameter-Name "SqlDumperDumpPath"-値 "C:\temp"

Get-ClusterResource Name "SQL Server (SQL2017AG)" |Set-ClusterParameter-Name "SqlDumperDumpFlags"-値296

Get-ClusterResource Name "SQL Server (SQL2017AG)" |Set-ClusterParameter-Name "SqlDumperDumpTimeOut"-値0

設定が適用されたことを確認するには、次の PowerShell コマンドを実行します。

Get-ClusterResource Name "SQL Server (SQL2017AG)" |Get-ClusterParameter

SQL Server 2008/2008 R2 または Windows 2012 以前の場合

DBCC STACKDUMP の使い方

DBCC STACKDUMP コマンドは、SQL Server インスタンスのインストールのログディレクトリでメモリダンプを作成するのに役立ちます。 このコマンドは、既定では、サイズが制限されているすべてのスレッドと SQL Server プロセスの状態を反映するのに十分なミニミニダンプを作成します。SQL Server クライアントで次のコマンドを実行します。

DBCC STACKDUMP

このメソッドを有効にしてフィルター処理されたダンプを作成するには、次のコマンドを使用してトレースフラグ2551を有効にします。

dbcc traceon(2551, -1) godbcc stackdump

完全なダンプを作成するには、トレースフラグ2544を使用します。

: ダンプファイルを取得した後、次のコマンドを使用して、今後のすべての SQL Server セルフ診断ミニダンプをより大きなダンプにアップグレードしないように、トレースフラグを無効にする必要があります。

DBCC TRACEOFF (TraceNumber, -1);   GO

ここで、tracenumber は、2551や2544など、以前に有効になっているトレースフラグです。

どのトレースフラグがアクティブになっているかがわからない場合は、次のように実行できます。

DBCC TRACESTATUS(-1)

空の結果セットは、traceflag がアクティブでないことを示します。 反対に、2551がアクティブな場合は、次のように表示されます。

TraceFlag Status グローバルセッション

--------- ------ ------ -------

2551 1 1 0

注:DBCC TRACEON によって有効になっている traceflags は、サービスの再起動後にリセット (削除) されます。

Powershell スクリプトを使用して、.dump でダンプファイルを生成する方法

  • 次のコードを ps1 ファイルとして保存します (SQLDumpHelper など)。
  • 次のコマンドを使用して、コマンドプロンプトから管理者として実行します。
    Powershell.exe -File SQLDumpHelper.ps1
  • または、Windows PowerShell コンソールから実行し、次のコマンドを使用して管理者として実行します。
    .\SQLDumpHelper.ps1

注: システムで PowerShell スクリプトを実行したことがない場合、次のエラーメッセージが表示されることがあります。

ファイルこのシステムでスクリプトの実行が無効になっているため、SQLDumpHelper を読み込めません。

次の手順に従って、それらを実行する機能を有効にする必要があります。

  1. [管理者として実行] オプションで Windows PowerShell コンソールを起動します。 実行ポリシーを変更できるのは、コンピューターの管理者グループのメンバーだけです。
  2. 次のコマンドで、署名されていないスクリプトの実行を有効にします。
    Set-ExecutionPolicy RemoteSigned

    注:これにより、 ローカルコンピューターで作成した署名されていないスクリプトを実行し、インターネットから署名されたスクリプトを実行することができます。