Konfigurera SQL Server Analysis Services för att generera minnesdumpfiler
Den här artikeln beskriver hur du konfigurerar SQL Server Analysis Services för att automatiskt generera minnesdumpfiler.
Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 919711
Inledning
Den här artikeln beskriver hur du konfigurerar Microsoft SQL Server Analysis Services (SSAS) 2012 eller senare versioner för att automatiskt generera olika typer av minnesdumpfiler när undantag uppstår. Artikeln beskriver också hur du använder verktyget Sqldumper.exe för att manuellt hämta en minnesdumpfil för SQL Server Analysis Services processen.
Mer information
Som standard genererar SQL Server Analysis Services automatiskt minidump-filer när ett undantag inträffar. För standardinstallationen skrivs minidump-filerna till standardplatsen:
Analysis Services-version | Plats |
---|---|
2019 | %ProgramFiles%\Microsoft SQL Server\MSAS15.InstanceName\OLAP\log |
2017 | %ProgramFiles%\Microsoft SQL Server\MSAS14.InstanceName\OLAP\log |
2016 | %ProgramFiles%\Microsoft SQL Server MSAS13.InstanceName\OLAP\log |
2014 | %ProgramFiles%\Microsoft SQL Server MSAS12.InstanceName\OLAP\log |
2012 | %ProgramFiles%\Microsoft SQL Server MSAS11.InstanceName\OLAP\log |
Obs!
InstanceName är en platshållare för motsvarande värde för SQL Server Analysis Services version.
Loggplatsen för SQL Server Analysis Services instans kan ändras efter installationen, så att du kan verifiera loggplatsen genom att granska msmdsrv.ini-filen för den installerade SQL Server Analysis Services.
För att fastställa motsvarande värde för systemet fastställer du värdet för ImagePath-registernyckeln. Den ska innehålla sökvägen till konfigurationssökvägen som innehåller msmdsrv.ini.
Analysis Services-version | Registerundernyckel |
---|---|
Standardinstans | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServerOLAPService\ImagePath |
Namngiven instans | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSOLAP$InstanceName\ImagePath |
Minidump-filerna innehåller följande information:
Alla trådstackar
Andra ordningens minne som refereras av pekare på stacken
Information om processmiljöblocket (PEB)
Information om TEB (Thread Environment Block)
Information om nyligen borttagna moduler
Information om trådtillstånd
Avsnittet Undantag i Msmdsrv.ini-filen styr genereringen av minnesdumpfilen. Filen finns som standard i %ProgramFiles%\Microsoft SQL Server\MSASxx.InstanceName\OLAP\Config
mappen . MSASxx är en platshållare för motsvarande version för SQL Server Analysis Service. När du öppnar filen i Anteckningar ser du ett avsnitt i xml-taggen Undantag som liknar följande:
<Exception>
<CreateAndSendCrashReports>1</CreateAndSendCrashReports>
<CrashReportsFolder/>
<SQLDumperFlagsOn>0x0</SQLDumperFlagsOn>
<SQLDumperFlagsOff>0x0</SQLDumperFlagsOff>
<MiniDumpFlagsOn>0x0</MiniDumpFlagsOn>
<MiniDumpFlagsOff>0x0</MiniDumpFlagsOff>
<MinidumpErrorList>0xC1000000, 0xC1000001, 0xC1000016, 0xC11D0005, 0xC102003F</MinidumpErrorList>
<ExceptionHandlingMode>0</ExceptionHandlingMode>
<CriticalErrorHandling>1</CriticalErrorHandling>
</Exception>
Du kan styra hur minnesdumpfilen genereras genom att ändra inställningarna i det här avsnittet. Du kan också ändra de här inställningarna i SQL Server Management Studio. Mer information om de här inställningarna finns på SQL Server Management Studio nedladdningswebbplats: Loggegenskaper.
Inaktivera den automatiska minnesdumpfilen för Analysis Services
Värdet för inställningen CreateAndSendCrashReports avgör om en minnesdumpfil ska genereras. Den här inställningen kan ha ett av de värden som anges i följande tabell.
Värde | Beskrivning |
---|---|
0 | Det här värdet anger att Analysis Services inte genererar någon minnesdumpfil. Dessutom ignoreras värdet för de andra inställningarna under avsnittet Undantag. |
1 | Det här standardvärdet aktiverar minnesdumpfilen. Men SQL Server Analysis Services skickar ingen felrapport till Microsoft. |
2 | Det här värdet anger att SQL Server Analysis Services genererar en minnesdumpfil och skickar en felrapport till Microsoft. |
När inställningen CreateAndSendCrashReports är inställd på 1 eller 2 kan de andra inställningarna i avsnittet Undantag styra typen av minnesdumpfil och vilken information som ska inkluderas i minnesdumpfilen.
Konfigurera SQL Server Analysis Services för att generera en fullständig dumpfil automatiskt
Om du vill konfigurera SQL Server Analysis Services att generera en fullständig dumpfil automatiskt när ett undantag inträffar kan du ange inställningen SQLDumperFlagsOn till 0x34. Om du vill konfigurera SQL Server Analysis Services för att generera en fullständig dumpfil som innehåller referensinformationen kan du dessutom ange inställningen SQLDumperFlagsOn till 0x34 och inställningen MiniDumpFlagsOn till 0x4. Avsnittet Undantag i Msmdsrv.ini-filen kan till exempel likna följande:
<Exception>
<CreateAndSendCrashReports>1</CreateAndSendCrashReports>
<CrashReportsFolder/>
<SQLDumperFlagsOn>0x34</SQLDumperFlagsOn>
<SQLDumperFlagsOff>0x0</SQLDumperFlagsOff>
<MiniDumpFlagsOn>0x4</MiniDumpFlagsOn>
<MiniDumpFlagsOff>0x0</MiniDumpFlagsOff>
<MinidumpErrorList>0xC1000000, 0xC1000001, 0xC1000016, 0xC11D0005, 0xC102003F</MinidumpErrorList>
<ExceptionHandlingMode>0</ExceptionHandlingMode>
<CriticalErrorHandling>1</CriticalErrorHandling>
</Exception>
Generera en fullständig dumpfil som innehåller hantera information manuellt
Om du vill felsöka problem, till exempel en server som slutar svara (låser sig), kanske du vill generera en fullständig dumpfil som innehåller hantera information manuellt. Det gör du genom att köra verktyget Sqldumper.exe i kommandotolken tillsammans med följande argument:
Sqldumper.exe PID 0 0x34:0x4 0 PathToDumpFile
Obs!
PID representerar process-ID:t för SQL Server Analysis Services processen. PathToDumpFile representerar mappen som dumpfilen skrivs till.
Du måste köra det här kommandot från den delade katalogen där du installerade instansen, eller så måste du ange den fullständiga sökvägen till den Sqldumper.exe filen i kommandot .
Analysis Services-version | Plats |
---|---|
2019 | %ProgramFiles%\Microsoft SQL Server\150\Shared |
2017 | %ProgramFiles%\Microsoft SQL Server\140\Shared |
2016 | %ProgramFiles%\Microsoft SQL Server\130\Shared |
2014 | %ProgramFiles%\Microsoft SQL Server\120\Shared |
2012 | %ProgramFiles%\Microsoft SQL Server\110\Shared |
Standardkatalogen som ska köras sqldumper.exe för SQL Server Analysis Services 2019 är C:\Program Files\Microsoft SQL Server\1590\Shared
till exempel .
Mer information
Du kan använda inställningen SQLDumperFlagsOn för att ange de olika SQLDumper-flaggorna. I följande tabell visas de bitmaskvärden som du kan använda som ett värde för flaggparametern.
Mnemonic-namn | Hexadecimalt värde | Beskrivning |
---|---|---|
SQLDUMPER_DBGBREAK | 0x0001 | Den här flaggan gör att Sqldumper.exe-verktyget kör API-anropet DebugBreak i början av programmet när parametrarna parsas. Microsofts supportpersonal använder vanligtvis inte den här flaggan eftersom flaggan endast används för att felsöka Sqldumper.exe verktygsproblem. Observera Den här flaggan bryter in i Sqldumper.exe processen. Den här flaggan bryter inte in i processen som Sqldumper.exe-verktyget felsöker. |
SQLDUMPER_NOMINIDUMP | 0x0002 | När du använder den här flaggan genererar inte Sqldumper.exe-verktyget en dumpfil. Den här flaggan används för att testa verktyget Sqldumper.exe. |
SQLDUMPER_NOWATSON | 0x0004 | Vanligtvis används den här flaggan när du manuellt genererar dumpfiler. Den här flaggan åsidosätter standardbeteendet för felrapportering. Som standard skickas dumpfilen till felrapporteringsplatsen som har konfigurerats i registret. |
SQLDUMPER_REFERENCED_MEMORY | 0x0008 | Den här flaggan gör att Sqldumper.exe-verktyget anger flaggan MiniDumpWithIndirectlyReferencedMemory för parametern MiniDumpType när den anropar funktionen MiniDumpWritedump. Minne för pekare (endast en nivå) som är stackbaserade (parametrar eller lokala variabler) lagras i dumpfilen. Testningen visar att vissa lokala parametrar som baseras på TLS-data (Thread Local Storage), till exempel PSS (Probabilistic Signature Scheme) och EC-strukturer, inte verkar fungera även när du anger den här flaggan. |
SQLDUMPER_ALL_MEMORY | 0x0010 | Den här flaggan gör att Sqldumper.exe-verktyget anger flagganMiniDumpWithFullMemory för MiniDumpType när verktyget anropar funktionen MiniDumpWriteDump. Det här beteendet är detsamma som att använda kommandot .dump /mf under felsökningsprogrammet. Du måste dock också ha flaggan SQLDUMPER_DUMP_ALL_THREADS inställd på för att se till att alla trådstackar ingår. |
SQLDUMPER_DUMP_ALL_THREADS | 0x0020 | Den här flaggan krävs inte när du kör Sqldumper.exe-verktyget manuellt och du anger ett ThreadId-parametervärde på 0. Ett ThreadId-parametervärde på 0 anger att alla trådar ska dumpas. Om du anger ett specifikt, icke-noll ThreadId-parametervärde, men du även använder den här flaggan, skrivs alla trådar till dumpfilen. Den här flaggan finns eftersom det vanliga beteendet i Sqlservr.exe processen är att skicka in det aktuella ThreadId-egenskapsvärdet för den tråd som skapar Sqlservr.exe processen. När det här beteendet inträffar behövs flaggan som ett alternativ för att dumpa alla trådar. |
SQLDUMPER_MATCH_FILE_NAME | 0x0040 | Du kan använda den här flaggan för att försöka tvinga Sqldumper.exe-verktyget att generera ett dumpfilnamn som liknar en specifik namngivningskonvention. Den här specifika namngivningskonventionen kan baseras på ett befintligt filnamn. Eftersom du måste konfigurera en särskild minnesstruktur som innehåller det befintliga filnamnet i ditt eget program och sedan skicka pekaren till Sqldumper.exe-verktyget som SqlInfoPtr-parametern, är den här flaggan inte användbar när du kör Sqldumper.exe-verktyget manuellt. |
SQLDUMPER_SKIP_DW_REG_READ | 0x0080 | Den här flaggan gör att Sqldumper.exe-verktyget inte använder registret som sökväg för körning av Dw15.exe-programmet. Det Dw15.exe programmet används för att ladda upp dumpfilerna till felrapporteringsplatsen. |
SQLDUMPER_VERBOSE | 0x0100 | Den här flaggan kan vara värdefull om du inte är säker på vilka parametrar som Sqldumper.exe-verktyget tror används som indata. När du använder den här flaggan visar Sqldumper.exe-verktyget parametervärdena och hur många parametervärden som angavs från kommandoraden. |
SQLDUMPER_WAIT_AT_EXIT | 0x0200 | Du kan använda den här flaggan för att koppla ett felsökningsprogram till Sqldumper.exe-verktyget. Du kan använda det här felsökningsprogrammet för att felsöka eventuella problem med verktyget Sqldumper.exe. Dessa problem kan särskilt uppstå när verktyget Sqldumper.exe skapas av Sqlservr.exe eller av ett annat program. När du anger den här flaggan anropar Sqldumper.exe-verktyget SleepEx-funktionen i 15 sekunder precis innan det Sqldumper.exe programmet finns och när alla andra åtgärder har slutförts. |
SQLDUMPER_FILTERED | 0x0800 | Du kan använda den här flaggan för att generera en filtrerad dumpfil. SQL Server Analysis Services stöder inte den här flaggan ännu. |
Du kan använda inställningen MiniDumpFlagsOn för att tillhandahålla minidumpflaggor. I följande tabell visas tillgängliga minidumpflaggor:
Alternativ | Värde | Beskrivning |
---|---|---|
MiniDumpNormal | 0x00000000 | Skapa en typisk minidumpfil som använder överskrivning. |
MiniDumpWithDataSegs | 0x00000001 | Inkludera ett datasegment för alla inlästa moduler. Flaggan som de inlästa modulerna hämtar globala variabler. |
MiniDumpWithFullMemory | 0x00000002 | Skapa en fullständig användardumpfil. En filtrerad dumpfil inaktiveras när flaggan anges. |
MiniDumpWithHandleData | 0x00000004 | Inkludera referensinformation. |
MiniDumpFilterMemory | 0x00000010 | Stack- och säkerhetskopieringslagringsminnet ska genomsökas efter pekarreferenser till moduler i modullistan. Användaren bör inte använda den här flaggan för SQL Server Analysis Services. |
MiniDumpWithUnloadedModules | 0x00000020 | Den här flaggan innehåller information om nyligen borttagna moduler. Endast Microsoft Windows XP och Microsoft Windows Server 2003 stöder den här flaggan. Operativsystemet behåller inte information för oladdade moduler förrän Windows Server 2003 Service Pack 1 (SP1) och Windows XP Service Pack 2 (SP2). |
MiniDumpWithIndirectlyReferencedMemory | 0x00000040 | Inkludera sidor som har data som refereras av lokalbefolkningen eller av annat stackminne. |
MiniDumpFilterModulePaths | 0x00000080 | Om modulsökvägen tas bort från modulinformationen ska du inte använda den här flaggan. |
MiniDumpWithProcessThreadData | 0x00000100 | Den här flaggan innehåller information om PROCESS Environment Block (PEB) och TEB (Thread Environment Block). |
MiniDumpWithPrivateReadWriteMemory | 0x00000200 | Sök igenom det virtuella adressutrymmet efter andra typer av minne som ska inkluderas. |
MiniDumpWithoutOptionalData | 0x00000400 | Minska de data som dumpas genom att eliminera minnesregioner som inte krävs. Gör detta för att uppfylla kriterier som anges för dumpfilen. Med den här flaggan kan du undvika att dumpa minne som kan innehålla data som är privata för användaren. Detta är dock inte en garanti för att ingen privat information kommer att finnas. Använd inte den här flaggan. |
MiniDumpWithFullMemoryInfo | 0x00000800 | Inkludera beskrivande information om uppräknat minnesområde. |
MiniDumpWithThreadInfo | 0x00001000 | Inkludera information om trådtillstånd. |
MiniDumpWithCodeSegs | 0x00002000 | Inkludera kod- och kodrelaterade avsnitt för alla inlästa moduler. |
Referenser
Så här använder du verktyget Sqldumper.exe för att generera en dumpfil i SQL Server
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för