Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S'applique à :SQL Server
L’utilitaire SQLdiag est un utilitaire de collecte de données de diagnostic, conçu pour un usage général. Il est possible de l’exécuter en tant qu’application console ou service. Vous pouvez utiliser SQLdiag pour collecter des fichiers journaux et des fichiers de données à partir de SQL Server et depuis d’autres types de serveurs, mais aussi analyser vos serveurs au fil des jours ou trouver des solutions à des problèmes spécifiques les concernant. SQLdiag a été conçu pour accélérer et simplifier la collecte d’informations de diagnostic pour les services d’assistance de Microsoft .
Remarque
Cet utilitaire peut être modifié, et les applications ou scripts qui s’appuient sur ses arguments de ligne de commande ou comportement peuvent ne pas fonctionner correctement dans les versions ultérieures.
SQLdiag peut recueillir les types suivants d’informations de diagnostic :
- Journaux de performances Windows
- Journaux des événements Windows
- Traces SQL Server Profiler
- Informations de blocage SQL Server
- SQL Server informations de configuration
Vous pouvez spécifier les types d’informations que SQLdiag doit collecter en modifiant le fichier SQLdiag.xmlde configuration, qui est décrit dans une section suivante.
Syntaxe
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 }
Les arguments
/?
Affiche des informations sur l’utilisation.
/I fichier_de_configuration
Définit le fichier de configuration que SQLdiag doit utiliser. Par défaut, /I est définie sur SQLdiag.xml.
/O output_folder_path
Redirige la sortie de SQLdiag vers le dossier spécifié. Si l’option n’est pas spécifiée, la /O sortie SQLdiag est écrite dans un sous-dossier nommé SQLDIAG sous le dossier de démarrage SQLdiag . Si le SQLDIAG dossier n’existe pas, SQLdiag tente de le créer.
Remarque
L’emplacement du dossier de sortie est relatif à l’emplacement du dossier de support qui peut être spécifié avec /P. Pour définir un emplacement entièrement différent pour le dossier de sortie, spécifiez le chemin d’accès complet du répertoire pour /O.
/P support_folder_path
Définit le chemin d'accès au dossier de support. Par défaut, /P est défini sur le dossier où réside l’exécutable SQLdiag . Le dossier de support contient les fichiers de prise en charge de SQLdiag , par exemple le fichier de configuration XML, les scripts Transact-SQL ainsi que d’autres fichiers dont l’utilitaire a besoin quand il collecte des diagnostics. Si vous utilisez cette option pour spécifier un autre chemin d’accès aux fichiers de support, SQLdiag copie automatiquement les fichiers de support requis dans le dossier spécifié s’ils n’existent pas déjà.
Pour définir votre dossier actif comme chemin d’accès de support, spécifiez-le %cd% sur la ligne de commande comme suit :
sqldiag /P %cd%
/N output_folder_management_option
Indique si SQLdiag remplace ou renomme le dossier de sortie à son démarrage. Options disponibles :
- 1 = Remplace le dossier de sortie (par défaut)
- 2 = Lorsque SQLdiag démarre, il renomme le dossier de sortie en
SQLDIAG_00001,SQLDIAG_00002et ainsi de suite. Après avoir renommé le dossier de sortie actuel, SQLdiag écrit la sortie dans le dossierSQLDIAGde sortie par défaut.
SQLdiag n’ajoute pas de sortie au dossier de sortie actuel lors du démarrage. Il peut uniquement remplacer le dossier de sortie par défaut (option 1) ou renommer le dossier (option 2), puis il écrit la sortie dans le nouveau dossier de sortie par défaut nommé SQLDIAG.
/M machine1 [ machine2machineN ] | @machinelistfile
Remplace les machines indiquées dans le fichier de configuration. Par défaut, le fichier de configuration est SQLdiag.xml, ou il peut être défini avec le paramètre /I. Lorsque vous spécifiez plusieurs ordinateurs, séparez chaque nom d'ordinateur avec un espace.
L’option @machinelistfile spécifie un nom de fichier de liste d’ordinateurs à stocker dans le fichier de configuration.
/C type_de_compression_de_fichier
Définit le type de compression de fichiers utilisé sur les fichiers du dossier de sortie de SQLdiag . Options disponibles :
- 0 = aucune (par défaut)
- 1 = utilise la compression NTFS
/B [+]start_time
Spécifie la date et l’heure de début de la collecte des données de diagnostic au format suivant : yyyyMMdd_HH:mm:ss
L'heure est spécifiée en utilisant une notation de 24 heures. Par exemple, 2:00 P.M. doit être spécifié en tant que 14:00:00.
Utilisez + sans date (HH :mm :ss uniquement) pour spécifier une heure relative à la date et à l’heure actuelles. Par exemple, si vous spécifiez /B +02:00:00, SQLdiag attend 2 heures avant de commencer à collecter des informations.
N’insérez pas d’espace entre + et le start_time.
Si vous spécifiez une heure de début dans le passé, SQLdiag modifie cette date de façon à ce que la date et l’heure de début se situent dans le futur. Par exemple, si vous spécifiez /B 01:00:00 et que l’heure actuelle est 08:00:00, SQLdiag modifie de force la date de début afin que la date de début soit le jour suivant.
SQLdiag utilise l’heure locale sur l’ordinateur sur lequel l’utilitaire est en cours d’exécution.
/E [+]stop_time
Spécifie la date et l’heure d’arrêt de la collecte des données de diagnostic au format suivant : yyyyMMdd_HH:mm:ss
L'heure est spécifiée en utilisant une notation de 24 heures. Par exemple, 2:00 P.M. doit être spécifié en tant que 14:00:00.
Utilisez + sans date (HH :mm :ss uniquement) pour spécifier une heure relative à la date et à l’heure de début . Par exemple, si vous spécifiez une heure de début et une heure de fin à l’aide /B +02:00:00 /E +03:00:00, SQLdiag attend 2 heures avant de commencer à collecter des informations, puis collecte des informations pendant 3 heures avant qu’elle s’arrête et quitte. Si /B ce n’est pas spécifié, SQLdiag commence à collecter les diagnostics immédiatement et se termine à la date et à l’heure spécifiées par /E.
N’insérez pas d’espace entre + les start_time ou les end_time spécifiés.
SQLdiag utilise l’heure locale sur l’ordinateur sur lequel l’utilitaire est en cours d’exécution.
/A SQLdiag_application_name
Permet d’exécuter plusieurs instances de l’utilitaire SQLdiagSQL Server sur la même instance .
Chaque nom_application_SQLdiag identifie une instance différente de SQLdiag. Il n’existe aucune relation entre une instance nom_application_SQLdiag et un nom d’instance SQL Server .
Vous pouvez utilisernom_application_SQLdiag pour démarrer ou arrêter une instance spécifique du service SQLdiag .
Dans cet exemple, remplacez <SQLdiag_application_name> par la valeur appropriée pour SQLdiag_application_name :
sqldiag START /A <SQLdiag_application_name>
Il peut également être utilisé avec l’option /R permettant d’inscrire une instance spécifique de SQLdiag en tant que service. Dans cet exemple, remplacez <SQLdiag_application_name> par la valeur appropriée pour SQLdiag_application_name :
sqldiag /R /A <SQLdiag_application_name>
Remarque
SQLdiag préfixe DIAG$ automatiquement le nom de l’instance spécifié pour SQLdiag_application_name. Vous obtenez ainsi un nom de service pratique si vous inscrivez SQLdiag comme service.
Protocole /T
Se connecte à une instance de SQL Server à l’aide de l’une des valeurs de protocole suivantes.
| Protocole (et port) | Description |
|---|---|
| tcp [ ,port ] | Protocole TCP/IP (Transmission Control Protocol/Internet Protocol). Vous pouvez éventuellement spécifier un numéro de port pour la connexion. |
| Np | Canaux nommés. Par défaut, l'instance par défaut de SQL Server écoute le canal nommé \\.\pipe\sql\query et \\.\pipe\MSSQL$<instancename>\sql\query pour une instance nommée. Vous ne pouvez pas vous connecter à une instance de SQL Server à l’aide d’un autre nom de canal. |
| Lpc | Appel de procédure locale. Ce protocole de mémoire partagée est disponible si le client se connecte à une instance de SQL Server sur le même ordinateur. |
/Q
Exécute SQLdiag en mode silencieux.
/Q supprime toutes les invites, telles que les invites de mot de passe.
/G
Exécute SQLdiag en mode générique. Quand /G est spécifié, au démarrage, SQLdiag n'applique pas de vérifications de connectivité SQL Server et ne vérifie pas que l’utilisateur est membre du rôle serveur fixe sysadmin.
SQLdiag confie plutôt à Windows le soin de déterminer si un utilisateur dispose des droits appropriés pour collecter chacun des diagnostics demandés.
Si /G ce n’est pas spécifié, SQLdiag vérifie si l’utilisateur est membre du groupe Administrateurs Windows et ne collecte pas les diagnostics SQL Server si l’utilisateur n’est pas membre du groupe Administrateurs .
/R
Inscrit SQLdiag en tant que service. Tous les arguments de ligne de commande qui sont spécifiés à l’inscription de SQLdiag en tant que service sont conservés pour de futures exécutions du service.
Lorsque SQLdiag est inscrit en tant que service, le nom du service par défaut est SQLDIAG. Vous pouvez modifier le nom du service à l’aide de l’argument /A .
Utilisez l’argument START de ligne de commande pour démarrer le service :
sqldiag START
Vous pouvez également utiliser la net start commande pour démarrer le service :
net start SQLDIAG
/U
Annule l’inscription de SQLdiag en tant que service.
Utilisez également l’argument /A si vous annulez l’inscription d’une instance SQLdiag nommée.
/L
Exécute SQLdiag en mode continu lorsqu'une heure de début ou de fin est spécifiée avec les arguments /B ou /E, respectivement.
SQLdiag redémarre automatiquement après l’arrêt de la collecte des diagnostics en raison d’un arrêt programmé. Par exemple, en utilisant les /E arguments ou les /X arguments.
Remarque
SQLdiag ignore l’argument /L si une heure de début ou une heure de fin n’est pas spécifiée à l’aide des arguments de ligne de commande /B et /E.
L’utilisation /L n’implique pas le mode de service. Pour l’utiliser /L lors de l’exécution de SQLdiag en tant que service, spécifiez-le sur la ligne de commande lorsque vous inscrivez le service.
/X
Exécute SQLdiag en mode d’instantané. SQLdiag effectue un instantané de tous les diagnostics configurés, puis s’arrête automatiquement.
DÉMARRER | ARRÊTER | STOP_ABORT
Démarre ou arrête le service SQLdiag .
STOP_ABORT force le service à s’arrêter le plus rapidement possible sans terminer la collecte des diagnostics qu’il collecte actuellement.
Lorsqu'ils sont utilisés ces arguments destinés au contrôle du service doivent être placés en premier sur les lignes de commande. Par exemple :
sqldiag START
Seul l’argument /A , qui spécifie une instance nommée de SQLdiag, peut être utilisé avec START, STOPou STOP_ABORT pour contrôler une instance spécifique du service SQLdiag . Dans cet exemple, remplacez <SQLdiag_application_name> par la valeur appropriée pour SQLdiag_application_name :
sqldiag START /A <SQLdiag_application_name>
Exigences de sécurité
Sauf si SQLdiag est exécuté en mode générique (en spécifiant l’argument /G de ligne de commande), l’utilisateur qui exécute SQLdiag doit être membre du groupe Administrateurs Windows et membre du rôle serveur fixe SQL Server sysadmin . Par défaut, SQLdiag établit la connexion à SQL Server en utilisant l’authentification Windows, mais il prend également en charge l’authentification SQL Server .
Considérations relatives aux performances
Les effets sur les performances de l’exécution de SQLdiag varient selon le type de données de diagnostics dont vous avez configuré la collecte. Par exemple, si la configuration de SQLdiag prévoit la collecte d’informations de suivi de trace de SQL Server Profiler , les performances du serveur se trouveront affectées proportionnellement au nombre de classes d’événements à tracer.
L’impact sur les performances d’exécution de SQLdiag équivaut approximativement à la somme des coûts de collecte des diagnostics configurés séparément. Par exemple, la collecte d’une trace avec SQLdiag implique le même coût de performances que sa collecte avec SQL Server Profiler. L’impact sur les performances d’utilisation de SQLdiag est négligeable.
Espace disque requis
Comme SQLdiag peut recueillir différents types d’informations de diagnostics, l’espace disque libre requis pour exécuter SQLdiag est variable. La quantité d’informations de diagnostic collectées dépend de la nature et du volume de la charge de travail que le serveur traite et peut passer de quelques mégaoctets à plusieurs gigaoctets.
Fichiers de configuration
Au démarrage, SQLdiag lit le fichier de configuration et les arguments de ligne de commande qui ont été spécifiés. Vous spécifiez les types d’informations de diagnostics que SQLdiag collecte dans le fichier de configuration. Par défaut, SQLdiag utilise le SQLdiag.xml fichier de configuration, qui est extrait chaque fois que l’outil s’exécute et se trouve dans le dossier de démarrage de l’utilitaire SQLdiag . Le fichier de configuration utilise le schéma XML, SQLDiag_schema.xsd, qui est également extrait à partir du fichier exécutable dans le répertoire de démarrage de l’utilitaire chaque fois que SQLdiag s’exécute.
Modifier les fichiers de configuration
Vous pouvez copier et modifier SQLdiag.xml les types de données de diagnostic collectées par SQLdiag . Lors de la modification du fichier de configuration, utilisez toujours un éditeur XML pouvant valider le fichier de configuration par rapport à son schéma XML, par exemple Management Studio. Vous ne devez pas modifier SQLdiag.xml directement. Au lieu de cela, faites une copie de SQLdiag.xml et renommez-la avec un nouveau nom dans le même dossier. Modifiez ensuite le nouveau fichier et utilisez l’argument /I pour le transmettre à SQLdiag.
Modifier le fichier de configuration lorsque SQLdiag s’exécute en tant que service
Si vous avez déjà exécuté SQLdiag en tant que service et que vous devez modifier le fichier de configuration, annulez l’inscription du SQLDIAG service en spécifiant l’argument /U de ligne de commande, puis réinscrivez le service à l’aide de l’argument /R de ligne de commande. L'annulation de l'inscription du service puis sa réinscription supprime les anciennes informations de configuration mises en mémoire cache dans le Registre Windows.
Dossier de sortie
Si vous ne spécifiez pas de dossier de sortie avec l’argument /O , SQLdiag crée un sous-dossier nommé SQLDIAG sous le dossier de démarrage SQLdiag . Pour la collecte d’informations de diagnostic qui implique un suivi en volume élevé, tel que SQL Server Profiler, assurez-vous que le dossier de sortie se trouve sur un lecteur local avec suffisamment d’espace pour stocker la sortie de diagnostic demandée.
Quand il est redémarré, SQLdiag remplace le contenu du dossier de sortie. Pour éviter cela, spécifiez /N 2 sur la ligne de commande.
Processus de collecte de données
Au démarrage de SQLdiag , il effectue les vérifications d’initialisation nécessaires pour collecter les données de diagnostic spécifiées dans SQLdiag.xml. Ce processus peut prendre plusieurs secondes. Une fois SQLdiag démarré la collecte des données de diagnostic lorsqu’elle s’exécute en tant qu’application console, un message s’affiche vous informant que la collection SQLdiag a démarré et que vous pouvez appuyer sur Ctrl+C pour l’arrêter. Quand SQLdiag est exécuté en tant que service, un message similaire est écrit dans le journal d’événements de Windows.
Si vous utilisez SQLdiag pour diagnostiquer un problème que vous pouvez reproduire, attendez que vous receviez ce message avant de reproduire le problème sur votre serveur.
SQLdiag collecte la plupart des données de diagnostics en parallèle. Toutes les informations de diagnostics sont collectées en se connectant à des outils, tels que l’utilitaire SQL Server sqlcmd ou le processeur de commandes Windows, sauf quand des informations sont recueillies à partir des journaux de performances et des journaux d’événements de Windows. SQLdiag utilise un thread de travail par ordinateur pour contrôler la collecte de données de diagnostics de ces autres outils, attendant souvent simultanément la fin de l’exécution de plusieurs outils. Pendant le processus de collecte, SQLdiag achemine les résultats de chaque diagnostic dans le dossier de sortie.
Arrêter la collecte de données
Une fois que SQLdiag commence à collecter des données de diagnostic, il continue de le faire, sauf si vous l’arrêtez manuellement via Ctrl+C, ou si vous créez un sqldiag.stop fichier ou que vous le configurez pour l’arrêter à un moment spécifié. Vous pouvez configurer SQLdiag pour qu’il s’arrête à un moment spécifique à l’aide de l’argument /E ou à l’aide de l’argument /X , ce qui entraîne l’exécution de SQLdiag en mode instantané.
Quand SQLdiag s’arrête, il arrête tous les diagnostics qu’il a commencés. Par exemple, il arrête les traces SQL Server Profiler dont il assurait la collecte, interrompt également les scripts Transact-SQL en cours d’exécution ainsi que tous les sous-processus qu’il a générés pendant la collecte des données. Une fois la collecte des données de diagnostic terminée, SQLdiag prend fin.
Arrêter SQLdiag lors de l’exécution en tant qu’application console
Si vous exécutez SQLdiag en tant qu’application console, appuyez sur Ctrl+C dans la fenêtre de console où SQLdiag est en cours d’exécution pour l’arrêter. Une fois que vous appuyez sur Ctrl+C, un message s’affiche dans la fenêtre de console vous informant que la collecte de données SQLdiag se termine et que vous devez attendre que le processus s’arrête, ce qui peut prendre plusieurs minutes.
Appuyez deux fois sur les touches Ctrl+C pour mettre fin à tous les processus de diagnostics enfants et arrêter immédiatement l'application.
Arrêter SQLdiag lors de l’exécution en tant que service
Si vous exécutez SQLdiag en tant que service, exécutez sqldiag STOP le dossier de démarrage SQLdiag pour l’arrêter. Vous pouvez également arrêter les services SQLdiag dans l’applet Services.msc .
Remarque
La suspension du service SQLdiag n’est pas prise en charge. Si vous tentez de suspendre le service SQLdiag , il s’arrête seulement après avoir fini la collecte des diagnostics qui était en cours au moment où vous l’avez interrompu. Si vous redémarrez SQLdiag après l'avoir arrêté, l'application redémarre et écrase le dossier de sortie. Pour éviter de remplacer le dossier de sortie, spécifiez /N 2 sur la ligne de commande.
Si vous exécutez plusieurs instances de SQLdiag sur le même ordinateur, vous pouvez également transmettre le nom de l’instance SQLdiag sur la ligne de commande lorsque vous arrêtez le service. Utilisez, par exemple, la syntaxe suivante pour arrêter une instance SQLdiag nommée Instance1 :
sqldiag STOP /A Instance1
/A est le seul argument de ligne de commande qui peut être utilisé avec START, STOPou STOP_ABORT. Si vous devez spécifier une instance nommée de SQLdiag avec l’un des verbes de contrôle de service, spécifiez /A après le verbe de contrôle sur la ligne de commande, comme indiqué dans l’exemple de syntaxe précédent. Lorsqu'ils sont utilisés, les verbes de contrôle doivent impérativement occuper la place du premier argument sur une ligne de commande.
Pour arrêter le service le plus rapidement possible, exécutez sqldiag STOP_ABORT dans le dossier de démarrage de l’utilitaire. Cette commande interrompt toute collecte de diagnostics en cours d'exécution sans attendre que cette opération se termine.
Remarque
Utilisez sqldiag STOP ou sqldiag STOP_ABORT pour arrêter le service SQLdiag. N’utilisez pas la console des services Windows pour arrêter SQLdiag ou d’autres services SQL Server.
Arrêter SQLdiag à l’aide du fichier sqldiag.stop
SQLdiag s’arrête également automatiquement lorsqu’il trouve un fichier nommé sqldiag.stop dans le dossier de l’utilitaire \Output . Cette option s’applique indépendamment si SQLdiag s’exécute en tant qu’application console ou en tant que service. La création d’un .stop fichier peut être utile lorsque vous souhaitez arrêter SQLdiag par programmation une fois que certains événements se produisent, mais vous ne savez pas à l’avance le moment où cet événement se produit. Le contenu du fichier sqldiag.stop est hors de propos. Une option, outre la création manuelle du fichier, consiste à utiliser une commande comme la suivante dans un fichier de commandes pour créer sqldiag.stop :
ECHO stop > F:\PSSDIAG\Output\sqldiag.stop
Une autre option consiste à utiliser PowerShell :
Set-Content -Value "stop" -Path "F:\PSSDIAG\Output\sqldiag.stop"
Démarrer et arrêter automatiquement SQLdiag
Pour démarrer et arrêter automatiquement la collecte de données de diagnostic à un moment spécifié, utilisez les arguments /B <start_time> et /E <stop_time> avec la notation de 24 heures. Par exemple, si vous résolvez un problème qui apparaît constamment à environ 02:00:00, vous pouvez configurer SQLdiag pour commencer automatiquement à collecter automatiquement les données de diagnostic à 01:45 et s’arrêter automatiquement à 03:00:00.
Utilisez les arguments /B et /E pour spécifier l'heure de début et de fin. Utilisez la notation de 24 heures pour spécifier une date et une heure de début et d’arrêt exactes avec le format général yyyyMMdd_HH :mm :ss. L’exemple suivant démarre la collecte de données à 01:45 et l’arrête à 3:00.
sqldiag /B 01:45:00 /E 03:00:00
Pour spécifier une heure de début ou d’arrêt relative, préfixez l’heure de début et d’arrêt avec + et omettez la partie de date (yyyyMMdd_) comme indiqué dans l’exemple suivant.
Ainsi, SQLdiag attend une heure avant de commencer à collecter des informations, puis il collecte des informations pendant deux heures et demi avant qu’il s’arrête et se termine :
sqldiag /B +01:00:00 /E +02:30:00
Quand vous spécifiez une valeur heure_début relative, SQLdiag commence à une heure qui est cohérente par rapport à la date et l’heure actuelles. Quand vous spécifiez une valeur heure_fin relative, SQLdiag se termine à une heure qui est chronologiquement cohérente par rapport à la valeur heure_débutspécifiée. Si les dates ou heures de démarrage et d’arrêt que vous spécifiez se situent dans le passé, SQLdiag change la date de démarrage afin que la date et l’heure de démarrage se situent dans le futur.
Ceci présente des implications importantes sur les dates de démarrage et d'arrêt que vous choisissez. Prenons l’exemple suivant :
sqldiag /B +01:00:00 /E 08:30:00
Si l’heure actuelle est 08:00, l’heure de fin arrive avant que ne commence la collecte du diagnostic. Étant donné que SQLdiag ajuste automatiquement les dates de début et de fin au jour suivant lorsqu’elles se produisent dans le passé, dans cet exemple, la collecte de diagnostics commence aujourd’hui à 09:00 (une heure de début relative a été spécifiée à 1 heure à partir de maintenant avec +) et se poursuit jusqu’à 08:30 le matin suivant.
Arrêter et redémarrer SQLdiag pour collecter des diagnostics quotidiens
Pour collecter un ensemble spécifié de diagnostics tous les jours sans avoir à démarrer et arrêter manuellement SQLdiag, utilisez l’argument /L . L’argument /L provoque l’exécution de SQLdiag en continu en redémarrant automatiquement après un arrêt planifié. Quand /L est spécifié, et SQLdiag s’arrête parce qu’il a atteint l’heure de fin spécifiée avec l’argument /E , ou s’arrête parce qu’il est exécuté en mode instantané à l’aide de l’argument /X , SQLdiag redémarre au lieu de quitter.
L’exemple suivant spécifie que SQLdiag s’exécute en mode continu pour redémarrer automatiquement après une collecte de données de diagnostics effectuée entre 03:00:00 et 05:00:00.
sqldiag /B 03:00:00 /E 05:00:00 /L
L'exemple suivant spécifie que SQLdiag s'exécute en mode continu pour redémarrer automatiquement après avoir pris un instantané des données de diagnostic à 03:00:00.
sqldiag /B 03:00:00 /X /L
Exécuter SQLdiag en tant que service
Lorsque vous souhaitez utiliser SQLdiag pour collecter des données de diagnostic pendant de longues périodes pendant lesquelles vous devrez peut-être vous déconnecter de l’ordinateur sur lequel SQLdiag est en cours d’exécution, vous pouvez l’exécuter en tant que service.
Inscrire SQLdiag pour s’exécuter en tant que service
Vous pouvez inscrire SQLdiag pour qu’il s’exécute en tant que service en spécifiant l’argument /R sur la ligne de commande. Cet argument inscrit SQLdiag afin qu’il s’exécute en tant que service. Le nom du service SQLdiag est SQLDIAG. Tous les autres arguments que vous spécifiez sur la ligne de commande lorsque vous inscrivez SQLdiag en tant que service sont conservés et réutilisés lors du démarrage du service.
Pour modifier le nom du service par défaut SQLDIAG , utilisez l’argument /A de ligne de commande pour spécifier un autre nom.
SQLdiag préfixe automatiquement DIAG$ sur n’importe quel nom d’instance SQLdiag spécifié avec /A pour créer des noms de service sensibles.
Désinscrire le service SQLDIAG
Pour annuler l’inscription du service, spécifiez l’argument /U . L’annulation de l’inscription de SQLdiag en tant que service supprime également les clés de Registre Windows associées au service SQLDIAG.
Démarrer ou redémarrer le service SQLDIAG
Pour démarrer ou redémarrer le SQLDIAG service, exécutez sqldiag START depuis la ligne de commande.
Si vous exécutez plusieurs instances de SQLdiag à l’aide de l’argument /A , vous pouvez également transmettre le nom de l’instance SQLdiag sur la ligne de commande lorsque vous démarrez le service. Utilisez, par exemple, la syntaxe suivante pour démarrer une instance SQLdiag nommée Instance1 :
sqldiag START /A Instance1
Vous pouvez également utiliser la net start commande pour démarrer le SQLDIAG service.
Quand il est redémarré, SQLdiagremplace le contenu du dossier de sortie actif. Pour éviter cela, spécifiez /N 2 sur la ligne de commande pour renommer le dossier de sortie au démarrage de l’utilitaire.
La suspension du service SQLdiag n’est pas prise en charge.
Exécuter plusieurs instances de SQLdiag
Exécutez plusieurs instances de SQLdiag sur le même ordinateur en spécifiant /A <SQLdiag_application_name> sur la ligne de commande. Ceci se révèle utile pour collecter différents jeux de diagnostics simultanément à partir de la même instance SQL Server . Vous pouvez, par exemple, configurer une instance nommée de SQLdiag pour qu’elle assure en continu la collecte de données peu volumineuses. Ensuite, si un problème spécifique se produit sur SQL Server, vous pouvez exécuter l’instance SQLdiag par défaut pour collecter des diagnostics pour ce problème, ou pour collecter un ensemble de diagnostics que les services de support technique Microsoft vous demandent de collecter pour diagnostiquer un problème.
Collecter des données de diagnostic à partir d’instances SQL Server en cluster
SQLdiag prend en charge la collecte des données de diagnostics à partir d’instances cluster SQL Server . Pour collecter des diagnostics à partir d’instances SQL Server en cluster, assurez-vous qu’il "." est spécifié pour l’attribut name de l’élément <Machine> dans le fichier SQLdiag.xml de configuration et ne spécifiez pas l’argument /G sur la ligne de commande. Par défaut, "." est spécifié pour l’attribut name dans le fichier de configuration et l’argument /G est désactivé. En règle générale, vous n’avez pas besoin de modifier le fichier de configuration ou de modifier les arguments de ligne de commande lors de la collecte à partir d’une instance SQL Server en cluster.
Lorsqu’il "." est spécifié comme nom de l’ordinateur, SQLdiag détecte qu’il s’exécute sur un cluster et récupère simultanément les informations de diagnostic de toutes les instances virtuelles de SQL Server installées sur le cluster. Si vous souhaitez collecter des informations de diagnostic à partir d’une seule instance virtuelle de SQL Server qui s’exécute sur un ordinateur, spécifiez que SQL Server virtuel pour l’attribut name de l’élément <Machine> dans SQLdiag.xml.
Remarque
Pour collecter des informations de traces de SQL Server Profiler à partir d'instances cluster SQL Server , les partages administratifs (ADMIN$) doivent être activés sur le cluster.