Konfigurieren von SQL Server Analysis Services zum Generieren von Speicherabbilddateien
In diesem Artikel wird beschrieben, wie Sie SQL Server Analysis Services konfigurieren, um Speicherabbilddateien automatisch zu generieren.
Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 919711
Einführung
In diesem Artikel wird beschrieben, wie Sie Builds von Microsoft SQL Server Analysis Services (SSAS) 2012 oder höher konfigurieren, um automatisch verschiedene Typen von Speicherabbilddateien zu generieren, wenn Ausnahmen auftreten. Der Artikel beschreibt auch, wie Sie das Hilfsprogramm Sqldumper.exe verwenden, um manuell eine Speicherabbilddatei für den SQL Server Analysis Services Prozess abzurufen.
Weitere Informationen
Standardmäßig generiert SQL Server Analysis Services automatisch Minidumpdateien, wenn eine Ausnahme auftritt. Bei der Standardinstallation werden die Minidumpdateien an den Standardspeicherort geschrieben:
Version von Analysis Services | Standort |
---|---|
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 |
Hinweis
InstanceName ist ein Platzhalter für den entsprechenden Wert für SQL Server Analysis Services Version.
Der SQL Server Analysis Services instance Protokollspeicherort kann nach der Installation geändert werden, sodass Sie den Protokollspeicherort überprüfen können, indem Sie die msmdsrv.ini-Datei für die installierte SQL Server Analysis Services überprüfen.
Um den entsprechenden Wert für das System zu bestimmen, bestimmen Sie den Wert des ImagePath-Registrierungsschlüssels. Er sollte den Pfad zum Konfigurationspfad enthalten, der die msmdsrv.ini enthält.
Version von Analysis Services | Registrierungsunterschlüssel |
---|---|
Standardinstanz | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServerOLAPService\ImagePath |
Benannte instance | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSOLAP$InstanceName\ImagePath |
Die Minidumpdateien enthalten die folgenden Informationen:
Alle Threadstapel
Speicher zweiter Ordnung, auf den von Zeigern im Stapel verwiesen wird
Informationen zum Prozessumgebungsblock (PEB)
Informationen zum Thread environment block (TEB)
Informationen zu kürzlich entladenen Modulen
Threadstatusinformationen
Der Abschnitt Ausnahme in der Msmdsrv.ini-Datei steuert die Generierung der Speicherabbilddatei. Die Datei befindet sich standardmäßig im %ProgramFiles%\Microsoft SQL Server\MSASxx.InstanceName\OLAP\Config
Ordner. MsASxx ist ein Platzhalter für die entsprechende Version für SQL Server Analysis Service. Wenn Sie die Datei im Editor öffnen, sehen Sie einen Abschnitt im Tag Exception XML, der dem folgenden ähnelt:
<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>
Sie können das Verhalten beim Generieren der Speicherabbilddatei steuern, indem Sie die Einstellungen in diesem Abschnitt ändern. Sie können diese Einstellungen auch in SQL Server Management Studio ändern. Weitere Informationen zu diesen Einstellungen finden Sie auf der SQL Server Management Studio Downloadwebsite: Protokolleigenschaften.
Deaktivieren der automatischen Speicherabbilddatei für Analysis Services
Der Wert der Einstellung CreateAndSendCrashReports bestimmt, ob eine Speicherabbilddatei generiert wird. Diese Einstellung kann einen der Werte aufweisen, die in der folgenden Tabelle aufgeführt sind.
Wert | Beschreibung |
---|---|
0 | Dieser Wert gibt an, dass Analysis Services keine Speicherabbilddatei generiert. Darüber hinaus wird der Wert der anderen Einstellungen im Abschnitt Ausnahme ignoriert. |
1 | Dieser Standardwert aktiviert die Speicherabbilddatei. SQL Server Analysis Services sendet jedoch keinen Fehlerbericht an Microsoft. |
2 | Dieser Wert gibt an, dass SQL Server Analysis Services eine Speicherabbilddatei generiert und einen Fehlerbericht an Microsoft sendet. |
Wenn die Einstellung CreateAndSendCrashReports auf 1 oder 2 festgelegt ist, können die anderen Einstellungen im Abschnitt Ausnahme den Typ der Speicherabbilddatei und die Informationen steuern, die in die Speicherabbilddatei aufgenommen werden sollen.
Konfigurieren von SQL Server Analysis Services zum automatischen Generieren einer vollständigen Speicherabbilddatei
Um SQL Server Analysis Services so zu konfigurieren, dass bei auftreten einer Ausnahme automatisch eine vollständige Speicherabbilddatei generiert wird, können Sie die Einstellung SQLDumperFlagsOn auf 0x34 festlegen. Wenn Sie SQL Server Analysis Services konfigurieren möchten, um eine vollständige Speicherabbilddatei zu generieren, die die Handleinformationen enthält, können Sie die Einstellung SQLDumperFlagsOn auf 0x34 und die MiniDumpFlagsOn-Einstellung auf 0x4 festlegen. Der Abschnitt Ausnahme in der Msmdsrv.ini-Datei kann z. B. wie folgt aussehen:
<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>
Manuelles Generieren einer vollständigen Speicherabbilddatei mit Handleinformationen
Um Probleme zu beheben, z. B. einen Server, der nicht mehr reagiert (hängt), sollten Sie eine vollständige Speicherabbilddatei generieren, die manuell Handleinformationen enthält. Dazu können Sie das Hilfsprogramm Sqldumper.exe an der Eingabeaufforderung zusammen mit den folgenden Argumenten ausführen:
Sqldumper.exe PID 0 0x34:0x4 0 PathToDumpFile
Hinweis
PID stellt die Prozess-ID des SQL Server Analysis Services Prozesses dar. PathToDumpFile stellt den Ordner dar, in den die Speicherabbilddatei geschrieben wird.
Sie müssen diesen Befehl aus dem Freigegebenen Verzeichnis ausführen, in dem Sie die instance installiert haben, oder Sie müssen den vollständigen Pfad der Sqldumper.exe Datei im Befehl angeben.
Version von Analysis Services | Standort |
---|---|
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 |
Das Standardverzeichnis zum Ausführen sqldumper.exe für SQL Server Analysis Services 2019 ist C:\Program Files\Microsoft SQL Server\1590\Shared
beispielsweise .
Weitere Informationen:
Sie können die SQLDumperFlagsOn-Einstellung verwenden, um die verschiedenen SQLDumper-Flags anzugeben. In der folgenden Tabelle sind die Bitmaskenwerte aufgeführt, die Sie als Wert für den flag-Parameter verwenden können.
Mnemonischer Name | Hexadezimalwert | Beschreibung |
---|---|---|
SQLDUMPER_DBGBREAK | 0x0001 | Dieses Flag bewirkt, dass das hilfsprogramm Sqldumper.exe den API-Aufruf DebugBreak am Anfang des Programms aus führt, wenn die Parameter analysiert werden. In der Regel verwenden Microsoft Product Support Services-Experten dieses Flag nicht, da das Flag nur zum Debuggen Sqldumper.exe Hilfsprogrammprobleme verwendet wird. Hinweis Dieses Flag unterbricht den Sqldumper.exe Prozess. Dieses Flag unterbricht nicht den Prozess, den das hilfsprogramm Sqldumper.exe debuggen. |
SQLDUMPER_NOMINIDUMP | 0x0002 | Wenn Sie dieses Flag verwenden, generiert das Hilfsprogramm Sqldumper.exe keine Speicherabbilddatei. Dieses Flag wird verwendet, um das Hilfsprogramm Sqldumper.exe zu testen. |
SQLDUMPER_NOWATSON | 0x0004 | In der Regel wird dieses Flag verwendet, wenn Sie Dumpdateien manuell generieren. Dieses Flag überschreibt das Standardverhalten der Fehlerberichterstattung. Standardmäßig wird die Speicherabbilddatei an die Fehlerberichtswebsite übermittelt, die in der Registrierung konfiguriert ist. |
SQLDUMPER_REFERENCED_MEMORY | 0x0008 | Dieses Flag bewirkt, dass das Hilfsprogramm Sqldumper.exe das MiniDumpWithIndirectlyReferencedMemory-Flag für den MiniDumpType-Parameter festgelegt, wenn die MiniDumpWritedump-Funktion aufgerufen wird. Speicher für Zeiger (nur eine Ebene), die stapelbasiert sind (Parameter oder lokale Variablen), wird in der Speicherabbilddatei gespeichert. Tests zeigen, dass bestimmte lokale Parameter, die auf TLS-Daten (Thread Local Storage) basieren, wie z. B. Probabilistic Signature Scheme (PSS) und EC-Strukturen, nicht funktionieren, selbst wenn Sie dieses Flag festlegen. |
SQLDUMPER_ALL_MEMORY | 0x0010 | Dieses Flag bewirkt, dass das Hilfsprogramm Sqldumper.exe das FlagMiniDumpWithFullMemory für MiniDumpType festschreibt, wenn das Hilfsprogramm die MiniDumpWriteDump-Funktion aufruft. Dieses Verhalten entspricht der Verwendung des Befehls .dump /mf unter dem Debugger. Sie müssen jedoch auch das flag SQLDUMPER_DUMP_ALL_THREADS auf On festgelegt haben, um sicherzustellen, dass alle Threadstapel enthalten sind. |
SQLDUMPER_DUMP_ALL_THREADS | 0x0020 | Dieses Flag ist nicht erforderlich, wenn Sie das Hilfsprogramm Sqldumper.exe manuell ausführen und den ThreadId-Parameterwert 0 angeben. Der ThreadId-Parameterwert 0 gibt an, dass alle Threads gesichert werden sollen. Wenn Sie einen bestimmten ThreadId-Parameterwert ungleich Null angeben, aber auch dieses Flag verwenden, werden alle Threads in die Dumpdatei geschrieben. Dieses Flag ist vorhanden, da das typische Verhalten im Sqlservr.exe Prozess darin besteht, den aktuellen ThreadId-Eigenschaftswert des Threads zu übergeben, der den Sqlservr.exe Prozess erzeugt. Wenn dieses Verhalten auftritt, wird das Flag als Option benötigt, um alle Threads abzubilden. |
SQLDUMPER_MATCH_FILE_NAME | 0x0040 | Sie können dieses Flag verwenden, um zu erzwingen, dass das Hilfsprogramm Sqldumper.exe einen Dumpdateinamen generiert, der einer bestimmten Namenskonvention ähnelt. Diese spezifische Namenskonvention kann auf einem vorhandenen Dateinamen basieren. Da Sie eine spezielle Speicherstruktur einrichten müssen, die den vorhandenen Dateinamen in Ihrem eigenen Programm enthält, und diesen Zeiger dann als SqlInfoPtr-Parameter an das hilfsprogramm Sqldumper.exe übergeben müssen, ist dieses Flag nicht nützlich, wenn Sie das Hilfsprogramm Sqldumper.exe manuell ausführen. |
SQLDUMPER_SKIP_DW_REG_READ | 0x0080 | Dieses Flag bewirkt, dass das hilfsprogramm Sqldumper.exe die Registrierung nicht als Pfad für die Ausführung des Dw15.exe Programms verwendet. Das Dw15.exe-Programm wird verwendet, um die Speicherabbilddateien auf die Fehlerberichterstattungswebsite hochzuladen. |
SQLDUMPER_VERBOSE | 0x0100 | Dieses Flag kann nützlich sein, wenn Sie sich nicht sicher sind, welche Parameter das Sqldumper.exe Hilfsprogramm als Eingabe verwendet. Wenn Sie dieses Flag verwenden, zeigt das hilfsprogramm Sqldumper.exe die Parameterwerte und die Anzahl der Parameterwerte an, die über die Befehlszeile angegeben wurden. |
SQLDUMPER_WAIT_AT_EXIT | 0x0200 | Sie können dieses Flag verwenden, um einen Debugger an das Hilfsprogramm Sqldumper.exe anzufügen. Sie können diesen Debugger verwenden, um Probleme mit dem Hilfsprogramm Sqldumper.exe zu beheben. Diese Probleme können insbesondere auftreten, wenn das hilfsprogramm Sqldumper.exe von Sqlservr.exe oder einem anderen Programm erzeugt wird. Wenn Sie dieses Flag festlegen, ruft das hilfsprogramm Sqldumper.exe die SleepEx-Funktion 15 Sekunden lang auf, bevor das Sqldumper.exe Programm vorhanden ist und nachdem alle anderen Vorgänge abgeschlossen sind. |
SQLDUMPER_FILTERED | 0x0800 | Sie können dieses Flag verwenden, um eine gefilterte Speicherabbilddatei zu generieren. SQL Server Analysis Services unterstützt dieses Flag noch nicht. |
Sie können die MiniDumpFlagsOn-Einstellung verwenden, um Minidumpflamp-Flags bereitzustellen. In der folgenden Tabelle sind die verfügbaren Minidumpflags aufgeführt:
Option | Wert | Beschreibung |
---|---|---|
MiniDumpNormal | 0x00000000 | Erstellen Sie eine typische Minidumpdatei, die das Überschreiben verwendet. |
MiniDumpWithDataSegs | 0x00000001 | Fügen Sie ein Datensegment für alle geladenen Module ein. Das Flag, das die geladenen Module globale Variablen abrufen. |
MiniDumpWithFullMemory | 0x00000002 | Erstellen Sie eine vollständige Benutzerabbilddatei. Eine gefilterte Speicherabbilddatei wird deaktiviert, wenn das Flag festgelegt ist. |
MiniDumpWithHandleData | 0x00000004 | Schließen Sie Handleinformationen ein. |
MiniDumpFilterMemory | 0x00000010 | Stapel- und Sicherungsspeicherspeicher sollten auf Zeigerverweise auf Module in der Modulliste überprüft werden. Der Benutzer sollte dieses Flag nicht für SQL Server Analysis Services verwenden. |
MiniDumpWithUnloadedModules | 0x00000020 | Dieses Flag enthält Informationen zu kürzlich entladenen Modulen. Dieses Flag wird nur von Microsoft Windows XP und Microsoft Windows Server 2003 unterstützt. Das Betriebssystem verwaltet keine Informationen für entladene Module bis Windows Server 2003 Service Pack 1 (SP1) und Windows XP Service Pack 2 (SP2). |
MiniDumpWithIndirectlyReferencedMemory | 0x00000040 | Schließen Sie Seiten mit Daten ein, auf die von lokalen Instanzen oder anderen Stapelspeichern verwiesen wird. |
MiniDumpFilterModulePaths | 0x00000080 | Wenn der Modulpfad aus den Modulinformationen entfernt wird, verwenden Sie dieses Flag nicht. |
MiniDumpWithProcessThreadData | 0x00000100 | Dieses Flag enthält Informationen über den Prozessumgebungsblock (Process Environment Block, PEB) und den Threadumgebungsblock (Thread Environment Block, TEB). |
MiniDumpWithPrivateReadWriteMemory | 0x00000200 | Überprüfen Sie den virtuellen Adressraum auf andere Speichertypen, die eingeschlossen werden sollen. |
MiniDumpWithoutOptionalData | 0x00000400 | Reduzieren Sie die Daten, die gespeichert werden, indem Sie nicht erforderliche Speicherbereiche entfernen. Führen Sie dies aus, um die kriterien zu erfüllen, die für die Speicherabbilddatei angegeben sind. Die Verwendung dieses Flags kann verhindern, dass Speicher, der Daten enthalten kann, die für den Benutzer privat sind, zurückgibt. Dies ist jedoch keine Garantie dafür, dass keine privaten Informationen vorhanden sind. Verwenden Sie dieses Flag nicht. |
MiniDumpWithFullMemoryInfo | 0x00000800 | Fügen Sie beschreibende Informationen zum Aufzählungsspeicherbereich ein. |
MiniDumpWithThreadInfo | 0x00001000 | Fügen Sie Threadzustandsinformationen ein. |
MiniDumpWithCodeSegs | 0x00002000 | Fügen Sie Code und codebezogene Abschnitte für alle geladenen Module ein. |
References
Verwenden des Hilfsprogramms Sqldumper.exe zum Generieren einer Speicherabbilddatei in SQL Server
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für