SQLdiag (Hilfsprogramm)SQLdiag Utility

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions)

Das Hilfsprogramm SQLDiag listet allgemeine Diagnoseinformationen auf und kann als Konsolenanwendung oder Dienst ausgeführt werden.The SQLdiag utility is a general purpose diagnostics collection utility that can be run as a console application or as a service. Mithilfe von SQLDiag können Sie Protokolle und Datendateien von SQL ServerSQL Server und anderen Servertypen sammeln. Dies kann hilfreich sein, um Server für eine gewisse Zeit zu überwachen oder bestimmte Serverprobleme zu behandeln.You can use SQLdiag to collect logs and data files from SQL ServerSQL Server and other types of servers, and use it to monitor your servers over time or troubleshoot specific problems with your servers. SQLDiag dient dazu, das Sammeln von Diagnoseinformationen für MicrosoftMicrosoft Support Services zu beschleunigen und zu vereinfachen.SQLdiag is intended to expedite and simplify diagnostic information gathering for MicrosoftMicrosoft Customer Support Services.

Hinweis

Dieses Hilfsprogramm kann weiter geändert werden, und es besteht die Möglichkeit, dass Anwendungen oder Skripts, die auf den Befehlszeilenargumenten und dem entsprechenden Verhalten dieses Hilfsprogramms aufbauen, in zukünftigen Versionen nicht ordnungsgemäß ausgeführt werden.This utility may be changed, and applications or scripts that rely on its command line arguments or behavior may not work correctly in future releases.

MitSQLDiag können die folgenden Arten von Diagnoseinformationen gesammelt werden:SQLdiag can collect the following types of diagnostic information:

  • Windows-LeistungsprotokolleWindows performance logs

  • Windows-EreignisprotokolleWindows event logs

  • SQL Server ProfilerSQL Server Profiler Ablaufverfolgungentraces

  • SQL ServerSQL Server Blockierungsinformationenblocking information

  • SQL ServerSQL Server Konfigurationsinformationenconfiguration information

Sie können angeben, welche Informationen SQLDiag sammeln soll, indem Sie die Konfigurationsdatei „SQLDiag.xml“ bearbeiten. Dies wird im nächsten Abschnitt weiter beschrieben.You can specify what types of information you want SQLdiag to collect by editing the configuration file SQLDiag.xml, which is described in a following section.

SyntaxSyntax

  
sqldiag   
     { [/?] }  
     |  
     { [/I configuration_file]  
       [/O output_folder_path]  
       [/P support_folder_path]  
       [/N output_folder_management_option]  
       [/M machine1 [ machine2 machineN]| @machinelistfile]  
       [/C file_compression_type]  
       [/B [+]start_time]  
       [/E [+]stop_time]  
       [/A SQLdiag_application_name]  
       [/T { tcp [ ,port ] | np | lpc } ]  
       [/Q] [/G] [/R] [/U] [/L] [/X] }  
     |  
     { [START | STOP | STOP_ABORT] }  
     |  
     { [START | STOP | STOP_ABORT] /A SQLdiag_application_name }  

ArgumenteArguments

/?/?
Zeigt Informationen zur Nutzung an.Displays usage information.

/I configuration_file/I configuration_file
Legt die Konfigurationsdatei fest, die SQLDiag verwenden soll.Sets the configuration file for SQLdiag to use. Standardmäßig wird mit /I die Datei SQLDiag.Xml festgelegt.By default, /I is set to SQLDiag.Xml.

/O output_folder_path/O output_folder_path
Leitet die Ausgabe von SQLDiag in den angegebenen Ordner um.Redirects SQLdiag output to the specified folder. Wenn die Option /O nicht angegeben wird, wird die Ausgabe von SQLDiag in den Unterordner SQLDIAG unterhalb des Startordners SQLDiag geschrieben.If the /O option is not specified, SQLdiag output is written to a subfolder named SQLDIAG under the SQLdiag startup folder. Wenn der Ordner SQLDIAG nicht vorhanden ist, versucht SQLDiag , ihn zu erstellen.If the SQLDIAG folder does not exist, SQLdiag attempts to create it.

Hinweis

Der Speicherort des Ausgabeordners ist relativ zum Speicherort des Unterstützungsordners, der mit /Pangegeben werden kann.The output folder location is relative to the support folder location that can be specified with /P. Geben Sie den vollständigen Verzeichnispfad für /Oan, um einen gänzlich anderen Speicherort für den Ausgabeordner festzulegen.To set an entirely different location for the output folder, specify the full directory path for /O.

/P support_folder_path/P support_folder_path
Legt den Pfad für den Unterstützungsordner fest.Sets the support folder path. Standardmäßig wird für /P der Ordner festgelegt, in dem sich die ausführbaren Dateien von SQLDiag befinden.By default, /P is set to the folder where the SQLdiag executable resides. Der Unterstützungsordner enthält SQLDiag -Unterstützungsdateien, wie die XML-Konfigurationsdatei, Transact-SQL-Skripts und andere Dateien, die das Hilfsprogramm zum Auflisten von Diagnoseinformationen verwendet.The support folder contains SQLdiag support files, such as the XML configuration file, Transact-SQL scripts, and other files that the utility uses during diagnostics collection. Wenn Sie mithilfe dieser Option einen anderen Pfad für die Unterstützungsdateien angeben, kopiert SQLDiag automatisch die erforderlichen Unterstützungsdateien in den angegebenen Ordner, sofern sie noch nicht vorhanden sind.If you use this option to specify an alternate support files path, SQLdiag will automatically copy the support files it requires to the specified folder if they do not already exist.

Hinweis

Soll der aktuelle Ordner als Unterstützungspfad festgelegt werden, geben Sie %cd% folgendermaßen in der Befehlszeile an:To set your current folder as the support path, specify %cd% on the command line as follows:

SQLDIAG /P %cd%SQLDIAG /P %cd%

/N output_folder_management_option/N output_folder_management_option
Legt fest, ob SQLDiag den Ausgabeordner beim Starten überschreibt oder umbenennt.Sets whether SQLdiag overwrites or renames the output folder when it starts up. Verfügbare Optionen:Available options:

1 = Überschreibt den Ausgabeordner (Standardeinstellung)1 = Overwrites the output folder (default)

2 = Beim Starten von SQLDiag wird der Ausgabeordner in SQLDIAG_00001, SQLDIAG_00002 usw. umbenannt.2 = When SQLdiag starts up, it renames the output folder to SQLDIAG_00001, SQLDIAG_00002, and so on. Nachdem der aktuelle Ausgabeordner umbenannt wurde, schreibt SQLDiag die Ausgabe in den Standardausgabeordner SQLDIAG.After renaming the current output folder, SQLdiag writes output to the default output folder SQLDIAG.

Hinweis

SQLDiag fügt beim Starten die Ausgabe nicht an den aktuellen Ausgabeordner an.SQLdiag does not append output to the current output folder when it starts up. Das Programm kann nur den Standardausgabeordner überschreiben (Option 1) oder den Ordner umbenennen (Option 2) und dann die Ausgabe in den neuen Standardausgabeordner namens SQLDIAG schreiben.It can only overwrite the default output folder (option 1) or rename the folder (option 2), and then it writes output to the new default output folder named SQLDIAG.

/M machine1 [ machine2 machineN] | @machinelistfile/M machine1 [ machine2 machineN] | @machinelistfile
Überschreibt die in der Konfigurationsdatei angegebenen Computer.Overrides the machines specified in the configuration file. Standardmäßig ist die Konfigurationsdatei SQLDiag.Xml oder wird mit dem /I -Parameter festgelegt.By default the configuration file is SQLDiag.Xml, or is set with the /I parameter. Wenn Sie mehr als einen Computer angeben möchten, verwenden Sie Leerzeichen zum Trennen der Computernamen.When specifying more than one machine, separate each machine name with a space.

Durch Verwenden von @machinelistfile wird ein Computerlisten-Dateiname angegeben, der in der Konfigurationsdatei gespeichert werden muss.Using @machinelistfile specifies a machine list filename to be stored in the configuration file.

/C file_compression_type/C file_compression_type
Legt den Typ der Dateikompression fest, die für die Dateien im Ausgabeordner von SQLDiag verwendet wird.Sets the type of file compression used on the SQLdiag output folder files. Verfügbare Optionen:Available options:

0 = keine Komprimierung (Standardeinstellung)0 = none (default)

1 = NTFS-Komprimierung1 = uses NTFS compression

/B [ + ]start_time/B [+]start_time
Gibt das Datum und die Uhrzeit des Zeitpunkts, an dem die Sammlung von Diagnoseinformationen gestartet werden soll, im folgenden Format an:Specifies the date and time to start collecting diagnostic data in the following format:

YYYYMMDD_HH:MM:SSYYYYMMDD_HH:MM:SS

Die Uhrzeit wird in 24-Stunden-Notation angegeben.The time is specified using 24-hour notation. Beispiel: 2 Uhr nachmittagsFor example, 2:00 P.M. sollte für 14:00:00angegeben werden.should be specified as 14:00:00.

Verwenden Sie + ohne Datumsangabe (also nur HH:MM:SS), um eine Uhrzeit relativ zum aktuellen Datum und zur aktuellen Uhrzeit anzugeben.Use + without the date (HH:MM:SS only) to specify a time that is relative to the current date and time. Wenn Sie beispielsweise /B +02:00:00angeben, wartet SQLDiag 2 Stunden, bevor die Sammlung von Informationen gestartet wird.For example, if you specify /B +02:00:00, SQLdiag will wait 2 hours before it starts collecting information.

Fügen Sie kein Leerzeichen zwischen + und dem angegebenen Wert für start_timeein.Do not insert a space between + and the specified start_time.

Wenn Sie eine Startzeit angeben, die in der Vergangenheit liegt, erzwingt SQLDiag eine Änderung des Startdatums, sodass Startdatum und -zeit in der Zukunft liegen.If you specify a start time that is in the past, SQLdiag forcibly changes the start date so the start date and time are in the future. Wenn Sie beispielsweise /B 01:00:00 angeben und es schon 08:00:00 Uhr ist, ändert SQLDiag das Startdatum und legt den nächsten Tag als Startdatum fest.For example, if you specify /B 01:00:00 and the current time is 08:00:00, SQLdiag forcibly changes the start date so that the start date is the next day.

Beachten Sie, dass SQLDiag die lokale Zeit auf dem Computer verwendet, auf dem das Hilfsprogramm ausgeführt wird.Note that SQLdiag uses the local time on the computer where the utility is running.

/E [ + ]stop_time/E [+]stop_time
Gibt das Datum und die Uhrzeit des Zeitpunkts, an dem die Sammlung von Diagnoseinformationen beendet werden soll, im folgenden Format an:Specifies the date and time to stop collecting diagnostic data in the following format:

YYYYMMDD_HH:MM:SSYYYYMMDD_HH:MM:SS

Die Uhrzeit wird in 24-Stunden-Notation angegeben.The time is specified using 24-hour notation. Beispiel: 2 Uhr nachmittagsFor example, 2:00 P.M. sollte für 14:00:00angegeben werden.should be specified as 14:00:00.

Verwenden Sie + ohne Datumsangabe (also nur HH:MM:SS), um eine Uhrzeit relativ zum aktuellen Datum und zur aktuellen Uhrzeit anzugeben.Use + without the date (HH:MM:SS only) to specify a time that is relative to the current date and time. Wenn Sie beispielsweise /B +02:00:00 /E +03:00:00angeben, um eine Start- und eine Beendigungszeit festzulegen, wartet SQLDiag 2 Stunden, bevor die Sammlung von Informationen gestartet wird. Daraufhin werden 3 Stunden lang Informationen gesammelt, bevor der Vorgang endet und das Hilfsprogramm beendet wird.For example, if you specify a start time and end time by using /B +02:00:00 /E +03:00:00, SQLdiag waits 2 hours before it starts collecting information, then collects information for 3 hours before it stops and exits. Wenn /B nicht angegeben wird, beginnt SQLDiag sofort mit dem Sammeln von Diagnoseinformationen und beendet den Vorgang an dem Datum und der Uhrzeit, das bzw. die durch /Eangegeben wurde.If /B is not specified, SQLdiag starts collecting diagnostics immediately and ends at the date and time specified by /E.

Fügen Sie kein Leerzeichen zwischen + und dem angegebenen Wert für start_time oder end_timeein.Do not insert a space between + and the specified start_time or end_time.

Beachten Sie, dass SQLDiag die lokale Zeit auf dem Computer verwendet, auf dem das Hilfsprogramm ausgeführt wird.Note that SQLdiag uses the local time on the computer where the utility is running.

/A SQLdiag_application_name/A SQLdiag_application_name
Ermöglicht das Ausführen mehrerer Instanzen des Hilfsprogramms SQLDiag für dieselbe Instanz von SQL ServerSQL Server .Enables running multiple instances of the SQLdiag utility against the same SQL ServerSQL Server instance.

Jeder SQLDiag_application_name identifiziert eine andere Instanz von SQLDiag.Each SQLdiag_application_name identifies a different instance of SQLdiag. Zwischen einer Instanz von SQLDiag_application_name und einem Instanznamen von SQL ServerSQL Server besteht keine Beziehung.No relationship exists between a SQLdiag_application_name instance and a SQL ServerSQL Server instance name.

SQLDiag_application_name kann zum Starten oder Beenden einer bestimmten Instanz des SQLDiag -Diensts verwendet werden.SQLdiag_application_name can be used to start or stop a specific instance of the SQLdiag service.

Beispiel:For example:

SQLDIAG START /A SQLdiag_application_nameSQLDIAG START /A SQLdiag_application_name

Das Argument kann zusammen mit der Option /R auch zum Registrieren einer bestimmten Instanz von SQLDiag als Dienst verwendet werden.It can also be used with the /R option to register a specific instance of SQLdiag as a service. Beispiel:For example:

SQLDIAG /R /A SQLdiag_application_nameSQLDIAG /R /A SQLdiag_application_name

Hinweis

SQLDiag setzt vor den für SQLDiag_application_nameangegebenen Instanznamen automatisch das Präfix DIAG$.SQLdiag automatically prefixes DIAG$ to the instance name specified for SQLdiag_application_name. Hierdurch kann beim Registrieren von SQLDiag als Dienst ein aussagefähiger Dienstname bereitgestellt werden.This provides a sensible service name if you register SQLdiag as a service.

/T { tcp [ ,port ] | np | lpc }/T { tcp [ ,port ] | np | lpc }
Stellt eine Verbindung zu einer Instanz von SQL ServerSQL Server unter Verwendung des angegebenen Protokolls her.Connects to an instance of SQL ServerSQL Server using the specified protocol.

tcp [,port]tcp [,port]
Transmission Control Protocol/Internet Protocol (TCP/IP).Transmission Control Protocol/Internet Protocol (TCP/IP). Sie können optional eine Portnummer für die Verbindung angeben.You can optionally specify a port number for the connection.

npnp
Named Pipes.Named pipes. Standardmäßig überwacht die Standardinstanz von SQL ServerSQL Server die Named Pipe \\.\pipe\sql\query und \\.\pipe\MSSQL$<instancename>\sql\query auf eine benannte Instanz.By default, the default instance of SQL ServerSQL Server listens on named pipe \\.\pipe\sql\query and \\.\pipe\MSSQL$<instancename>\sql\query for a named instance. Sie können keine Verbindung mit einer Instanz von SQL ServerSQL Server unter Verwendung eines alternativen Pipenamens herstellen.You cannot connect to an instance of SQL ServerSQL Server by using an alternate pipe name.

lpclpc
Lokaler Prozeduraufruf.Local procedure call. Dieses Shared Memory-Protokoll ist verfügbar, wenn der Client eine Verbindung mit einer Instanz von SQL ServerSQL Server auf demselben Computer herstellt.This shared memory protocol is available if the client is connecting to an instance of SQL ServerSQL Server on the same computer.

/Q/Q
Führt SQLDiag im stillen Modus aus.Runs SQLdiag in quiet mode. /Q unterdrückt alle Aufforderungen, z.B. Aufforderungen zur Angabe eines Kennworts./Q suppresses all prompts, such as password prompts.

/G/G
Führt SQLDiag im generischen Modus aus.Runs SQLdiag in generic mode. Wenn /G angegeben wird, wird beim Starten von SQLDiag weder eine SQL ServerSQL Server -Konnektivitätsprüfung erzwungen, noch wird überprüft, ob der Benutzer Mitglied der festen Serverrolle sysadmin ist.When /G is specified, on startup SQLdiag does not enforce SQL ServerSQL Server connectivity checks or verify that the user is a member of the sysadmin fixed server role. Stattdessen orientiert sich SQLDiag an Windows, um zu bestimmen, ob ein Benutzer die erforderlichen Rechte zum Sammeln der angeforderten Diagnoseinformationen besitzt.Instead, SQLdiag defers to Windows to determine whether a user has the appropriate rights to gather each requested diagnostic.

Wenn /G nicht angegeben wird, führt SQLDiag eine Überprüfung durch, um zu bestimmen, ob der Benutzer ein Mitglied der Windows-Gruppe Administratoren ist. Gehört der Benutzer nicht der Gruppe SQL ServerSQL Server Administratoren an, werden keine -Diagnoseinformationen gesammelt.If /G is not specified, SQLdiag checks to determine whether the user is a member of the Windows Administrators group, and will not collect SQL ServerSQL Server diagnostics if the user is not an Administrators group member.

/R/R
Registriert SQLDiag als Dienst.Registers SQLdiag as a service. Alle Befehlszeilenargumente, die angegeben werden, wenn Sie SQLDiag als Dienst registrieren, werden für die künftige Ausführung des Diensts beibehalten.Any command line arguments that are specified when you register SQLdiag as a service are preserved for future runs of the service.

Wenn SQLDiag als Dienst registriert wird, lautet der Standarddienstname SQLDIAG.When SQLdiag is registered as a service, the default service name is SQLDIAG. Sie können den Dienstnamen mithilfe des /A -Arguments ändern.You can change the service name by using the /A argument.

Starten Sie den Dienst mit dem Befehlszeilenargument START :Use the START command line argument to start the service:

SQLDIAG STARTSQLDIAG START

Sie können auch den Befehl net start verwenden, um den Dienst zu starten.You can also use the net start command to start the service:

net start SQLDIAGnet start SQLDIAG

/U/U
Hebt die Registrierung von SQLDiag als Dienst auf.Unregisters SQLdiag as a service.

Verwenden Sie das /A -Argument auch zum Aufheben der Registrierung einer benannten Instanz von SQLDiag .Use the /A argument also if unregistering a named SQLdiag instance.

/L/L
Führt SQLDiag im fortlaufenden Modus aus, wenn mit den Argumenten /B oder /E auch eine Startzeit bzw. Beendigungszeit angegeben wird.Runs SQLdiag in continuous mode when a start time or end time is also specified with the /B or /E arguments, respectively. SQLDiag wird automatisch neu gestartet, nachdem die Sammlung von Diagnoseinformationen aufgrund eines geplanten Herunterfahrens beendet wurde.SQLdiag automatically restarts after diagnostics collection stops due to a scheduled shutdown. Dies ist beispielsweise beim Verwenden des Arguments /E oder /X der Fall.For example, by using the /E or the /X arguments.

Hinweis

SQLDiag ignoriert das /L -Argument, wenn mit den Befehlszeilenargumenten /B und /E keine Startzeit bzw. Beendigungszeit angegeben wird.SQLdiag ignores the /L argument if a start time or end time is not specified by using the /B and /E command line arguments.

Das Verwenden von /L schließt den Dienstmodus nicht automatisch ein.Using /L does not imply the service mode. Wenn Sie /L beim Ausführen von SQLDiag als Dienst verwenden möchten, müssen Sie die Option in der Befehlszeile angeben, wenn Sie den Dienst registrieren.To use /L when running SQLdiag as a service, specify it on the command line when you register the service.

/X/X
Führt SQLDiag im Momentaufnahmemodus aus.Runs SQLdiag in snapshot mode. SQLDiag erstellt eine Momentaufnahme aller konfigurierten Diagnosesammlungen und wird dann automatisch heruntergefahren.SQLdiag takes a snapshot of all configured diagnostics and then shuts down automatically.

START | STOP | STOP_ABORTSTART | STOP | STOP_ABORT
Startet oder beendet den SQLDiag -Dienst.Starts or stops the SQLdiag service. STOP_ABORT zwingt den Dienst, so schnell wie möglich herunterzufahren, ohne die aktuell durchgeführte Sammlung von Diagnoseinformationen abzuschließen.STOP_ABORT forces the service to shut down as quickly as possible without finishing collection of diagnostics it is currently collecting.

Wenn diese Dienstkontrollargumente verwendet werden, müssen sie als erstes Argument in der Befehlszeile angegeben werden.When these service control arguments are used, they must be the first argument used on the command line. Beispiel:For example:

SQLDIAG STARTSQLDIAG START

Nur das /A -Argument, das eine benannte Instanz von SQLDiagangibt, kann zusammen mit START, STOPoder STOP_ABORT verwendet werden, um eine bestimmte Instanz des SQLDiag -Diensts zu steuern.Only the /A argument, which specifies a named instance of SQLdiag, can be used with START, STOP, or STOP_ABORT to control a specific instance of the SQLdiag service. Beispiel:For example:

SQLDIAG START /A SQLdiag_application_nameSQLDIAG START /A SQLdiag_application_name

SicherheitsanforderungenSecurity Requirements

Sofern SQLDiag nicht im generischen Modus (durch Angeben des Befehlszeilenarguments /G ) ausgeführt wird, muss der Benutzer, der SQLDiag ausführt, Mitglied der Windows-Gruppe Administratoren und der festen SQL ServerSQL Server-Serverrolle sysadmin sein.Unless SQLdiag is run in generic mode (by specifying the /G command line argument), the user who runs SQLdiag must be a member of the Windows Administrators group and a member of the SQL ServerSQL Server sysadmin fixed server role. Standardmäßig verwendet SQLDiag die Windows-Authentifizierung für die Verbindung mit SQL ServerSQL Server . Die SQL ServerSQL Server -Authentifizierung wird jedoch ebenfalls unterstützt.By default, SQLdiag connects to SQL ServerSQL Server by using Windows Authentication, but it also supports SQL ServerSQL Server Authentication.

Überlegungen zur LeistungPerformance Considerations

Inwiefern sich die Ausführung von SQLDiag auf die Leistung auswirkt, hängt von der Art der Diagnosedaten ab, deren Sammlung konfiguriert wurde.The performance effects of running SQLdiag depend on the type of diagnostic data you have configured it to collect. Wenn Sie SQLDiag z.B. so konfiguriert haben, dass SQL Server ProfilerSQL Server Profiler -Ablaufverfolgungsdaten gesammelt werden, wirkt sich dies umso stärker auf die Serverleistung aus, je mehr Ereignisklassen Sie für die Ablaufverfolgung ausgewählt haben.For example, if you have configured SQLdiag to collect SQL Server ProfilerSQL Server Profiler tracing information, the more event classes you choose to trace, the more your server performance is affected.

Die Leistungseinbußen, die sich durch das Ausführen von SQLDiag ergeben, entsprechen ungefähr der Summe der Kosten, die sich durch die getrennte Sammlung der konfigurierten Diagnosedaten ergeben.The performance impact of running SQLdiag is approximately equivalent to the sum of the costs of collecting the configured diagnostics separately. So entstehen z.B. durch die Sammlung von Ablaufverfolgungsdaten mithilfe von SQLDiag dieselben Leistungskosten wie durch die Sammlung mit SQL Server ProfilerSQL Server Profiler.For example, collecting a trace with SQLdiag incurs the same performance cost as collecting it with SQL Server ProfilerSQL Server Profiler. Die Leistungseinbußen bei Verwendung von SQLDiag sind unerheblich.The performance impact of using SQLdiag is negligible.

Erforderlicher SpeicherplatzRequired Disk Space

Da SQLDiag verschiedene Arten von Diagnoseinformationen sammeln kann, variiert auch der freie Speicherplatz, der für das Ausführen von SQLDiag erforderlich ist.Because SQLdiag can collect different types of diagnostic information, the free disk space that is required to run SQLdiag varies. Die Menge der gesammelten Diagnoseinformationen hängt von der Eigenart und dem Umfang der Arbeitsauslastung ab, die der Server verarbeitet, und kann von einigen Megabytes bis hin zu vielen Gigabytes reichen.The amount of diagnostic information collected depends on the nature and volume of the workload that the server is processing and may range from a few megabytes to several gigabytes.

KonfigurationsdateienConfiguration Files

Beim Start liest SQLDiag die Konfigurationsdatei und die angegebenen Befehlszeilenargumente.On startup, SQLdiag reads the configuration file and the command line arguments that have been specified. In der Konfigurationsdatei geben Sie die Art der Diagnoseinformationen, die mit SQLDiag gesammelt werden.You specify the types of diagnostic information that SQLdiag collects in the configuration file. Standardmäßig verwendet SQLDiag die Konfigurationsdatei SQLDiag.Xml, die sich im Startordner des Hilfsprogramms SQLDiag befindet und bei jeder Ausführung des Tools extrahiert wird.By default, SQLdiag uses the SQLDiag.Xml configuration file, which is extracted each time the tool runs and is located in the SQLdiag utility startup folder. Die Konfigurationsdatei verwendet das XML-Schema, SQLDiag_schema.xsd, das ebenfalls bei jedem Ausführen von SQLDiag aus der ausführbaren Datei in das Startverzeichnis des Hilfsprogramms extrahiert wird.The configuration file uses the XML schema, SQLDiag_schema.xsd, which is also extracted into the utility startup directory from the executable file each time SQLdiag runs.

Bearbeiten der KonfigurationsdateienEditing the Configuration Files

Sie können SQLDiag.Xml kopieren und bearbeiten, um die Art der von SQLDiag gesammelten Diagnosedaten zu ändern.You can copy and edit SQLDiag.Xml to change the types of diagnostic data that SQLdiag collects. Bearbeiten Sie die Konfigurationsdatei immer mit einem XML-Editor, der die Konfigurationsdatei anhand des XML-Schemas überprüfen kann (z. B. Management StudioManagement Studio).When editing the configuration file always use an XML editor that can validate the configuration file against its XML schema, such as Management StudioManagement Studio. SQLDiag.Xml sollte nicht direkt bearbeitet werden.You should not edit SQLDiag.Xml directly. Erstellen Sie stattdessen eine Kopie von SQLDiag.Xml, und weisen Sie der Datei in demselben Ordner einen neuen Namen zu.Instead, make a copy of SQLDiag.Xml and rename it to a new file name in the same folder. Bearbeiten Sie dann die neue Datei, und verwenden Sie das Argument /I , um sie an SQLDiagzu übergeben.Then edit the new file, and use the /I argument to pass it to SQLdiag.

Bearbeiten der Konfigurationsdatei, wenn SQLdiag als Dienst ausgeführt wirdEditing the Configuration File When SQLdiag Runs as a Service

Wenn Sie SQLDiag bereits als Dienst ausgeführt haben und die Konfigurationsdatei nun bearbeiten müssen, müssen Sie die Registrierung des SQLDIAG-Diensts aufheben, indem Sie das Befehlszeilenargument /U angeben und den Dienst anschließend mithilfe des Befehlszeilenarguments /R erneut registrieren.If you have already run SQLdiag as a service and need to edit the configuration file, unregister the SQLDIAG service by specifying the /U command line argument and then re-register the service by using the /R command line argument. Durch das Aufheben der Registrierung und die erneute Registrierung des Diensts werden alle Konfigurationsinformationen entfernt, die in der Windows-Registrierung zwischengespeichert waren.Unregistering and re-registering the service removes old configuration information that was cached in the Windows registry.

AusgabeordnerOutput Folder

Wenn Sie keinen Ausgabeordner mithilfe von /O angeben, erstellt SQLDiag den Unterordner SQLDIAG unterhalb des Startordners von SQLDiag .If you do not specify an output folder with the /O argument, SQLdiag creates a subfolder named SQLDIAG under the SQLdiag startup folder. Beim Sammeln von Diagnoseinformationen, die große Mengen an Ablaufverfolgungsdaten einschließen, z.B. mit SQL Server ProfilerSQL Server Profiler , müssen Sie sicherstellen, dass sich der Ausgabeordner auf einem lokalen Laufwerk befindet, das über ausreichend Speicherplatz zum Speichern der angeforderten Diagnoseausgabe verfügt.For diagnostic information collection that involves high volume tracing, such as SQL Server ProfilerSQL Server Profiler , make sure that the output folder is on a local drive with enough space to store the requested diagnostic output.

Bei einem Neustart von SQLDiag wird der Inhalt des Ausgabeordners überschrieben.When SQLdiag is restarted, it overwrites the contents of the output folder. Geben Sie /N 2 in der Befehlszeile an, um dies zu vermeiden.To avoid this, specify /N 2 on the command line.

DatensammlungData Collection Process

Beim Starten von SQLDiag werden die Initialisierungsprüfungen ausgeführt, die notwendig sind, um die in „SQLDiag.Xml“ angegebenen Diagnosedaten zu sammeln.When SQLdiag starts, it performs the initialization checks necessary to collect the diagnostic data that have been specified in SQLDiag.Xml. Dieser Vorgang kann mehrere Sekunden dauern.This process may take several seconds. Wenn das Hilfsprogramm als Konsolenanwendung ausgeführt wird, wird eine Meldung angezeigt, sobald SQLDiag mit der Sammlung von Diagnosedaten begonnen hat. Diese Meldung informiert Sie darüber, dass die Sammlung von Daten mithilfe von SQLDiag gestartet wurde dass Sie diesen Vorgang durch Drücken von STRG+C beenden können.After SQLdiag has started collecting diagnostic data when it is run as a console application, a message displays informing you that SQLdiag collection has started and that you can press CTRL+C to stop it. Wenn SQLDiag als Dienst ausgeführt wird, wird eine vergleichbare Meldung in das Windows-Ereignisprotokoll geschrieben.When SQLdiag is run as a service, a similar message is written to the Windows event log.

Wenn Sie SQLDiag zum Diagnostizieren eines reproduzierbaren Problems verwenden, sollten Sie warten, bis diese Meldung angezeigt wird, bevor Sie das Problem auf dem Server reproduzieren.If you are using SQLdiag to diagnose a problem that you can reproduce, wait until you receive this message before you reproduce the problem on your server.

SQLDiag sammelt die meisten Diagnosedaten parallel.SQLdiag collects most diagnostic data in parallel. Alle Diagnoseinformationen werden gesammelt, indem Verbindungen mit Tools wie dem SQL ServerSQL Server-Hilfsprogramm sqlcmd oder dem Windows-Befehlsprozessor hergestellt werden, es sei denn die Informationen werden über Windows-Leistungs- und Ereignisprotokolle gesammelt.All diagnostic information is collected by connecting to tools, such as the SQL ServerSQL Server sqlcmd utility or the Windows command processor, except when information is collected from Windows performance logs and event logs. SQLDiag verwendet einen Arbeitsthread je Computer, um die Sammlung der Diagnosedaten mithilfe dieser anderen Tools zu überwachen; hierbei wird oftmals gleichzeitig auf die Beendigung der Ausführung mehrerer Tools gewartet.SQLdiag uses one worker thread per computer to monitor the diagnostic data collection of these other tools, often simultaneously waiting for several tools to complete. Während des Sammelns leitet SQLDiag die Ausgabe jeder Diagnose an den Ausgabeordner weiter.During the collection process, SQLdiag routes the output from each diagnostic to the output folder.

Beenden der DatensammlungStopping Data Collection

Nachdem SQLDiag mit dem Sammeln von Diagnosedaten begonnen hat, wird dieser Vorgang fortgesetzt, bis Sie ihn beenden oder er konfigurationsgemäß zu einer bestimmten Zeit beendet wird.After SQLdiag starts collecting diagnostic data, it continues to do so unless you stop it or it is configured to stop at a specified time. Sie können SQLDiag so konfigurieren, dass die Datensammlung zu einem bestimmten Zeitpunkt beendet wird, indem Sie /E verwenden, um eine bestimmte Beendigungszeit anzugeben, oder /X angeben, um SQLDiag im Momentaufnahmemodus auszuführen.You can configure SQLdiag to stop at a specified time by using the /E argument, which allows you to specify a stop time, or by using the /X argument, which causes SQLdiag to run in snapshot mode.

Wenn SQLDiag beendet wird, werden alle gestarteten Diagnosen beendet.When SQLdiag stops, it stops all diagnostics it has started. So werden beispielsweise SQL Server ProfilerSQL Server Profiler -Ablaufverfolgungen, die gesammelt wurden, und das Ausführen von Transact-SQLTransact-SQL -Skripts beendet. Weiterhin werden alle Unterprozesse beendet, die während der Datensammlung erzeugt wurden.For example, it stops SQL Server ProfilerSQL Server Profiler traces it was collecting, it stops executing Transact-SQLTransact-SQL scripts it was running, and it stops any sub processes it has spawned during data collection. Nachdem die Sammlung von Diagnosedaten abgeschlossen ist, wird SQLDiag beendet.After diagnostic data collection has completed, SQLdiag exits.

Hinweis

Das Anhalten des SQLDiag -Diensts wird nicht unterstützt.Pausing the SQLdiag service is not supported. Wenn Sie versuchen, den SQLDiag -Dienst anzuhalten, wird der Dienst nach Abschluss der Sammlung von Diagnoseinformationen beendet, die beim Anhalten des Diensts gerade durchgeführt wurde.If you attempt to pause the SQLdiag service, it stops after it finishes collecting the diagnostics that it was collecting when you paused it. Wenn Sie SQLDiag nach Beendigung neu starten, wird beim Starten der Anwendung der Inhalt des Ausgabeordners überschrieben.If you restart SQLdiag after stopping it, the application restarts and overwrites the output folder. Soll der Ausgabeordner nicht überschrieben werden, müssen Sie /N 2 in der Befehlszeile angeben.To avoid overwriting the output folder, specify /N 2 on the command line.

So beenden Sie SQLdiag, wenn das Hilfsprogramm als Konsolenanwendung ausgeführt wirdTo stop SQLdiag when running as a console application

Wenn Sie SQLDiag als Konsolenanwendung ausführen, können Sie das Ausführen beenden, indem Sie im Konsolenfenster, in dem SQLDiag ausgeführt wird, STRG+C drücken.If you are running SQLdiag as a console application, press CTRL+C in the console window where SQLdiag is running to stop it. Nach dem Drücken von STRG+C wird eine Meldung im Konsolenfenster angezeigt, die Sie darüber informiert, dass die Datensammlung durch SQLDiag beendet wird und Sie warten sollten, bis der Prozess heruntergefahren wird, was einige Minuten in Anspruch nehmen kann.After you press CTRL+C, a message displays in the console window informing you that SQLDiag data collection is ending, and that you should wait until the process shuts down, which may take several minutes.

Drücken Sie STRG+C zweimal, um alle untergeordneten Diagnoseprozesse zu beenden und die Anwendung sofort zu beenden.Press Ctrl+C twice to terminate all child diagnostic processes and immediately terminate the application.

So beenden Sie SQLdiag, wenn das Hilfsprogramm als Dienst ausgeführt wirdTo stop SQLdiag when running as a service

Wenn Sie SQLDiag als Dienst ausführen, führen Sie SQLDiag STOP im Startordner von SQLDiag aus, um das Programm zu beenden.If you are running SQLdiag as a service, run SQLDiag STOP in the SQLdiag startup folder to stop it.

Wenn Sie mehrere Instanzen von SQLDiag auf demselben Computer ausführen, können Sie beim Beenden des Diensts auch den Namen der jeweiligen Instanz von SQLDiag an die Befehlszeile übergeben.If you are running multiple instances of SQLdiag on the same computer, you can also pass the SQLdiag instance name to on the command line when you stop the service. Verwenden Sie die folgende Syntax, um z.B. eine Instanz von SQLDiag mit dem Namen „Instance1“ zu beenden:For example, to stop a SQLdiag instance named Instance1, use the following syntax:

SQLDIAG STOP /A Instance1  

Hinweis

/A ist das einzige Befehlszeilenargument, das mit START, STOPoder STOP_ABORTverwendet werden kann./A is the only command-line argument that can be used with START, STOP, or STOP_ABORT. Wenn Sie eine benannte Instanz von SQLDiag mit einem der Dienstkontrollverben angeben müssen, müssen Sie /A wie im vorherigen Syntaxbeispiel nach dem Kontrollverb in der Befehlszeile angeben.If you need to specify a named instance of SQLdiag with one of the service control verbs, specify /A after the control verb on the command line as shown in the previous syntax example. Werden Kontrollverben verwendet, müssen diese als erstes Argument in der Befehlszeile angegeben werden.When control verbs are used, they must be the first argument on the command line.

Soll der Dienst so schnell wie möglich beendet werden, führen Sie SQLDIAG STOP_ABORT im Startordner des Hilfsprogramms aus.To stop the service as quickly as possible, run SQLDIAG STOP_ABORT in the utility startup folder. Mit diesem Befehl werden alle aktuell ausgeführten Sammlungen von Diagnoseinformationen abgebrochen, ohne auf ihre Beendigung zu warten.This command aborts any diagnostics collecting currently being performed without waiting for them to finish.

Hinweis

Verwenden Sie SQLDiag STOP oder SQLDIAG STOP_ABORT , um den SQLDiag -Dienst zu beenden.Use SQLDiag STOP or SQLDIAG STOP_ABORT to stop the SQLdiag service. Verwenden Sie die zum Beenden von SQLDiag oder anderen SQL ServerSQL Server -Diensten nicht die Windows-Dienstkonsole.Do not use the Windows Services Console to stop SQLdiag or other SQL ServerSQL Server services.

Automatisches Starten und Beenden von SQLdiagAutomatically Starting and Stopping SQLdiag

Wenn Sie die Sammlung von Diagnosedaten zu einem bestimmten Zeitpunkt automatisch starten und beenden möchten, können Sie die Argumente /Bstart_time und /Estop_time (die Angabe erfolgt in 24-Stunden-Notation) verwenden.To automatically start and stop diagnostic data collection at a specified time, use the /Bstart_time and /Estop_time arguments, using 24-hour notation. Wenn Sie beispielsweise ein Problem behandeln möchten, das immer gegen ca. 02:00:00 Uhr auftritt, können Sie SQLDiag so konfigurieren, dass die Sammlung von Diagnosedaten automatisch um 01:00 Uhr beginnt und automatisch um 03:00:00 Uhr endet.For example, if you are troubleshooting a problem that consistently appears at approximately 02:00:00, you can configure SQLdiag to automatically start collecting diagnostic data at 01:00 and automatically stop at 03:00:00. Geben Sie die Start- und Beendigungszeit mit dem /B -Argument und dem /E -Argument an.Use the /B and /E arguments to specify the start and stop time. Verwenden Sie die 24-Stunden-Notation, um das genau Start- und Beendigungsdatum und die Uhrzeit im Format YYYYMMDD_HH:MM:SS anzugeben.Use 24-hour notation to specify an exact start and stop date and time with the format YYYYMMDD_HH:MM:SS. Zum Angeben einer relativen Start- und Beendigungszeit geben Sie + vor der Start- und der Beendigungszeit an, wobei jedoch der Datumsabschnitt (YYYYMMDD_) wie im folgenden Beispiel gezeigt, entfällt. Diese Angabe bewirkt, dass SQLDiag 1 Stunde wartet, bevor mit dem Sammeln von Informationen begonnen wird. Die Datensammlung wird dann für 3 Stunden fortgeführt und danach beendet:To specify a relative start or stop time, prefix the start and stop time with + and omit the date portion (YYYYMMDD_) as shown in the following example, which causes SQLdiag to wait 1 hour before it starts collecting information, then it collects information for 3 hours before it stops and exits:

sqldiag /B +01:00:00 /E +03:00:00  

Wenn ein relativer start_time -Wert angegeben wird, wird SQLDiag zu einem Zeitpunkt gestartet, der relativ zum aktuellen Datum und zur aktuellen Uhrzeit ist.When a relative start_time is specified, SQLdiag starts at a time that is relative to the current date and time. Wenn ein relativer end_time -Wert angegeben wird, wird SQLDiag zu einem Zeitpunkt beendet, der relativ zum angegebenen start_time-Wert ist.When a relative end_time is specified, SQLdiag ends at a time that is relative to the specified start_time. Wenn die angegebenen Start- oder Beendigungszeitpunkte in der Vergangenheit liegen, erzwingt SQLDiag eine Änderung des Startdatums, sodass Startdatum und -uhrzeit in der Zukunft liegen.If the start or end date and time that you have specified is in the past, SQLdiag forcibly changes the start date so that the start date and time are in the future.

Dies hat erhebliche Auswirkungen auf die von Ihnen ausgewählten Start- und Beendigungsdaten.This has important implications on the start and end dates you choose. Betrachten Sie das folgenden Beispiel:Consider the following example:

sqldiag /B +01:00:00 /E 08:30:00  

Wenn es derzeit 08:00 Uhr, ist die Beendigungszeit schon vorbei, bevor die Sammlung der Diagnosedaten überhaupt begonnen hat.If the current time is 08:00, the end time passes before diagnostic collection actually begins. Da SQLDiag die Start- und Beendigungsdaten automatisch anpasst und auf den nächsten Tag verschiebt, wenn die Zeitpunkte in der Vergangenheit liegen, beginnt die Sammlung der Diagnosedaten in diesem Beispiel heute um 09:00 Uhr (mit + wurde eine relative Startzeit angegeben) und wird bis zum folgenden Morgen um 08:30 Uhr fortgeführt.Because SQLDiag automatically adjusts start and end dates to the next day when they occur in the past, in this example diagnostic collection starts at 09:00 today (a relative start time has been specified with +) and continues collecting until 08:30 the following morning.

Beenden und erneutes Starten von SQLdiag zum Sammeln täglicher DiagnoseinformationenStopping and Restarting SQLdiag to Collect Daily Diagnostics

Mithilfe von /Lkönnen Sie jeden Tag einen angegebenen Satz von Diagnosedaten sammeln, ohne SQLDiag manuell starten und beenden zu müssen.To collect a specified set of diagnostics on a daily basis without having to manually start and stop SQLdiag, use the /L argument. Durch /L wird SQLDiag fortlaufend ausgeführt, da dieses Argument bewirkt, dass sich das Hilfsprogramm nach einem geplanten Herunterfahren automatisch neu startet.The /L argument causes SQLdiag to run continuously by automatically restarting itself after a scheduled shutdown. Wenn /L angegeben wurde und SQLDiag beendet wird, weil die mit /E angegebene Beendigungszeit erreicht wurde oder weil das Hilfsprogramm durch die Angabe von /X im Momentaufnahmemodus ausgeführt wird, wird SQLDiag nicht vollständig beendet, sondern erneut gestartet.When /L is specified, and SQLdiag stops because it has reached the end time specified with the /E argument, or it stops because it is being run in snapshot mode by using the /X argument, SQLdiag restarts instead of exiting.

Im folgenden Beispiel wird angegeben, dass SQLDiag im fortlaufenden Modus ausgeführt wird, damit das Hilfsprogramm automatisch neu gestartet wird, nachdem zwischen 03:00:00 und 05:00:00 Uhr die Sammlung von Diagnosedaten erfolgt ist.The following example specifies that SQLdiag run in continuous mode to automatically restart after diagnostic data collecting occurs between 03:00:00 and 05:00:00.

sqldiag /B 03:00:00 /E 05:00:00 /L  

Im folgenden Beispiel wird angegeben, dass SQLDiag im fortlaufenden Modus ausgeführt wird, damit das Hilfsprogramm automatisch neu gestartet wird, nachdem um 03:00:00 Uhr eine Momentaufnahme der Diagnosedaten erstellt wurde.The following example specifies that SQLdiag run in continuous mode to automatically restart after taking a diagnostic data snapshot at 03:00:00.

sqldiag /B 03:00:00 /X /L  

Ausführen von SQLdiag als DienstRunning SQLdiag as a Service

Wenn Sie SQLDiag verwenden möchten, um Diagnosedaten über längere Zeiträume zu sammeln, in deren Verlauf Sie sich jedoch möglicherweise vom Computer abmelden müssen, auf dem SQLDiag ausgeführt wird, können Sie es als Dienst ausführen.When you want to use SQLdiag to collect diagnostic data for long periods of time during which you might need to log out of the computer on which SQLdiag is running, you can run it as a service.

So registrieren Sie SQLDiag für das Ausführen als DienstTo register SQLDiag to run as a service

Sie können SQLDiag für das Ausführen als Dienst registrieren, indem Sie /R in der Befehlszeile angeben.You can register SQLdiag to run as a service by specifying the /R argument at the command line. Hierdurch wird SQLDiag für das Ausführen als Dienst registriert.This registers SQLdiag to run as a service. Der Dienstname von SQLDiag ist SQLDIAG.The SQLdiag service name is SQLDIAG. Wenn Sie beim Registrieren von SQLDiag als Dienst weitere Argumente in der Befehlszeile angeben, werden diese Argumente beibehalten und erneut verwendet, wenn der Dienst gestartet wird.Any other arguments you specify on the command line when you register SQLDiag as a service are preserved and reused when the service is started.

Wenn Sie den Standarddienstnamen SQLDIAG ändern möchten, geben Sie mit dem Befehlszeilenargument /A einen anderen Namen an.To change the default SQLDIAG service name, use the /A command-line argument to specify another name. SQLDiag setzt vor jeden mit /A angegebenen Instanznamen von SQLDiag automatisch das Präfix DIAG$, um aussagefähige Dienstnamen zu erstellen.SQLdiag automatically prefixes DIAG$ to any SQLdiag instance name specified with /A to create sensible service names.

So heben Sie die Registrierung des SQLDIAG-Diensts aufTo unregister the SQLDIAG service

Zum Aufheben der Dienstregistrierung geben Sie das Argument /U an.To unregister the service, specify the /U argument. Wird die Registrierung von SQLDiag als Dienst aufgehoben, wird hierdurch auch der Windows-Registrierungsschlüssel für den SQLDIAG-Dienst gelöscht.Unregistering SQLdiag as a service also deletes the Windows registry keys of the service.

So starten Sie den SQLDIAG-Dienst bzw. führen einen Neustart des Diensts durchTo start or restart the SQLDIAG service

Führen Sie zum Starten oder Neustarten des SQLDIAG-Diensts SQLDiag START an der Befehlszeile aus.To start or restart the SQLDIAG service, run SQLDiag START from the command line.

Falls Sie mithilfe des /A -Arguments mehrere Instanzen von SQLDiag ausführen, können Sie beim Starten des Diensts auch den Instanznamen von SQLDiag an der Befehlszeile übergeben.If you are running multiple instances of SQLdiag by using the /A argument, you can also pass the SQLdiag instance name on the command line when you start the service. Verwenden Sie die folgende Syntax, um z.B. eine Instanz von SQLDiag mit dem Namen „Instance1“ zu starten:For example, to start a SQLdiag instance named Instance1, use the following syntax:

SQLDIAG START /A Instance1  

Sie können auch den Befehl net start verwenden, um den SQLDIAG-Dienst zu starten.You can also use the net start command to start the SQLDIAG service.

Wenn Sie SQLDiagneu starten, wird der Inhalt des aktuellen Ausgabeordners überschrieben.When you restart SQLdiag, it overwrites the contents in the current output folder. Soll dies verhindert werden, geben Sie /N 2 in der Befehlszeile an, damit der Ausgabeordner beim Starten des Hilfsprogramms umbenannt wird.To avoid this, specify /N 2 on the command line to rename the output folder when the utility starts.

Das Anhalten des SQLDiag -Diensts wird nicht unterstützt.Pausing the SQLdiag service is not supported.

Ausführen mehrerer Instanzen von SQLdiagRunning Multiple Instances of SQLdiag

Sie können mehrere Instanzen von SQLDiag auf demselben Computer ausführen, indem Sie /ASQLDiag_application_name in der Befehlszeile angeben.Run multiple instances of SQLdiag on the same computer by specifying /ASQLdiag_application_name on the command line. Dies ist sinnvoll, wenn von derselben Instanz von SQL ServerSQL Server verschiedene Sätze von Diagnosedaten gleichzeitig gesammelt werden sollen.This is useful for collecting different sets of diagnostics simultaneously from the same SQL ServerSQL Server instance. Sie können beispielsweise eine benannte Instanz von SQLDiag konfigurieren, um fortlaufend eine geringe Menge von Daten zu sammeln.For example, you can configure a named instance of SQLdiag to continuously perform lightweight data collection. Falls anschließend ein bestimmtes Problem in SQL ServerSQL Serverauftritt, können Sie die Standardinstanz von SQLDiag ausführen, um Diagnosedaten für dieses Problem zu sammeln, oder um auf Anforderung vom MicrosoftMicrosoft -Kundenservice und -support hin einen Satz von Diagnosedaten zu sammeln, die für die Diagnose eines Problems erforderlich sind.Then, if a specific problem occurs on SQL ServerSQL Server, you can run the default SQLdiag instance to collect diagnostics for that problem, or to gather a set of diagnostics that MicrosoftMicrosoft Customer Support Services has asked you to gather to diagnose a problem.

Sammeln von Diagnosedaten von gruppierten SQL Server-InstanzenCollecting Diagnostic Data from Clustered SQL Server Instances

SQLDiag unterstützt das Sammeln von Diagnosedaten von gruppierten Instanzen von SQL ServerSQL Server .SQLdiag supports collecting diagnostic data from clustered SQL ServerSQL Server instances. Zum Sammeln von Diagnosedaten von gruppierten Instanzen von SQL ServerSQL Server müssen Sie sicherstellen, dass "." für das name-Attribut des <Machine> -Elements in der Konfigurationsdatei „SQLDiag.Xml“ angegeben ist. Das Argument /G darf in der Befehlszeile nicht angegeben werden.To gather diagnostics from clustered SQL ServerSQL Server instances, make sure that "." is specified for the name attribute of the <Machine> element in the configuration file SQLDiag.Xml and do not specify the /G argument on the command line. Standardmäßig ist "." für das name -Attribut in der Konfigurationsdatei angegeben und das Argument /G deaktiviert.By default, "." is specified for the name attribute in the configuration file and the /G argument is turned off. Normalerweise ist es nicht nötig, die Konfigurationsdatei zu bearbeiten oder die Befehlszeilenargumente zu ändern, wenn Sie Diagnosedaten von einer gruppierten Instanz von SQL ServerSQL Server sammeln möchten.Typically, you do not need to edit the configuration file or change the command line arguments when collecting from a clustered SQL ServerSQL Server instance.

Wenn "." als Computername angegeben ist, erkennt SQLDiag , dass es in einem Cluster ausgeführt wird, und ruft daher gleichzeitig Diagnoseinformationen von allen virtuellen Instanzen von SQL ServerSQL Server im Cluster ab.When "." is specified as the machine name, SQLdiag detects that it is running on a cluster, and simultaneously retrieves diagnostic information from all virtual instances of SQL ServerSQL Server that are installed on the cluster. Wenn die Diagnosedaten nur für eine der virtuellen Instanzen von SQL ServerSQL Server gesammelt werden sollen, die auf einem Computer ausgeführt werden, müssen Sie den Namen dieser virtuellen Instanz von SQL ServerSQL Server für das name-Attribut des <Machine> -Elements in „SQLDiag.Xml“ angeben.If you want to collect diagnostic information from only one virtual instance of SQL ServerSQL Server that is running on a computer, specify that virtual SQL ServerSQL Server for the name attribute of the <Machine> element in SQLDiag.Xml.

Hinweis

Zum Sammeln von SQL Server ProfilerSQL Server Profiler -Ablaufverfolgungsinformationen aus gruppierten Instanzen von SQL ServerSQL Server müssen auf dem Cluster administrative Freigaben (ADMIN$) aktiviert sein.To collect SQL Server ProfilerSQL Server Profiler trace information from clustered SQL ServerSQL Server instances, administrative shares (ADMIN$) must be enabled on the cluster.

Weitere InformationenSee Also

Referenz zum Eingabeaufforderungs-Hilfsprogramm (Datenbank-Engine)Command Prompt Utility Reference (Database Engine)