如何使用 Sqldumper.exe 公用程式,以在 SQL Server 產生的傾印檔案

文章翻譯 文章翻譯
文章編號: 917825 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

「 Sqldumper.exe 」 公用程式是隨附於 Microsoft SQL Server 2005年,Microsoft SQL Server 2008年,Microsoft SQL Server 2008 R2 Microsoft SQL Server 2012年。本文將告訴您如何使用 Sqldumper.exe 公用程式來產生 Watson 錯誤報告或偵錯工作的傾印檔案。

其他相關資訊

您可以使用 Sqldumper.exe 公用程式來產生傾印檔案,在 Microsoft Windows 中的任何應用程式的需要。比方說,您可以產生傾印檔案以進行偵錯應用程式的問題時正在執行 SQL Server 2005,Microsoft SQL Server 2008年,Microsoft SQL Server 2008 R2 的電腦,或 Microsoft SQL Server 2012年不會回應使用者要求。傾印檔案可以是一個迷你的傾印檔案、 完整的傾印檔案或已篩選的傾印檔案。

不過,您無法使用 Sqldumper.exe 公用程式,以進行偵錯的一般用途。如需有關如何偵錯的一般用途的詳細資訊,請造訪下列 Microsoft 網站:
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
SQL Server 處理程序會呼叫 Sqldumper.exe 公用程式,在內部用來產生傾印檔案,當處理程序發生任何例外狀況。SQL Server 會將旗標傳遞給 Sqldumper.exe 公用程式。若要變更為公用程式內容中的例外狀況,或判斷提示的內容中的 SQL Server 會傳遞的旗標,您可以使用追蹤旗標。這些追蹤旗標是從 2540年到 2559年範圍中。您可以使用這些追蹤旗標來產生某些類型的傾印檔案。舉例如下:
  • 追蹤旗標 2551年: 產生篩選過的記憶體傾印
  • 追蹤旗標 2544年: 產生完整記憶體傾印
  • 傾印檔案中的 SQL Server 追蹤旗標 2546年: 傾印所有執行緒
  • 追蹤旗標 8026: SQL Server 會清除 dumptrigger 一次產生傾印之後
如果正在作用中的兩個或多個追蹤旗標,指出最大的記憶體傾印的選項就會生效。如果使用追蹤旗標 2551年和 2544年,SQL Server 將會建立完整記憶體傾印。

如何取得 Microsoft Windows 應用程式的處理序識別項

若要使用 Sqldumper.exe 公用程式產生的傾印檔案,您必須擁有您要產生傾印檔案的 Windows 應用程式的處理序識別項。若要取得處理序識別項,請依照下列步驟執行:
  1. 按 CTRL + ALT + DELETE,然後再按一下 [工作管理員.
  2. Windows 工作管理員 對話方塊中,按一下 處理程序 索引標籤。
  3. 在上 檢視 功能表中,按一下 選取資料行.
  4. 選取資料行 對話方塊中,按一下以選取 PID (程序識別元) 核取方塊,然後再按一下 [確定].
  5. 請注意,您想要產生傾印檔案的 Windows 應用程式的處理序識別項。對於 SQL Server 應用程式時,會發現 Sqlservr.exe 程序的處理序識別項。
  6. 關閉 [工作管理員.
您也可以取得處理序識別項,藉由使用 SQL Server 錯誤記錄檔在您的電腦上正在執行的 SQL Server 應用程式。比方說,SQL Server 錯誤記錄檔的一部分,如下所示:

2006-04-18 09:53:03.94 伺服器 Microsoft SQL Server 2005 年 9.00.1399.06 (Intel x86)
2005 年 10 月 14 00:33:37
版權所有 (c) 1988年-2005年微軟公司
在 Windows NT 5.2 企業版 (組建 3790: Service Pack 1)

2006-04-18 09:53:03.94 伺服器 (c) 2005 Microsoft 公司。
2006-04-18 09:53:03.94 伺服器保有所有的權限。
2006-04-18 09:53:03.94 伺服器處理序 ID 是 3716。

顯示之後的數字 伺服器處理序識別碼 是 Sqlservr.exe 的處理程序的處理程序識別碼。

如何執行 Sqldumper.exe 公用程式

執行 Sqldumper.exe 公用程式,在 [SQL Server 原來安裝此公用程式] 資料夾的內容。根據預設,「 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然後按一下 [確定].
  4. 在命令提示字元中,輸入下列命令,並再按 ENTER 鍵:
    光碟片 SQLServerInstallDrive: \Program Files\Microsoft SQL Server\數字\Shared
    附註在這個資料夾路徑中,數字是預留位置,以下列其中一項動作:
    • 資料夾名稱是 SQL Server 2012年為 110。
    • 資料夾名稱是 SQL Server 2008 的 100。
    • SQL Server 2005 的資料夾名稱 90。
  5. 若要產生特定種類的傾印檔案,請在命令提示字元中,輸入對應的命令,然後按 ENTER 鍵:
    • 完整的傾印檔案
      Sqldumper.exe 其中 ProcessID 0 的 0x01100
    • 迷你的傾印檔案
      Sqldumper.exe 其中 ProcessID 0 的 0x0120
    • 迷你的傾印檔案,其中包括間接參考的記憶體
      Sqldumper.exe 其中 ProcessID 0 的 0x0120:40
    • 已篩選的傾印檔案
      Sqldumper.exe 其中 ProcessID 0 的 0x8100
    附註其中 ProcessID 為您要產生傾印檔案的 Windows 應用程式的處理序識別項的預留位置。
如果能順利執行 Sqldumper.exe 公用程式,此公用程式會安裝公用程式的所在的資料夾中產生傾印檔案。

「 Sqldumper.exe 」 公用程式會產生傾印檔案包含類似下列的檔案名稱模式:
SQLDmprxxxx.mdmp
在此模式中, xxxx 越來越多的決定根據其他有類似的檔案名稱相同的資料夾中的檔案。如果您已經有資料夾中具有指定模式中的檔案名稱的檔案,您可能比較日期與時間來指定您想要的檔案所建立的檔案。

其他資訊和考量

當 「 Sqldumper.exe 」 公用程式會產生一個 Windows 應用程式的傾印檔案時,則可能會一樣大的 Windows 應用程式目前正在使用的記憶體傾印檔案。請確定磁碟空間不足的 Sqldumper.exe 公用程式正在寫入傾印檔案的磁碟機。

您可以指定想要寫入的傾印檔案的 「 Sqldumper.exe 」 公用程式的目錄。執行 Sqldumper.exe 公用程式之前,必須已經存在的目錄。否則,「 Sqldumper.exe 」 公用程式將會失敗。請勿使用 UNC 路徑做為位置的傾印檔案。以下是方式的範例來指定迷你的傾印檔案的傾印檔案的位置:
  1. 按一下 開始按一下 執行型別 cmd然後按一下 [確定].
  2. 在命令提示字元中,輸入下列命令,並再按 ENTER 鍵:
    光碟片 SQLServerInstallDrive: \Program Files\Microsoft SQL Server\數字\Shared
    附註在此資料夾的路徑, 數字 是預留位置,以下列其中一項動作:
    • 資料夾名稱是 SQL Server 2012年為 110。
    • 資料夾名稱是 SQL Server 2008 的 100。
    • SQL Server 2005 的資料夾名稱 90。
  3. 在命令提示字元中,輸入下列命令,然後按 ENTER 鍵:
    Sqldumper.exe ProcessID 0 0x0120 0 MdumpPath
    附註MdumpPath為想要寫入的傾印檔案的 「 Sqldumper.exe 」 公用程式的目錄的預留位置。根據預設,檔案會寫入目前的資料夾。
如果您指定完整的傾印檔案或已篩選的傾印檔案產生時,「 Sqldumper.exe 」 公用程式可能要花幾分鐘時間才能產生傾印檔案。時間,取決於下列變數:
  • 目前正在使用 Sqldumper.exe 公用程式的記憶體數量
  • 此公用程式要撰寫傾印檔案的磁碟機的速度
在此期間,「 Sqldumper.exe 」 公用程式不會處理命令。您會發現伺服器已經停止回應。此外,可能會發生叢集容錯移轉。

若要執行 Sqldumper.exe 公用程式,您必須登入 Windows 藉由使用下列方法之一:
  • 使用的是在電腦上的系統管理員群組成員的帳戶。
  • 使用相同的使用者帳戶執行 SQL Server 服務。
「 Sqldumper.exe 」 公用程式可以順利地執行,透過遠端桌面 」 或 「 終端機服務,您必須在主控台模式下啟動遠端桌面 」 或 「 終端機服務。例如,若要啟動 [遠端桌面,在主控台模式下,按一下 開始按一下 執行型別 mstsc /console然後按一下 [確定].請注意如果目標伺服器執行 Windows 2000, /console會以無訊息模式忽略這個選項。您可以透過 [遠端桌面連線。但是,您將無法使用主控台工作階段。
如果您發現未傾印檔案已經產生在目前的資料夾中執行 Sqldumper.exe 公用程式之後,請檢閱所產生,嘗試判斷可能的原因,失敗的命令列公用程式包含的資訊。這項資訊也會記錄在 Sqldumper_errorlog.log 檔案中目前的目錄。以下是兩個可能的錯誤訊息,以及它們的成因:
訊息 1
OpenProcess 無法 0x57-參數不正確

無效的處理序 ID 傳遞給 Sqldumper.exe 公用程式。
訊息 2
無效的值,執行緒識別碼-<invalid parameter="">參數錯誤</invalid>

不正確的參數傳遞給 Sqldumper.exe 公用程式。

如果產生錯誤訊息類似下列其中一項,您可以放心忽略這個訊息:

未知的回呼期間小量傾印 6 的型別
未知的回呼期間小量傾印 7 的型別

叢集錯誤後移轉和 「 Sqldumper.exe 」 公用程式

在叢集容錯移轉的情況下,SQL Server 資源 DLL 現在可以取得傾印檔案的錯誤後移轉發生預呈現時。當 SQL Server 資源 DLL 會判斷 SQL Server 資源已經失敗時,SQL Server 資源 DLL 使用 Sqldumper.exe 公用程式來取得 SQL Server 處理序傾印檔案。若要確定 「 Sqldumper.exe 」 公用程式成功地會產生傾印檔案,您必須設定下列三個屬性,當做必要條件:
  • SqlDumperDumpTimeOut
    使用者指定的逾時。資源 DLL 會等到完成後才資源 DLL 的傾印檔案就會停止 SQL Server 服務。
  • SqlDumperDumpPath
    其中 Sqldumper.exe 公用程式會產生傾印檔案的位置。
  • SqlDumperDumpFlags
    Sqldumper.exe 公用程式使用的旗標。
如果未設定任何一個屬性,則 「 Sqldumper.exe 」 公用程式不會產生傾印檔案。警告訊息就會記錄在事件記錄檔和叢集記錄檔中的資源上線時。

若要設定的叢集容錯移轉的 Sqldumper.exe 公用程式屬性,請依照下列步驟執行:
  1. 按一下 開始按一下 執行型別 cmd然後按一下 [確定].
  2. 每個屬性,請在命令提示字元中,輸入對應的命令,並按 ENTER:
    • [ SqlDumperDumpFlags 屬性
      若要設定 SqlDumperDumpFlags 特定種類的傾印檔案的屬性會在命令提示字元中,輸入對應的命令,然後按 ENTER 鍵:
      • 所有的執行緒完整的傾印檔案
        • 預設執行個體
          叢集資源"SQL Server"/priv SqlDumperDumpFlags = 0x01100
        • 具名執行個體
          叢集資源"SQL Server (執行個體 1)"/priv SqlDumperDumpFlags = 0x01100
      • 所有的執行緒迷你的傾印檔案
        • 預設執行個體
          叢集資源"SQL Server"/priv SqlDumperDumpFlags = 0x0120
        • 具名執行個體
          叢集資源"SQL Server (執行個體 1)"/priv SqlDumperDumpFlags = 0x0120
      • 篩選所有的執行緒傾印檔案
        • 預設執行個體
          叢集資源"SQL Server"/priv SqlDumperDumpFlags = 0x8100
        • 具名執行個體
          「 SQL Server 的叢集資源執行個體 (1)"/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然後按一下 [確定].
  2. 針對特定的屬性,請在命令提示字元中,輸入對應的命令,並按 ENTER:
    • [ SqlDumperDumpFlags 屬性
      • 預設執行個體
        叢集資源"SQL Server"/priv:SqlDumperDumpFlags /usedefault
      • 具名執行個體
        叢集資源"SQL Server (執行個體 1)"/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 - 上次校閱: 2013年2月4日 - 版次: 3.0
這篇文章中的資訊適用於:
  • 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
關鍵字:?
kbsql2005tool kbexpertiseadvanced kbhowto kbinfo kbmt KB917825 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:917825
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com