Utilitaire SQLdiag

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]

Avec SQL Server 2005, l'utilitaire SQLdiag a connu des changements substantiels. Les arguments de ligne de commande de cet outil ne sont pas compatibles avec la version SQL Server 2000. Cet utilitaire peut être amené à évoluer par la suite, ainsi les applications ou les scripts élaborés à partir de son comportement ou de ses arguments de ligne de commande peuvent ne pas fonctionner correctement dans les versions ultérieures qui seront développées.

SQLdiag peut recueillir les types suivants d'informations de diagnostic :

  • Journaux de performances Windows

  • Journaux d'événements Windows

  • SQL Server Profilertraces

  • Informations de blocage SQL Server

  • Informations de configuration SQL Server

Vous pouvez spécifier les types d'informations que vous souhaitez collecter par SQLdiag en modifiant le fichier de configuration SQLDiag.xml, 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 | via } ]
       [/Q] [/G] [/R] [/U] [/L] [/X] }
     |
     { [START | STOP | STOP_ABORT] }
     |
     { [START | STOP | STOP_ABORT] /A SQLdiag_application_name }

Arguments

  • /?
    Affiche les informations d'utilisation.

  • /Iconfiguration_file
    Définit le fichier de configuration que SQLdiag doit utiliser. Par défaut, /I possède la valeur SQLDiag.Xml.

  • /Ooutput_folder_path
    Redirige la sortie de SQLdiag vers le dossier spécifié. Si l'option /O n'est pas spécifiée, la sortie de SQLdiag est écrite dans un sous-dossier nommé SQLDIAG, sous le dossier de démarrage SQLdiag. Si le dossier SQLDIAG n'existe pas, SQLdiag tente de le créer.

    [!REMARQUE]

    L'emplacement du dossier de sortie varie en fonction de l'emplacement du dossier de support qui peut être spécifié à l'aide de l'option /P. Si vous voulez définir un emplacement complètement différent pour le dossier de sortie, spécifiez le chemin d'accès complet du répertoire pour /O.

  • /Psupport_folder_path
    Définit le chemin d'accès au dossier de support. Par défaut, l'option /P est définie sur le dossier qui contient le fichier 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 lors qu'il collecte des diagnostics. Si vous utilisez cette option pour définir un autre chemin d'accès aux fichiers de prise en charge, SQLdiag copiera automatiquement les fichiers de prise en charge indispensables dans le dossier spécifié s'ils ne s'y trouvent pas déjà.

    [!REMARQUE]

    Pour définir votre dossier actif comme chemin d'accès au support, spécifiez %cd% dans la ligne de commande comme suit :

    SQLDIAG /P %cd%

  • /Noutput_folder_management_option
    Indique si SQLdiag remplace ou renomme le dossier de sortie lors de 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_00002, etc. Une fois le dossier de sortie actif renommé, SQLdiag enregistre la nouvelle sortie dans le dossier de sortie par défaut, SQLDIAG.

    [!REMARQUE]

    SQLdiag n'ajoute pas la sortie au dossier de sortie actif lorsqu'il démarre. Il peut uniquement remplacer le dossier de sortie par défaut (option 1) ou renommer le dossier (option 2), puis enregistrer la sortie dans le nouveau dossier de sortie par défaut nommé SQLDIAG.

  • /Mmachine1 [ machine2machineN] | @machinelistfile
    Remplace les ordinateurs spécifiés dans le fichier de configuration. Par défaut, le fichier de configuration est SQLDiag.Xml ou est défini avec le paramètre /I. Lorsque vous spécifiez plusieurs ordinateurs, séparez chaque nom d'ordinateur avec un espace.

    Le paramètre @machinelistfile spécifie un nom de fichier de liste d'ordinateurs à stocker dans le fichier de configuration.

  • /Cfile_compression_type
    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 diagnostics dans le format suivant :

    AAAAMMJJ_HH:MM:SS

    L'heure est spécifiée en utilisant une notation de 24 heures. Par exemple, 2h00 de l'après-midi doit être spécifié sous la forme 14:00:00.

    Utilisez + sans la date (HH:MM:SS seulement) pour spécifier une heure relative à la date et l'heure actuelle. Par exemple, si vous spécifiez /B +02:00:00, SQLdiag attendra deux heures avant de démarrer la collecte d'informations.

    N'insérez pas d'espace entre + et la valeur de start_time spécifiée.

    Si vous spécifiez une heure de début dans le passé, SQLdiag modifie cette date de façon 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 si l'heure actuelle est 08:00:00, SQLdiag modifie la date de début de façon à ce que la date de début soit le lendemain.

    Notez que SQLdiag utilise l'heure locale sur l'ordinateur où l'utilitaire s'exécute.

  • /E [+]stop_time
    Spécifie la date et l'heure d'arrêt de la collecte des données de diagnostics dans le format suivant :

    AAAAMMJJ_HH:MM:SS

    L'heure est spécifiée en utilisant une notation de 24 heures. Par exemple, 2h00 de l'après-midi doit être spécifié sous la forme 14:00:00.

    Utilisez + sans la date (HH:MM:SS seulement) pour spécifier une heure relative à la date et l'heure actuelle. Par exemple si vous spécifiez une heure de début et une heure de fin avec /B +02:00:00 /E +03:00:00, SQLdiag attend 2 heures avant de démarrer la collecte d'informations, puis collecte des informations pendant trois heures avant de s'arrêter et de quitter. Si /B n'est pas spécifié, SQLdiag débute la collecte de diagnostics immédiatement et l'arrête à la date et l'heure spécifiées par /E.

    N'insérez pas d'espace entre + et la valeur de start_time ou de end_time spécifiée.

    Notez que SQLdiag utilise l'heure locale sur l'ordinateur où l'utilitaire s'exécute.

  • /A SQLdiag_application_name
    Permet d'exécuter plusieurs instances de l'utilitaire SQLdiag sur la même instance SQL Server.

    Chaque SQLdiag_application_name identifie une instance différente de SQLdiag. Il n'existe aucune relation entre une instance SQLdiag_application_name et un nom d'instance SQL Server.

    Il est possible d'utiliser SQLdiag_application_name pour démarrer ou arrêter une instance spécifique du service SQLdiag.

    Par exemple :

    SQLDIAG START /A SQLdiag_application_name

    Il est également possible de l'utiliser avec l'option /R pour enregistrer une instance spécifique de SQLdiag en tant que service. Par exemple :

    SQLDIAG /R /ASQLdiag_application_name

    [!REMARQUE]

    SQLdiag ajoute automatiquement le préfixe DIAG$ au nom de l'instance spécifié pour SQLdiag_application_name. Vous obtenez ainsi un nom de service pratique si vous inscrivez SQLdiag comme service.

  • /T { tcp [ ,port ] | np | lpc | via }
    Permet de se connecter à une instance de SQL Server en utilisant le protocole spécifié.

    • tcp [, port]
      Transmission Control Protocol/Internet Protocol (TCP/IP). 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 en utilisant 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 du SQL Server sur le même ordinateur.

    • via
      Protocole VIA (Virtual Interface Adapter). À utiliser pour le matériel VIA. Pour obtenir des informations sur l'utilisation du protocole VIA, contactez votre fournisseur de matériel.

    Pour plus d'informations sur les protocoles, consultez Choix d'un protocole réseau.

  • /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. Lorsque l'option /G est spécifiée, SQLdiag n'effectue pas les contrôles de connectivité de SQL Server au démarrage, il ne vérifie pas non plus l'adhésion de l'utilisateur au rôle de 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 l'option /G n'est pas spécifiée, SQLdiag détermine si l'utilisateur adhère au groupe Administrateurs de Windows et il ne collecte aucun diagnostic SQL Server s'il n'est pas Administrateurs membre de ce groupe.

  • /R
    Inscrit SQLdiag en tant que service. Tous les arguments de ligne de commande qui sont spécifiés lors de l'inscription de SQLdiag en tant que service sont conservés pour de futures exécutions du service.

    Lorsque SQLdiag est inscrit comme service, le nom du service par défaut est SQLDIAG. Vous pouvez modifiez ce nom au moyen de l'argument /A.

    Utilisez l'argument de ligne de commandeSTART pour démarrer le service.

    SQLDIAG START

    Vous pouvez également utiliser la commande net start 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 résiliez 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 également indiquée respectivement par le biais des arguments /B ou /E. 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 arguments /E ou /X.

    [!REMARQUE]

    SQLdiag ignore l'argument /L si aucune heure de début ni de fin n'est spécifiée à l'aide des arguments de ligne de commande /B et /E.

    L'utilisation de /L n'implique aucunement le mode service. Pour utiliser /L lors de l'exécution de SQLDiag en tant que service, spécifiez cet argument sur la ligne de commande au moment de l'inscription du service.

  • /X
    Exécute SQLdiag en mode de capture instantanée. SQLdiag effectue une capture instantanée de tous les diagnostics configurés puis s'arrête automatiquement.

  • START | STOP | STOP_ABORT
    Démarre ou arrête le service SQLdiag. STOP_ABORT oblige le service à s'arrêter le plus rapidement possible, sans terminer la collecte de diagnostics qui est en cours.

    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ée avec START, STOP ou STOP_ABORT pour prendre le contrôle d'une instance spécifique du service SQLdiag. Par exemple :

    SQLDIAG START /ASQLdiag_application_name

Spécifications de sécurité

Sauf si SQLdiag est exécuté en mode générique (avec l'argument de ligne de commande /G), l'utilisateur qui exécute SQLdiag doit être membre du groupe Administrateurs de Windows et membre du rôle de serveur fixe sysadmin de SQL Server. 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 diagnostics recueillies dépend de la nature et du volume de la charge de travail que le serveur traite et peut être comprise entre quelques mégaoctets et plusieurs gigaoctets.

Fichiers de configuration

Lors du 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 fichier de configuration SQLDiag.Xml ; ce fichier, extrait chaque fois que l'outil s'exécute, 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.

Modification des fichiers de configuration

Vous pouvez copier et modifier SQLDiag.Xml pour changer les types de données de diagnostics collectées parSQLdiag. 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. Ne modifiez pas SQLDiag.Xml directement. Effectuez plutôt une copie de SQLDiag.Xml dans le même dossier et attribuez-lui un nouveau nom. Puis, modifiez le nouveau fichier et utilisez l'argument /I pour le passer à SQLdiag.

Modification du fichier de configuration lors de l'exécution de SQLdiag en tant que service

Si vous avez déjà exécuté SQLdiag en tant que service et devez modifier le fichier de configuration, annulez l'inscription du service SQLDIAG en spécifiant l'argument de ligne de commande /U, puis réinscrivez le service avec l'argument de ligne de commande /R. 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 un dossier de sortie avec l'argument /O, SQLdiag crée un sous-dossier nommé SQLDIAG sous le dossier de démarrage de SQLdiag. Pour la collecte d'informations de diagnostics impliquant un suivi à grand volume, tel que SQL Server Profiler, assurez-vous que le dossier de sortie se trouve sur un lecteur local offrant suffisamment d'espace pour stocker la sortie de diagnostics demandée.

Lorsqu'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

Lorsque SQLdiag démarre, il effectue les contrôles d'initialisation nécessaires pour collecter les données de diagnostics qui ont été spécifiées dans SQLDiag.Xml. Ce processus peut prendre plusieurs secondes. Après que SQLdiag a démarré la collecte de données de diagnostics lorsqu'il est exécuté en tant qu'application de console, un message s'affiche vous informant que la collecte de SQLdiag a commencé et que vous pouvez appuyer sur CTRL+C pour l'arrêter. Lorsque 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 la réception de 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 sqlcmd de SQL Server ou le processeur de commandes Windows, sauf lorsque 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êt de la collecte de données

Après que SQLdiag a démarré la collecte de données de diagnostics, il poursuit celle-ci sauf si vous l'arrêtez ou s'il est configuré pour s'arrêter à une heure spécifiée. Vous pouvez configurer SQLdiag pour s'arrêter à une heure spécifique avec l'argument /E, qui permet de spécifier une heure d'arrêt ou avec l'argument /X, qui demande l'exécution de SQLdiag en mode de capture instantanée.

Lorsque SQLdiag s'arrête, il arrête tous les diagnostics qu'il a commencés. Par exemple, il arrête les traces du 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.

[!REMARQUE]

L'interruption du service SQLdiag n'est pas prise en charge. Si vous tentez de suspendre le service SQLdiag, il s'arrêtera 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 suite à une interruption, l'application remplacera le dossier de sortie en se lançant. Pour éviter le remplacement de ce dossier, spécifiez /N 2 sur la ligne de commande.

Pour arrêter SQLdiag lorsqu'il s'exécute 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 s'exécute pour l'arrêter. Après que vous avez appuyé sur CTRL+C, un message s'affiche dans la fenêtre de console pour vous informer que la collecte de données SQLDiag se termine et que vous devez attendre l'arrêt du processus, 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.

Pour arrêter SQLdiag lorsqu'il s'exécute en tant que service

Si vous exécutez SQLdiag en tant que service, exécutez SQLDiag STOP dans le dossier de démarrage SQLdiag pour l'arrêter.

Si vous exécutez plusieurs instances de SQLdiag sur le même ordinateur, vous pouvez également mentionner le nom de l'instance SQLdiag sur la ligne de commande lorsque vous suspendez le service. Utilisez, par exemple, la syntaxe suivante pour arrêter une instance SQLdiag nommée Instance1 :

SQLDIAG STOP /A Instance1

[!REMARQUE]

/A est le seul argument de ligne de commande pouvant être utilisé avec START, STOP ou STOP_ABORT. Si vous devez spécifier une instance nommée de SQLdiag avec un des verbes de contrôle du service, placez /A après le verbe de contrôle sur la ligne de commande, comme illustré 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 suspendre le service SQLdiag. N'utilisez pas la console Services Windows pour arrêter SQLdiag ou d'autres services SQL Server.

Démarrage et arrêt automatiques de SQLdiag

Pour démarrer et arrêter automatiquement la collecte de données de diagnostics à une heure spécifiée, utilisez les arguments /Bstart_time et /Estop_time en vous servant d'une notation horaire sur 24 heures. Par exemple, si vous dépannez un problème qui apparaît constamment vers 02:00:00, vous pouvez configurer SQLdiag pour qu'il démarre automatiquement la collecte de données de diagnostics à 01:00 et l'arrête à 03:00:00. Utilisez les arguments /B et /E pour spécifier l'heure de démarrage et d'arrêt. Utilisez la notation 24 heures pour spécifier des dates et heures précises de démarrage et d'arrêt avec le format AAAAMMJJ_HH:MM:SS. Pour spécifier des heures de démarrage et d'arrêt relatives, utilisez le préfixe + devant ces heures et omettez la partie de la date (AAAAMMJJ_) comme dans l'exemple suivant, qui demande à SQLdiag d'attendre une heure avant de commencer la collecte d'informations, d'exécuter celle-ci pendant 3 heures, puis de s'arrêter et de quitter :

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

Lorsqu'une valeur start_time relative est spécifiée, SQLdiag commence à une heure qui est cohérente par rapport à la date et l'heure actuelles. Lorsqu'une valeur end_time relative est fournie, SQLdiag se termine à une heure qui est chronologiquement cohérente par rapport à la valeur start_time spé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. Comme SQLDiag règle automatiquement les dates de début et de fin au jour suivant lorsqu'elles se produisent dans le passé, dans cet exemple la collecte des diagnostics commence à 09:00 aujourd'hui (une heure de début relative a été spécifiée avec +) et se poursuit jusqu'à 08:30 le lendemain matin.

Arrêt et redémarrage de SQLdiag pour collecter des diagnostics quotidiennement

Pour collecter un ensemble de diagnostics sur une base quotidienne sans devoir démarrer et arrêter manuellement SQLdiag, utilisez l'argument /L. L'argument /L demande à SQLdiag de s'exécuter de façon continue en redémarrant automatiquement après un arrêt programmé. Lorsque l'option /L est spécifiée et que SQLdiag s'arrête parce qu'il a atteint l'heure de fin définie avec l'argument /E, ou qu'il s'arrête parce qu'il s'exécute en mode de capture instantanée avec l'argument /X, SQLdiag redémarre au lieu de se fermer.

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 une capture instantanée de données de diagnostics à 03:00:00.

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

Exécution de SQLdiag en tant que service

Lorsque vous souhaitez utiliser SQLdiag pour collecter des données de diagnostics pendant de longues périodes durant lesquelles vous pourriez devoir vous déconnecter de l'ordinateur sur lequel s'exécute SQLdiag, vous pouvez l'exécuter en tant que service.

Pour inscrire SQLDiag afin qu'il s'exécute 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. Pour inscrire SQLdiag pour 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 préservés et réutilisés lors du démarrage du service.

Si vous voulez modifier le nom de service SQLDIAG par défaut, utilisez l'argument de ligne de commande /A pour spécifier un autre nom. SQLdiag ajoute automatiquement le préfixe DIAG$ à tout nom d'instance SQLdiag spécifié à l'aide l'argument /A pour créer des noms de services explicites et pratiques d'utilisation.

Pour annuler l'instruction du service SQLDIAG

Pour annuler l'inscription du service, spécifiez l'argument /U. La résiliation de l'inscription de SQLdiag en tant que service supprime également les clés de Registre Windows associées au service SQLDIAG.

Pour démarrer ou redémarrer le service SQLDIAG

Pour démarrer ou redémarrer le service SQLDIAG, exécutez SQLDiag START à partir de la ligne de commande.

Si vous exécutez plusieurs instances de SQLdiag par le biais de l'argument /A, vous pouvez également mentionner 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 commande net start pour démarrer le service SQLDIAG.

Lorsqu'il est redémarré, SQLdiag remplace le contenu du dossier de sortie actif. Pour éviter cela, spécifiez /N 2 sur la ligne de commande afin de renommer le dossier de sortie au redémarrage de l'utilitaire.

L'interruption du service SQLdiag n'est pas prise en charge.

Exécution de plusieurs instances de SQLdiag

Exécutez plusieurs instances de SQLdiag sur le même ordinateur en spécifiant /ASQLdiag_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. De cette façon, si un problème particulier survient sur SQL Server, vous avez la possibilité d'exécuter l'instance SQLdiag par défaut pour collecter des diagnostics sur le problème ou réunir un jeu de diagnostics que les services d'assistance de Microsoft demanderont en vue d'émettre un diagnostic.

Collecte de données de diagnostics à partir d'instances cluster de SQL Server

SQLdiag prend en charge la collecte des données de diagnostics à partir d'instances cluster SQL Server. Pour recueillir des diagnostics à partir d'instances cluster SQL Server, vérifiez que « . » est spécifié pour l'attribut name de l'élément <Machine> dans le fichier de configuration SQLDiag.Xml 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é. Il n'est généralement pas nécessaire de modifier le fichier de configuration ni les arguments de ligne de commande lors d'une collecte effectuée à partir d'une instance cluster SQL Server.

Lorsque « . » est spécifié comme nom de l'ordinateur, SQLdiag détecte qu'il fonctionne sur un cluster et récupère simultanément les informations des diagnostics à partir de toutes les instances virtuelles de SQL Server installées sur ce cluster. Pour collecter des informations de diagnostics depuis une seule instance virtuelle de SQL Server s'exécutant sur un ordinateur, spécifiez cette instance SQL Server 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.

Voir aussi

Concepts