文章編號: 917825 - 上次校閱: 2011年5月28日 - 版次: 2.0

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

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

「 Sqldumper.exe 」 公用程式會包含 Microsoft SQL Server 2005。本文將告訴您如何使用 Sqldumper.exe 公用程式來產生 Watson 錯誤報告或偵錯工作的傾印檔案。

其他相關資訊

您可以使用 Sqldumper.exe 公用程式來產生任何 Microsoft Windows 應用程式需求的傾印檔案。例如,您可以產生偵錯應用程式的問題時正在執行 SQL Server 2005 的電腦沒有回應使用者要求的傾印檔案。傾印檔案可以是迷你的傾印檔案、 完整的傾印檔案或已篩選的傾印檔案。

不過,您不能使用 Sqldumper.exe 公用程式一般用途偵錯。如需有關一般用途偵錯的詳細資訊,請造訪下列 Microsoft 網站:
http://www.microsoft.com/whdc/devtools/debugging/default.mspx (http://www.microsoft.com/whdc/devtools/debugging/default.mspx)
SQL Server 處理序會呼叫在內部以處理程序發生任何例外狀況時,產生的傾印檔案的 「 Sqldumper.exe 」 公用程式。SQL Server 會將旗標傳遞到 「 Sqldumper.exe 」 公用程式。您可以使用追蹤旗標來變更 SQL Server 會傳遞至公用程式內容中的例外狀況或判斷提示的內容中的旗標。這些追蹤旗標會在 2540年到 2559年範圍內。您可以使用這些追蹤旗標來產生某些類型的傾印檔案。

如何取得 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: 服務封包 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 伺服器伺服器處理序識別碼為 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\90\Shared
  2. 請確定 Dbghelp.dll 檔案的確在資料夾中。
  3. 按一下 [ 開始按一下 執行型別 cmd然後按一下 [確定].
  4. 在命令提示字元中,輸入下列命令,然後按 ENTER 鍵:
    cd SQLServerInstallDrive: \Program Files\Microsoft SQL Server\90\Shared
  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 鍵:
    cd SQLServerInstallDrive: \Program Files\Microsoft SQL Server\90\Shared
  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 = 逾時
      附註 逾時 是以毫秒為單位 (毫秒) 的逾時的預留位置。

      此公用程式會產生的 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
關鍵字:?
kbsql2005tool kbexpertiseadvanced kbhowto kbinfo kbmt KB917825 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:917825? (http://support.microsoft.com/kb/917825/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。