Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie SQL Server Analysis Services so konfiguriert wird, dass Speicherabbilddateien automatisch generiert werden.
Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 919711
Einführung
In diesem Artikel wird beschrieben, wie Sie Microsoft SQL Server Analysis Services (SSAS) 2012 oder höher konfigurieren, um bei Auftreten von Ausnahmen automatisch unterschiedliche Speicherabbilddateien zu generieren. Im Artikel wird auch beschrieben, 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. Für die Standardinstallation werden die Minidumpdateien an den Standardspeicherort geschrieben:
Version von Analysis Services | Location |
---|---|
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 |
Notiz
"InstanceName" ist ein Platzhalter für den entsprechenden Wert für die SQL Server Analysis Services-Version.
Der Speicherort des SQL Server Analysis Services-Instanzprotokolls kann nach der Installation geändert werden, sodass Sie den Protokollspeicherort überprüfen können, indem Sie die msmdsrv.ini Datei für die installierten SQL Server Analysis Services überprüfen.
Um den entsprechenden Wert für das System zu ermitteln, bestimmen Sie den Wert des ImagePath-Registrierungsschlüssels, es sollte den Pfad zum Config-Pfad enthalten, der die msmdsrv.ini enthält.
Version von Analysis Services | Registrierungsunterschlüssel |
---|---|
Standardinstanz | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServerOLAPService\ImagePath |
Benannte Instanz | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSOLAP$InstanceName\ImagePath |
Die Minidumpdateien enthalten die folgenden Informationen:
Alle Threadstapel
Speicher der zweiten Reihenfolge, auf den zeiger im Stapel verwiesen wird
Informationen zum Prozessumgebungsblock (Process Environment Block, PEB)
Informationen zum Threadumgebungsblock (Thread Environment Block, TEB)
Informationen zu kürzlich entladenen Modulen
Threadstatusinformationen
Der Abschnitt "Ausnahme" in der Msmdsrv.ini Datei steuert die Speicherabbilddateigenerierung. 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, bemerken Sie einen Abschnitt im Exception XML-Tag, der wie folgt aussieht:
<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 des Generierens 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 Downloadwebsite von SQL Server Management Studio: 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 Abbilddatei
Um SQL Server Analysis Services so zu konfigurieren, dass eine vollständige Speicherabbilddatei automatisch generiert wird, wenn eine Ausnahme auftritt, können Sie die SQLDumperFlagsOn-Einstellung auf 0x34 festlegen. Wenn Sie SQL Server Analysis Services so konfigurieren möchten, dass eine vollständige Speicherabbilddatei erstellt wird, die die Handleinformationen enthält, können Sie die SQLDumperFlagsOn-Einstellung auf 0x34 und die MiniDumpFlagsOn-Einstellung auf 0x4 festlegen. Der Abschnitt "Ausnahme" in der Datei Msmdsrv.ini 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>
Generieren einer vollständigen Speicherabbilddatei, die Informationen manuell verarbeitet
Um Probleme wie z. B. einen Server zu beheben, der nicht mehr reagiert (hängt), möchten Sie möglicherweise eine vollständige Speicherabbilddatei generieren, die Informationen manuell verarbeitet. 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
Notiz
PID stellt die Prozess-ID des SQL Server Analysis Services-Prozesses dar. PathToDumpFile stellt den Ordner dar, in den die Dumpdatei geschrieben wird.
Sie müssen diesen Befehl aus dem freigegebenen Verzeichnis ausführen, in dem Sie die Instanz installiert haben, oder Sie müssen den vollständigen Pfad der datei Sqldumper.exe im Befehl angeben.
Version von Analysis Services | Location |
---|---|
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, das sqldumper.exe für SQL Server Analysis Services 2019 ausgeführt werden soll, lautet C:\Program Files\Microsoft SQL Server\1590\Shared
z. B. .
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.
Mnemonic-Name | Hexadezimalwert | Beschreibung |
---|---|---|
SQLDUMPER_DBGBREAK | 0x0001 | Dieses Kennzeichen bewirkt, dass das hilfsprogramm Sqldumper.exe den DebugBreak-API-Aufruf am Anfang des Programms ausführt, wenn die Parameter analysiert werden. In der Regel verwenden Microsoft Product Support Services-Experten dieses Kennzeichen nicht, da das Kennzeichen nur zum Debuggen von Sqldumper.exe Hilfsprogrammproblemen verwendet wird. Beachten Sie , dass dieses Kennzeichen in den Sqldumper.exe Prozess umbricht. Dieses Flag bricht nicht in den Prozess auf, den das Sqldumper.exe Hilfsprogramm debuggen soll. |
SQLDUMPER_NOMINIDUMP | 0x0002 | Wenn Sie dieses Flag verwenden, generiert das hilfsprogramm Sqldumper.exe keine Dumpdatei. Dieses Flag wird verwendet, um das Sqldumper.exe Hilfsprogramm zu testen. |
SQLDUMPER_NOWATSON | 0x0004 | In der Regel wird dieses Flag verwendet, wenn Sie Dumpdateien manuell generieren. Dieses Kennzeichen setzt das Standardverhalten der Fehlerberichterstattung außer Kraft. Standardmäßig wird die Speicherabbilddatei an die Fehlerberichtswebsite übermittelt, die in der Registrierung konfiguriert ist. |
SQLDUMPER_REFERENCED_MEMORY | 0x0008 | Dieses Flag bewirkt, dass das Sqldumper.exe Hilfsprogramm "MiniDumpWithIndirectlyReferencedMemory" für den MiniDumpType-Parameter festgelegt wird, wenn die MiniDumpWritedump-Funktion aufgerufen wird. Speicher für Zeiger (nur eine Ebene), die stapelbasiert (Parameter oder lokale Variablen) sind, werden in der Speicherabbilddatei gespeichert. Tests zeigen, dass bestimmte lokale Parameter, die auf TLS-Daten (Thread Local Storage) basieren, wie z. B. probabilistisches Signaturschema (PSS) und EC-Strukturen, nicht funktionieren, auch wenn Sie dieses Flag festlegen. |
SQLDUMPER_ALL_MEMORY | 0x0010 | Dieses Flag bewirkt, dass das hilfsprogramm Sqldumper.exe das Flag "MiniDumpWithFullMemory" für MiniDumpType festgelegt, 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 SQLDUMPER_DUMP_ALL_THREADS Flag aktiviert 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 einen ThreadId-Parameterwert von 0 angeben. Ein ThreadId-Parameterwert von 0 gibt an, dass alle Threads abgebildet werden sollen. Wenn Sie einen bestimmten, nicht null ThreadId-Parameterwert 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 spawnsiert. Wenn dieses Verhalten auftritt, wird das Flag als Option benötigt, um alle Threads abzubilden. |
SQLDUMPER_MATCH_FILE_NAME | 0x0040 | Mit diesem Flag können Sie versuchen, das hilfsprogramm Sqldumper.exe zu erzwingen, um einen Dumpdateinamen zu generieren, der einer bestimmten Benennungskonvention ähnelt. Diese spezifische Benennungskonvention 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 dann diesen Zeiger als SqlInfoPtr-Parameter an das hilfsprogramm Sqldumper.exe übergeben, ist dieses Flag nicht hilfreich, wenn Sie das hilfsprogramm Sqldumper.exe manuell ausführen. |
SQLDUMPER_SKIP_DW_REG_READ | 0x0080 | Dieses Kennzeichen bewirkt, dass das Sqldumper.exe Hilfsprogramm 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 Kennzeichen 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 Sqldumper.exe Hilfsprogramm die Parameterwerte und die Anzahl der Parameterwerte an, die über die Befehlszeile angegeben wurden. |
SQLDUMPER_WAIT_AT_EXIT | 0x0200 | Sie können dieses Kennzeichen 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 Sqldumper.exe Hilfsprogramm von Sqlservr.exe oder einem anderen Programm spawniert wird. Wenn Sie dieses Kennzeichen festlegen, ruft das hilfsprogramm Sqldumper.exe die SleepEx-Funktion 15 Sekunden lang auf, bevor das Sqldumper.exe Programm vorhanden ist und 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 Minidump-Flags bereitzustellen. In der folgenden Tabelle sind die verfügbaren Minidump-Flags aufgeführt:
Option | Wert | Beschreibung |
---|---|---|
MiniDumpNormal | 0x00000000 | Erstellen Sie eine typische Miniabbilddatei, die Überschreibung verwendet. |
MiniDumpWithDataSegs | 0x00000001 | Fügen Sie ein Datensegment für alle geladenen Module ein. Die Kennzeichnung der geladenen Module ruft globale Variablen ab. |
MiniDumpWithFullMemory | 0x00000002 | Erstellen Sie eine vollständige Benutzerabbilddatei. Eine gefilterte Speicherabbilddatei ist deaktiviert, wenn das Flag festgelegt ist. |
MiniDumpWithHandleData | 0x00000004 | Einschließen von Handleinformationen. |
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 Kennzeichen enthält Informationen zu zuletzt entladenen Modulen. Nur Microsoft Windows XP und Microsoft Windows Server 2003 unterstützen dieses Kennzeichen. 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 | Fügen Sie Seiten mit Daten hinzu, auf die von Lokalen oder von einem anderen Stapelspeicher verwiesen wird. |
MiniDumpFilterModulePaths | 0x00000080 | Wenn der Modulpfad aus den Modulinformationen entfernt wird, verwenden Sie dieses Flag nicht. |
MiniDumpWithProcessThreadData | 0x00000100 | Dieses Flag enthält Informationen zum Prozessumgebungsblock (Process Environment Block, PEB) und zum Thread-Umgebungsblock (THREAD Environment Block, TEB). |
MiniDumpWithPrivateReadWriteMemory | 0x00000200 | Scannen Sie den virtuellen Adressraum, um andere Speichertypen einzubeziehen. |
MiniDumpWithoutOptionalData | 0x00000400 | Reduzieren Sie die Daten, die abgebildet werden, indem Sie speicherbereiche entfernen, die nicht erforderlich sind. Erfüllen Sie dies, um Kriterien zu erfüllen, die für die Speicherabbilddatei angegeben sind. Die Verwendung dieses Flags kann das Dumping des Speichers vermeiden, der daten enthalten kann, die für den Benutzer privat sind. Dies ist jedoch keine Garantie dafür, dass keine privaten Informationen vorhanden sind. Verwenden Sie dieses Flag nicht. |
MiniDumpWithFullMemoryInfo | 0x00000800 | Schließen Sie beschreibende Informationen zum aufgezählten Speicherbereich ein. |
MiniDumpWithThreadInfo | 0x00001000 | Schließen Sie Threadstatusinformationen ein. |
MiniDumpWithCodeSegs | 0x00002000 | Fügen Sie Code und codebezogene Abschnitte für alle geladenen Module hinzu. |
References
Verwenden des Hilfsprogramms Sqldumper.exe zum Erstellen einer Abbilddatei in SQL Server