Comment faire pour utiliser l’utilitaire Sqldumper.exe pour générer un fichier de vidage dans SQL Server

Résumé

L’utilitaire Sqldumper.exe est inclus avec Microsoft SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2008 R2 et Microsoft SQL Server 2012. Cet article décrit comment utiliser l’utilitaire Sqldumper.exe pour générer un fichier de vidage pour les rapports d’erreur Watson ou pour des tâches de débogage.

Plus d'informations

Vous pouvez utiliser l’utilitaire Sqldumper.exe pour générer un fichier de vidage sur demande pour n’importe quelle application de Microsoft Windows. Par exemple, vous pouvez générer un fichier de vidage pour le débogage d’un problème d’application lorsqu’un ordinateur qui exécute SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2008 R2, ou Microsoft SQL Server 2012 ne répond pas aux demandes des utilisateurs. Un fichier de vidage peut être un fichier minidump, un fichier de vidage complet ou un fichier de vidage filtré.

Toutefois, vous ne pouvez pas utiliser l’utilitaire Sqldumper.exe pour le débogage d’usage général. Pour plus d’informations sur le débogage de l’objectif général, visitez le site Web de Microsoft à l’adresse suivante :Le processus SQL Server appelle l’utilitaire Sqldumper.exe en interne pour générer un fichier de vidage lorsque le processus rencontre toutes les exceptions. SQL Server transmet les indicateurs à l’utilitaire Sqldumper.exe. Vous pouvez utiliser les indicateurs de trace permet de modifier les indicateurs de SQL Server passe à l’utilitaire dans le contexte d’une exception ou dans le contexte d’une assertion. Ces indicateurs de trace sont dans la plage comprise entre 2540 2559. Vous pouvez utiliser ces indicateurs de trace pour générer certains types de fichiers de vidage. Par exemple :
  • L’indicateur de trace 2551 : Génère une image mémoire filtrée
  • L’indicateur de trace 2544 : Génère une image mémoire complète
  • L’indicateur de trace 2546 : Exporte tous les threads de SQL Server dans le fichier de vidage
  • L’indicateur de trace 8026 : SQL Server efface un dumptrigger après avoir généré le vidage une fois
Si deux ou plusieurs indicateurs de trace sont actives, l’option qui indique la plus grande image mémoire sera respectée. Si les indicateurs de trace 2551 et 2544 sont utilisées, SQL Server crée une image mémoire complète.

Comment faire pour obtenir un identificateur de processus d’application Microsoft Windows

Pour générer un fichier de vidage à l’aide de l’utilitaire Sqldumper.exe, vous devez disposer de l’identificateur de processus de l’application Windows pour laquelle vous souhaitez générer un fichier de vidage. Pour obtenir l’identificateur de processus, procédez comme suit :
  1. Appuyez sur CTRL + ALT + SUPPR, puis cliquez sur Gestionnaire des tâches.
  2. Dans la boîte de dialogue Gestionnaire des tâches Windows , cliquez sur l’onglet processus .
  3. Dans le menu affichage , cliquez sur Sélectionner les colonnes.
  4. Dans la boîte de dialogue Sélectionner les colonnes , cliquez pour sélectionner la case à cocher PID (identificateur de processus) , puis cliquez sur OK.
  5. Notez l’identificateur de processus de l’application Windows pour laquelle vous souhaitez générer un fichier de vidage. Pour l’application de SQL Server, notez l’identificateur de processus du processus Sqlservr.exe.
  6. Fermez Le Gestionnaire des tâches.
Vous pouvez également obtenir l’identificateur de processus de l’application de SQL Server est en cours d’exécution sur votre ordinateur à l’aide du fichier journal des erreurs de SQL Server. Par exemple, la partie du fichier journal des erreurs SQL Server semblable à la suivante :

2006-04-18 09:53:03.94 serveur de Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)

Le 14 octobre 2005 00:33:37

Copyright (c) 1988-2005 Microsoft Corporation

Édition entreprise sur Windows NT 5.2 (3790 de Build : le Service Pack 1)



2006-04-18 09:53:03.94 Server (c) 2005 Microsoft Corporation.

2006-04-18 09:53:03.94 Server tous droits réservés.

ID du processus serveur 2006-04-18 09:53:03.94 est 3716.

Le nombre qui apparaît après l’ID de processus serveur est l’identificateur de processus pour le processus Sqlservr.exe.

Comment faire pour exécuter l’utilitaire Sqldumper.exe

Exécutez l’utilitaire Sqldumper.exe dans le contexte du dossier dans lequel SQL Server initialement installé l’utilitaire. Par défaut, le chemin d’accès de l’installation de l’utilitaire Sqldumper.exe est la suivante :
SQLServerInstallDrive: \Program Files\Microsoft SQL Server\90\Shared\SQLDumper.exe
Remarque : SQLServerInstallDrive est un espace réservé pour le lecteur où vous avez installé SQL Server 2005.

Pour générer un fichier de vidage à l’aide de l’utilitaire Sqldumper.exe, procédez comme suit :
  1. Ouvrez le dossier suivant :
    SQLServerInstallDrive: \Program Files\Microsoft SQL Server\numéro\Shared
    Remarque Dans ce chemin d’accès du dossier, le nombre est un espace réservé pour l’une des opérations suivantes :
    • Le nom du dossier est 110 pour SQL Server 2012.
    • Le nom du dossier est de 100 pour SQL Server 2008.
    • Le nom du dossier 90 pour SQL Server 2005.

  2. Assurez-vous que le fichier Dbghelp.dll est dans ce dossier.
  3. Cliquez sur Démarrer, sur exécuter, tapez cmd, puis cliquez sur OK.
  4. À l’invite de commandes, tapez la commande suivante et appuyez sur ENTRÉE :
    CD SQLServerInstallDrive: \Program Files\Microsoft SQL Server\numéro\Shared
    Remarque Dans ce chemin d’accès du dossier, le nombre est un espace réservé pour l’une des opérations suivantes :
    • Le nom du dossier est 110 pour SQL Server 2012.
    • Le nom du dossier est de 100 pour SQL Server 2008.
    • Le nom du dossier 90 pour SQL Server 2005.
  5. Pour générer un type spécifique de fichier de vidage, tapez la commande correspondante à l’invite de commande et appuyez sur ENTRÉE :
    • Fichier de vidage complet
      Sqldumper.exe ProcessID 0 0x01100
    • Fichiers de mini vidage
      Sqldumper.exe ProcessID 0 0 x 0120
    • Fichier minidump qui inclut la mémoire référencée indirectement
      Sqldumper.exe ProcessID 0 0x0120:40
    • Fichier de vidage filtré
      Sqldumper.exe ProcessID 0 0x8100
    Remarque : ProcessID est un espace réservé pour l’identificateur de processus de l’application Windows pour laquelle vous souhaitez générer un fichier de vidage.
Si l’utilitaire Sqldumper.exe s’exécute correctement, l’utilitaire génère un fichier de vidage dans le dossier dans lequel l’utilitaire est installé.

L’utilitaire Sqldumper.exe génère le fichier de vidage comprend un modèle de nom de fichier semblable au suivant :
SQLDmprxxxx.mdmp
Dans ce modèle, le xxxx est un nombre croissant qui est déterminé en fonction des autres fichiers ayant un même nom de fichier dans le même dossier. Si vous avez déjà des fichiers qui ont des noms de fichiers dans le modèle spécifié dans le dossier, vous devrez peut-être comparer la date et l’heure à laquelle le fichier a été créé pour identifier le fichier que vous souhaitez.

Considérations et des informations supplémentaires

Lorsque l’utilitaire Sqldumper.exe génère un fichier dump pour une application Windows, le fichier de vidage peut-être être aussi grand que la mémoire qui utilise actuellement l’application Windows. Assurez-vous que suffisamment d’espace disque est disponible sur le lecteur sur lequel l’utilitaire Sqldumper.exe écrit le fichier de vidage.

Vous pouvez spécifier le répertoire où vous souhaitez que l’utilitaire Sqldumper.exe à écrire dans le fichier de vidage. Le répertoire doit exister avant d’exécuter l’utilitaire Sqldumper.exe. Dans le cas contraire, l’utilitaire Sqldumper.exe échouera. N’utilisez pas un chemin d’accès UNC comme emplacement pour le fichier de vidage. Voici un exemple de la façon de spécifier l’emplacement du fichier de vidage du fichier minidump :
  1. Cliquez sur Démarrer, sur exécuter, tapez cmd, puis cliquez sur OK.
  2. À l’invite de commandes, tapez la commande suivante et appuyez sur ENTRÉE :
    CD SQLServerInstallDrive: \Program Files\Microsoft SQL Server\numéro\Shared
    Remarque Dans ce chemin d’accès du dossier, le nombre est un espace réservé pour l’une des opérations suivantes :
    • Le nom du dossier est 110 pour SQL Server 2012.
    • Le nom du dossier est de 100 pour SQL Server 2008.
    • Le nom du dossier 90 pour SQL Server 2005.
  3. Tapez la commande suivante à l’invite de commandes et appuyez sur ENTRÉE :
    Sqldumper.exe ProcessID 0 0 x 0120 0 MdumpPath
    Remarque : MdumpPath est un espace réservé pour le répertoire où vous souhaitez que l’utilitaire Sqldumper.exe à écrire dans le fichier de vidage. Par défaut, le fichier est écrit dans le dossier en cours.
Si vous spécifiez un fichier de vidage complet ou un fichier de vidage filtré à générer, l’utilitaire Sqldumper.exe peut prendre plusieurs minutes pour générer le fichier de vidage. La durée dépend des variables suivantes :
  • La quantité de mémoire utilisée par l’utilitaire Sqldumper.exe
  • La vitesse du lecteur sur lequel l’utilitaire écrit le fichier de vidage
Pendant ce temps, l’utilitaire Sqldumper.exe ne traitera pas de commandes. Vous remarquerez que le serveur a cessé de répondre. En outre, un cluster de basculement peut se produire.

Pour exécuter l’utilitaire Sqldumper.exe, vous devez ouvrir une session Windows à l’aide d’une des méthodes suivantes :
  • Utiliser un compte qui est membre du groupe Administrateurs sur l’ordinateur.
  • Utilisez le même compte d’utilisateur sous lequel le service SQL Server est en cours d’exécution.
Pour que l’utilitaire Sqldumper.exe fonctionner correctement via le Bureau à distance ou Services Terminal Server, vous devez démarrer les Services Terminal Server ou Bureau à distance en mode console. Par exemple, pour démarrer le Bureau à distance en mode console, cliquez sur Démarrer, sur exécuter, tapez mstsc /console, puis cliquez sur OK. N’oubliez pas que si le serveur cible exécute Windows 2000, l’option /console est ignorée en mode silencieux. Vous pouvez vous connecter au serveur via le Bureau à distance. Mais vous n’utiliserez pas la session de console.
Si vous remarquez qu’aucun fichier de vidage n’a été généré dans le dossier en cours, après avoir exécuté l’utilitaire Sqldumper.exe, passer en revue les informations que l’utilitaire a généré sur la ligne de commande pour tenter de déterminer la cause de l’échec. Ces informations sont également consignées dans le fichier fichier Sqldumper_errorlog.log dans le répertoire en cours. Voici deux messages d’erreur possibles et leurs causes :
Message 1
Échec de OpenProcess 0 x 57 - le paramètre est incorrect

Non valide, ID de processus a été passé à l’utilitaire Sqldumper.exe.
Message 2
Valeur non valide pour l’id de thread - erreur de paramètre < paramètre non valide >

Un paramètre non valide a été passé à l’utilitaire Sqldumper.exe.

Si un message d’erreur semblable à l’un des éléments suivants est généré, vous pouvez ignorer ce message :

Type de rappel inconnue pendant minidump 6
Type de rappel inconnue pendant minidump 7

Les basculements de cluster et de l’utilitaire Sqldumper.exe

Dans les scénarios de basculement de cluster, la ressource SQL Server DLL pouvez désormais obtenir un fichier de vidage avant le basculement se produit. Lorsque la DLL de ressource SQL Server détermine qu’une ressource SQL Server a échoué, la ressource SQL Server DLL utilise l’utilitaire Sqldumper.exe pour obtenir un fichier de vidage du processus SQL Server. Pour vous assurer que l’utilitaire Sqldumper.exe génère correctement le fichier de vidage, vous devez définir les trois propriétés suivantes comme composants requis :
  • SqlDumperDumpTimeOut
    Un délai d’attente spécifié par l’utilisateur. La ressource que DLL attend que le fichier de vidage soient terminées avant de la DLL de ressource s’arrête le service SQL Server.
  • SqlDumperDumpPath
    L’emplacement où l’utilitaire Sqldumper.exe génère le fichier de vidage.
  • SqlDumperDumpFlags
    Signale que l’utilitaire Sqldumper.exe utilise.
Si l’une des propriétés n’est pas définie, l’utilitaire Sqldumper.exe ne peut pas générer le fichier de vidage. Un message d’avertissement est enregistré dans le journal des événements et dans le journal de cluster chaque fois que la ressource est mise en ligne.

Pour définir les propriétés d’utilitaire Sqldumper.exe pour le basculement de cluster, procédez comme suit :
  1. Cliquez sur Démarrer, sur exécuter, tapez cmd, puis cliquez sur OK.
  2. Pour chaque propriété, tapez la commande correspondante à l’invite de commande et appuyez sur ENTRÉE :
    • La propriété SqlDumperDumpFlags
      Pour définir la propriété SqlDumperDumpFlags pour un type spécifique de fichier de vidage, tapez la commande correspondante à l’invite de commande et appuyez sur ENTRÉE :
      • Tous les fichiers de vidage complet de thread
        • Instance par défaut
          « SQL Server » /priv SqlDumperDumpFlags la ressource de cluster = 0x01100
        • Instance nommée
          « SQL Server (INSTANCE1) » /priv SqlDumperDumpFlags la ressource de cluster = 0x01100
      • Tous les fichiers de mini vidage thread
        • Instance par défaut
          « SQL Server » /priv SqlDumperDumpFlags la ressource de cluster = 0 x 0120
        • Instance nommée
          « SQL Server (INSTANCE1) » /priv SqlDumperDumpFlags la ressource de cluster = 0 x 0120
      • Filtrer tous les fichiers de vidage de thread
        • Instance par défaut
          « SQL Server » /priv SqlDumperDumpFlags la ressource de cluster = 0x8100
        • Instance nommée
          « SQL Server (INSTANCE1)» /priv SqlDumperDumpFlags la ressource de cluster = 0x8100
    • La propriété SqlDumperDumpPath
      « SQL Server » /priv SqlDumperDumpPath la ressource de cluster = DirectoryPath
      Remarque : DirectoryPath est un espace réservé pour le répertoire dans lequel le fichier de vidage est généré, et il doit être spécifié entre guillemets ( » «).
    • La propriété SqlDumperDumpTimeOut
      « SQL Server » /priv SqlDumperDumpTimeOut la ressource de cluster = délai d’attente
      Remarque : Délai d’attente est un espace réservé pour le délai d’attente en millisecondes (ms).

      L’heure à laquelle l’utilitaire permet de générer un fichier de vidage d’un processus de SQL Server dépend de la configuration de l’ordinateur. Pour un ordinateur disposant de beaucoup de mémoire, cette durée peut être significative. Pour obtenir une estimation du temps utilisé par le processus, utilisez l’utilitaire Sqldumper.exe pour générer manuellement un fichier de vidage. Les valeurs valides pour la propriété SqlDumperDumpTimeOut sont à partir de ms 10000 MAXDWORD. MAXDWORD représente la valeur la plus élevée de la plage du type de données DWORD (4294967295).
Pour vérifier que les paramètres ont été activés, vous pouvez exécuter la commande suivante :

cluster resource « SQL Server » /priv »

Pour supprimer l’utilitaire Sqldumper.exe pour le basculement de cluster, procédez comme suit :
  1. Cliquez sur Démarrer, sur exécuter, tapez cmd, puis cliquez sur OK.
  2. Pour une propriété spécifique, tapez la commande correspondante à l’invite de commande et appuyez sur ENTRÉE :
    • La propriété SqlDumperDumpFlags
      • Instance par défaut
        cluster de ressource « SQL Server » /priv:SqlDumperDumpFlags /usedefault
      • Instance nommée
        cluster de ressource « de SQL Server (INSTANCE1) » /priv:SqlDumperDumpFlags /usedefault
    • La propriété SqlDumperDumpPath
      • Instance par défaut
        cluster de ressource « SQL Server » /priv:SqlDumperDumpPath /usedefault
      • Instance nommée
        cluster de ressource « de SQL Server (INSTANCE1)» /priv:SqlDumperDumpPath /usedefault
    • La propriété SqlDumperDumpTimeOut
      • Instance par défaut
        cluster de ressource « SQL Server » /priv:SqlDumperDumpTimeOut /usedefault
      • Instance nommée
        cluster de ressource « de SQL Server (INSTANCE1)» /priv:SqlDumperDumpTimeOut /usedefault
Propriétés

ID d'article : 917825 - Dernière mise à jour : 27 janv. 2017 - Révision : 2

Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Express Edition

Commentaires