Jak pomocí nástroje Sqldumper.exe pro generování souboru s výpisem stavu paměti v SQL Server

Souhrn

Nástroj Sqldumper.exe je součástí Microsoft SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2008 R2 a Microsoft SQL Server 2012. Tento článek popisuje, jak používat nástroj Sqldumper.exe vygenerovat soubor s výpisem stavu paměti pro zasílání zpráv o chybách programu Watson nebo ladění úkoly.

Další informace

Můžete použít nástroj Sqldumper.exe vygenerovat soubor výpisu na vyžádání pro libovolnou aplikaci systému Windows. Například můžete vytvořit soubor s výpisem pro ladění problémem aplikace potřebuje-li počítač se systémem SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2008 R2 nebo Microsoft SQL Server 2012 neodpovídá na požadavky uživatelů. Soubor se stavem systému může být soubor s výpisem zkrácené, celý výpis soubor nebo soubor s výpisem filtrované.

Nelze však použít nástroj Sqldumper.exe pro obecné účely ladění. Další informace o obecné účely ladění naleznete na následujícím webu společnosti Microsoft:Procesu serveru SQL Server volá nástroj Sqldumper.exe pro generování souboru s výpisem stavu paměti při procesu dojde k jakékoli výjimky. SQL Server předá příznaky nástroj Sqldumper.exe. Trasování příznaky můžete změnit příznaky, které nástroj v kontextu výjimku nebo v rámci nepravdivých předá serveru SQL Server. Tyto příznaky trasování jsou v rozsahu od 2540 do 2559. Tyto příznaky trasování můžete použít ke generování určitých typů souborů s výpisem stavu paměti. Například:
  • Příznak trasování 2551: Vytvoří filtrované výpisu
  • Příznak trasování 2544: Vytvoří úplný výpis stavu paměti
  • Příznak trasování 2546: Vypíše všechny podprocesy pro SQL Server v souboru s výpisem stavu paměti
  • Příznak trasování 8026: SQL Server zrušte dumptrigger po vygenerování výpisu jednou
Jsou-li dva nebo více příznaků trasování aktivní, bude uplatněn možnost určující největší výpis stavu paměti. Použijete-li trasování příznaky 2551 a 2544, SQL Server vytvoří úplný výpis stavu paměti.

Jak získat identifikátor procesu aplikace systému Windows

Chcete-li generovat soubor s výpisem stavu paměti pomocí nástroje Sqldumper.exe, musí mít identifikátor procesu aplikace systému Windows, pro který chcete vygenerovat soubor výpisu stavu. Chcete-li získat identifikátor procesu, postupujte takto:
  1. Stiskněte kombinaci kláves CTRL + ALT + DELETE a potom klepněte na tlačítko Správce úloh.
  2. V dialogovém okně Správce úloh systému Windows klepněte na kartu procesy .
  3. V nabídce Zobrazit klepněte na příkaz Vybrat sloupce.
  4. V dialogovém okně Vybrat sloupce klepněte na tlačítko PID (identifikátor procesu) zaškrtněte políčko a klepněte na tlačítko OK.
  5. Všimněte si identifikátor procesu aplikace systému Windows, pro který chcete vygenerovat soubor výpisu stavu. Aplikaci SQL Server Všimněte si identifikátor procesu Sqlservr.exe proces.
  6. Zavřete okno Správce úloh.
Můžete také získat identifikátor procesu serveru SQL Server aplikace, která je spuštěna v počítači pomocí protokolu chyb serveru SQL Server. Například část souboru protokolu chyb serveru SQL se podobá následující:

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

14 října 2005 00:33:37

Copyright (c) 1988-2005 Microsoft Corporation

Enterprise Edition v systému Windows NT 5.2 (sestavení 3790: Service Pack 1)



2006-04-18 09:53:03.94 Server (c) 2005 Microsoft Corporation.

2006-04-18 09:53:03.94 Server všechna práva vyhrazena.

ID procesu serveru 09:53:03.94 2006-04-18 je. 3716.

Číslo se zobrazí po ID procesu serveru je identifikátor procesu Sqlservr.exe.

Jak spustit nástroj Sqldumper.exe

Spusťte nástroj Sqldumper.exe v kontextu složky, kde SQL Server původně nainstalován nástroj. Podle výchozího nastavení je cesta instalace nástroje Sqldumper.exe:
SQLServerInstallDrive: \Program Files\Microsoft SQL Server\90\Shared\SQLDumper.exe
Poznámka: SQLServerInstallDrive je zástupný symbol pro jednotku, kde je nainstalován SQL Server 2005.

Chcete-li generovat soubor s výpisem stavu paměti pomocí nástroje Sqldumper.exe, postupujte takto:
  1. Otevřete následující složku:
    SQLServerInstallDrive: \SharedčísloSQL Server\ \Program Files\Microsoft
    Poznámka: V této cestě složky číslo je zástupný symbol pro jednu z následujících akcí:
    • Název složky je 110 pro SQL Server 2012.
    • Název složky je 100 pro SQL Server 2008.
    • Název složky 90 pro SQL Server 2005.

  2. Ujistěte se, že soubor Dbghelp.dll v této složce.
  3. Klepněte na tlačítko Start, na příkaz Spustit, zadejte příkaz cmd a klepněte na tlačítko OK.
  4. Na příkazovém řádku zadejte následující příkaz a stiskněte klávesu ENTER:
    CD SQLServerInstallDrive: \SharedčísloSQL Server\ \Program Files\Microsoft
    Poznámka: V této cestě složky číslo je zástupný symbol pro jednu z následujících akcí:
    • Název složky je 110 pro SQL Server 2012.
    • Název složky je 100 pro SQL Server 2008.
    • Název složky 90 pro SQL Server 2005.
  5. Chcete-li generovat konkrétní druh souboru s výpisem stavu paměti, zadejte odpovídající příkaz na příkazovém řádku a stiskněte klávesu ENTER:
    • Celý výpis souborů
      SQLDumper.exe ID procesu 0 0x01100
    • Soubor s výpisem zkrácené
      SQLDumper.exe ID procesu 0 0x0120
    • Zkrácené dump soubor, který obsahuje nepřímo odkazovala na paměť
      0x0120:40 ID procesu 0 SQLDumper.exe
    • Soubor s výpisem filtrované
      SQLDumper.exe ID procesu 0 0x8100
    Poznámka: ID procesu je zástupný symbol pro identifikátor procesu aplikace systému Windows, pro který chcete vygenerovat soubor výpisu stavu.
Pokud Sqldumper.exe nástroj spuštěn úspěšně, nástroj vygeneruje soubor s výpisem stavu paměti ve složce, kde je nainstalován nástroj.

Soubor výpisu, který generuje nástroj Sqldumper.exe má vzor názvu souboru, která se podobá následující:
SQLDmprxxxx.mdmp
V tomto vzoru xxxx je zvyšující číslo určené na jiné soubory, které mají podobný název souboru ve stejné složce. Pokud již máte soubory ve složce, které mají názvy souborů v zadaný vzorek, bude pravděpodobně nutné porovnat datum a čas, který byl vytvořen soubor, který chcete určit.

Další informace a doporučení

Pokud Sqldumper.exe nástroj vygeneruje soubor s výpisem stavu paměti pro aplikace systému Windows, soubor s výpisem stavu paměti mohou být tak velké, jako je paměť, která je aktuálně používá aplikace Windows. Ujistěte se, zda je dostatek volného místa na jednotce, na které je nástroj Sqldumper.exe zápis souboru s výpisem stavu.

Můžete určit adresář, kam chcete nástroj Sqldumper.exe zápis souboru s výpisem stavu paměti. Adresář musí již existovat před spustit nástroj Sqldumper.exe. Jinak se nezdaří, nástroj Sqldumper.exe. Nepoužívejte cesty UNC jako umístění pro soubor s výpisem stavu paměti. Následuje příklad toho, jak chcete-li určit umístění souboru s výpisem zkrácené výpisu stavu paměti:
  1. Klepněte na tlačítko Start, na příkaz Spustit, zadejte příkaz cmd a klepněte na tlačítko OK.
  2. Na příkazovém řádku zadejte následující příkaz a stiskněte klávesu ENTER:
    CD SQLServerInstallDrive: \SharedčísloSQL Server\ \Program Files\Microsoft
    Poznámka: V této cestě složky číslo je zástupný symbol pro jednu z následujících akcí:
    • Název složky je 110 pro SQL Server 2012.
    • Název složky je 100 pro SQL Server 2008.
    • Název složky 90 pro SQL Server 2005.
  3. Na příkazovém řádku zadejte následující příkaz a stiskněte klávesu ENTER:
    ID procesu SQLDumper.exe 0 0x0120 0 MdumpPath
    Poznámka: MdumpPath je zástupný symbol pro adresář, kam chcete nástroj Sqldumper.exe zápis souboru s výpisem stavu paměti. Ve výchozím nastavení je soubor zapsán do aktuální složky.
Pokud zadáte úplný výpis soubor nebo soubor s výpisem filtrované vygenerovat, nástroj Sqldumper.exe může trvat několik minut pro generování souboru s výpisem stavu paměti. Doba závisí na následující proměnné:
  • Velikost paměti, kterou nyní používá nástroj Sqldumper.exe
  • Rychlost jednotky, do kterého nástroj zapisuje soubor výpisu
Během této doby nebude nástroj Sqldumper.exe zpracovávat příkazy. Zjistíte, že server přestal reagovat. Kromě toho může dojít selhání clusteru.

Chcete-li spustit nástroj Sqldumper.exe, musí přihlášení k systému Windows pomocí jedné z následujících metod:
  • Používáte účet, který je členem skupiny administrators v počítači.
  • Pomocí stejného uživatelského účtu, pod kterým je spuštěna služba SQL Server.
Pro nástroj Sqldumper.exe úspěšně pracovat pomocí vzdálené plochy nebo Terminálové služby je nutné spustit Terminálovou službu nebo funkci Vzdálená plocha v režimu konzoly. Například chcete-li spustit připojení ke vzdálené ploše v režimu konzoly, klepněte na tlačítko Start, klepněte na příkaz Spustit, zadejte mstsc/consolea potom klepněte na tlačítko OK. Uvědomte si, že pokud cílový server běží systém Windows 2000, parametr/Console tiše ignorována. Můžete se připojit k serveru pomocí vzdálené plochy. Ale nebude prostřednictvím relace konzoly.
Pokud si všimnete, že žádný soubor s výpisem stavu paměti byl generován v aktuální složce Po spuštění nástroje Sqldumper.exe, zkontrolujte informace generovaný nástroj příkazového řádku, chcete-li určit možnou příčinu selhání. Tato informace je také zaznamenána v souboru Sqldumper_errorlog.log v aktuálním adresáři. Zde jsou dva možné chybové zprávy a jejich příčiny:
Zpráva 1
OpenProcess se nezdařilo 0x57 - parametr je nesprávný

Neplatné ID procesu byl předán nástroj Sqldumper.exe.
Zpráva 2
Neplatná hodnota pro id vlákna - Chyba parametru < neplatný parametr >

Chcete-li nástroj Sqldumper.exe byl předán neplatný parametr.

Pokud je generována chybová zpráva podobná některé z následujících akcí, můžete ignorovat tuto zprávu:

Typ Neznámý zpětného volání během minidump 6
Typ Neznámý zpětného volání během minidump 7

Převzetí služeb při selhání clusteru a nástroj Sqldumper.exe

V případech převzetí služeb při selhání clusteru prostředků serveru SQL Server DLL nyní můžete získat soubor s výpisem stavu paměti dříve, než dojde převzetí služeb při selhání. Při knihovny DLL prostředků serveru SQL Server určuje, že SQL Server prostředek selhal, SQL Server resource DLL používá nástroj Sqldumper.exe získat soubor s výpisem stavu paměti procesu serveru SQL Server. Ujistěte se, že nástroj Sqldumper.exe úspěšně vygeneruje soubor s výpisem stavu paměti, nastavte následující tři vlastnosti jako předpoklady:
  • SqlDumperDumpTimeOut
    Časový limit zadán uživatel. Zdroj, který čeká, o soubor se stavem dokončeno před knihovny DLL prostředku DLL zastaví službu SQL Server.
  • SqlDumperDumpPath
    Místo, kde Sqldumper.exe nástroj vygeneruje soubor s výpisem stavu paměti.
  • SqlDumperDumpFlags
    Příznaky, které používá nástroj Sqldumper.exe.
Pokud některou z vlastností není nastavena, nástroj Sqldumper.exe nelze generovat soubor s výpisem stavu paměti. Varovná zpráva bude zaznamenána do protokolu událostí a v protokolu clusteru při přechodu prostředku do režimu online.

Chcete-li nastavit vlastnosti Sqldumper.exe nástroj pro převzetí služeb při selhání clusteru, postupujte takto:
  1. Klepněte na tlačítko Start, na příkaz Spustit, zadejte příkaz cmd a klepněte na tlačítko OK.
  2. Pro každou vlastnost zadejte odpovídající příkaz na příkazovém řádku a stiskněte klávesu ENTER:
    • SqlDumperDumpFlags vlastnost
      Chcete-li nastavit SqlDumperDumpFlags vlastnost pro konkrétní druh souboru s výpisem stavu paměti, zadejte odpovídající příkaz na příkazovém řádku a stiskněte klávesu ENTER:
      • Všechny soubor úplný výpis stavu podprocesu
        • Výchozí instance
          clusterový "server SQL Server" / priv SqlDumperDumpFlags = 0x01100
        • Pojmenované instance
          příkaz cluster resource "SQL Server (INSTANCE1)" / priv SqlDumperDumpFlags = 0x01100
      • Všechny vlákna zkrácené dump souborů
        • Výchozí instance
          clusterový "server SQL Server" / priv SqlDumperDumpFlags = 0x0120
        • Pojmenované instance
          příkaz cluster resource "SQL Server (INSTANCE1)" / priv SqlDumperDumpFlags = 0x0120
      • Filtrovány všechny souboru s výpisem stavu podprocesu
        • Výchozí instance
          clusterový "server SQL Server" / priv SqlDumperDumpFlags = 0x8100
        • Pojmenované instance
          příkaz cluster resource "SQL Server (INSTANCE1)" / priv SqlDumperDumpFlags = 0x8100
    • Vlastnost SqlDumperDumpPath
      "SQL Server" / priv SqlDumperDumpPath prostředek clusteru = DirectoryPath
      Poznámka: DirectoryPath je zástupný symbol pro adresář, ve kterém bude vygenerován soubor výpisu a stanovit v uvozovkách ("").
    • SqlDumperDumpTimeOut vlastnost
      "SQL Server" / priv SqlDumperDumpTimeOut prostředek clusteru = Timeout
      Poznámka: Časový limit je zástupný symbol pro hodnotu časového limitu v milisekundách (ms).

      Dobu, po kterou trvá nástroj vygenerovat soubor s výpisem stavu paměti procesu serveru SQL Server, závisí na konfiguraci počítače. V počítači, který má velké množství paměti může být významné čas. Získání odhadu doby, že tento proces trvá, ručně generovat soubor s výpisem stavu paměti pomocí nástroje Sqldumper.exe. Platné hodnoty pro vlastnosti SqlDumperDumpTimeOut se z 10000 ms MAXDWORD. MAXDWORD představuje nejvyšší hodnotu v rozsahu datového typu DWORD (4294967295).
Chcete-li ověřit, že bylo povoleno nastavení, můžete spusťte následující příkaz:

cluster/priv "SQL Server" zdroje"

Chcete-li odebrat vlastnosti Sqldumper.exe nástroj pro převzetí služeb při selhání clusteru, postupujte takto:
  1. Klepněte na tlačítko Start, na příkaz Spustit, zadejte příkaz cmd a klepněte na tlačítko OK.
  2. Pro určitou vlastnost zadejte odpovídající příkaz na příkazovém řádku a stiskněte klávesu ENTER:
    • SqlDumperDumpFlags vlastnost
      • Výchozí instance
        příkaz cluster resource "SQL Server" /priv:SqlDumperDumpFlags/USEDEFAULT
      • Pojmenované instance
        příkaz cluster resource "SQL Server (INSTANCE1)" /priv:SqlDumperDumpFlags/USEDEFAULT
    • Vlastnost SqlDumperDumpPath
      • Výchozí instance
        příkaz cluster resource "SQL Server" /priv:SqlDumperDumpPath/USEDEFAULT
      • Pojmenované instance
        příkaz cluster resource "SQL Server (INSTANCE1)" /priv:SqlDumperDumpPath/USEDEFAULT
    • SqlDumperDumpTimeOut vlastnost
      • Výchozí instance
        příkaz cluster resource "SQL Server" /priv:SqlDumperDumpTimeOut/USEDEFAULT
      • Pojmenované instance
        příkaz cluster resource "SQL Server (INSTANCE1)" /priv:SqlDumperDumpTimeOut/USEDEFAULT
Vlastnosti

ID článku: 917825 - Poslední kontrola: 27. 1. 2017 - Revize: 2

Váš názor