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

S’applique à : SQL Server 2012 StandardSQL Server 2012 EnterpriseSQL Server 2012 Developer

Résumé


L’utilitaire Sqldumper. exe est inclus dans Microsoft SQL Server. Cet article décrit comment utiliser l’utilitaire Sqldumper. exe pour générer un fichier de vidage pour signaler des erreurs Watson ou pour des tâches de débogage.
Remarquesen plus de l’utilitaire Sqldumper. exe, les méthodes suivantes sont également disponibles :

Avertissement La génération de fichiers de vidage de processus peut affecter la disponibilité du service (ici, SQL Server) et le basculement de ressources dans toujours les contextes (par exemple, l’instance de cluster de basculement et le groupe disponibilité). Les options qui sont utilisées pour générer les fichiers de vidage peuvent avoir une grande différence. Assurez-vous que vous lisez l' impact des sections de génération de vidage et detype vidage .

Lorsque vous capturez un fichier de vidage de processus SQL Server (en particulier un fichier de vidage filtré ou un fichier de vidage complet) sur un serveur SQL Server groupé ou un serveur SQL Server hébergeant une instance de groupe de disponibilité AlwaysOn, le serveur SQL Server ou AG peut basculer sur un autre nœud si le fichier de vidage prend trop de temps à s’exécuter. Pour éviter le basculement potentiel, vous pouvez utiliser les paramètres suivants avant de capturer le fichier de vidage, et vous pouvez rétablir la modification après le prélèvement d’un fichier de vidage :

  • Pour le serveur SQL Server (ICF) groupé, cliquez avec le bouton droit sur ressource SQL Server dans l’administrateur de cluster, puis sélectionnez "si la ressource échoue, ne pas redémarrer" sous l’onglet stratégies .
  • Pour AG, appliquez tous les paramètres suivants :
    • Augmentez le délai d’expiration de session, par exemple 120 secondes pour tous les réplicas. Dans SQL Server Management Studio, cliquez avec le bouton droit sur le réplica à configurer, puis cliquez sur Propriétés. Modifiez le champ session-délai d’expiration (secondes) en 120 secondes. Pour plus d’informations, voir modifier la période de temporisation de session pour une réplique de disponibilité (SQL Server).
    • Changez le « basculement automatique » de tous les réplicas en « basculement manuel ». Dans SQL Server Management Studio, cliquez avec le bouton droit sur fac-similé, sélectionnez Propriétés, puis changez le « basculement automatique » de tous les réplicas en « basculement manuel » sous l’onglet PropriétésPour plus d’informations, voir modifier le mode de basculement d’une réplique de disponibilité (SQL Server).
    • Augmentez la « LeaseTimeout » vers 60 000 MS (60 secondes) et remplacez HealthCheckTimeout par 90 000 MS (90 secondes). Dans l’administrateur de cluster, cliquez avec le bouton droit sur ressource AG, sélectionnez Propriétés, puis basculez vers l’onglet Propriétés pour modifier les deux paramètres. Pour plus d’informations, voir configurer les paramètres de propriété HealthCheckTimeout.

Informations supplémentaires


Exécution manuelle de l’utilitaire Sqldumper. exe

Exécutez l’utilitaire Sqldumper. exe conformément au contexte du dossier dans lequel SQL Server a installé l’utilitaire. Par défaut, le chemin d’installation de l’utilitaire Sqldumper. exe est le suivant :SQLServerInstallDrive: \Program Files\Microsoft SQL Server\90\Shared\SQLDumper.exenote SQLServerInstallDrive est un espace réservé pour le lecteur sur lequel 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 \Number\Sharednotedans ce chemin de dossier, le nombre est un espace réservé pour l’une des options suivantes :
    • 140 pour SQL Server 2017
    • 130 pour SQL Server 2016
    • 120 pour SQL Server 2014
    • 110 pour SQL Server 2012
    • 100 pour SQL Server 2008
    • 90 pour SQL Server 2005
  2. Assurez-vous que le fichier dbghelp. dll figure 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, puis appuyez sur Entrée : cd SQLServerInstallDrive:\Program Files\Microsoft SQL Server\number\Shared RemarqueDans ce chemin d’accès au dossier, nombre est l’espace réservé modifié par la version SQL Server, comme décrit précédemment.
  5. Pour générer un type spécifique de fichier de vidage, tapez la commande correspondante à l’invite de commandes, puis appuyez sur entrée :
    • Fichier de vidage complet
      Sqldumper. exe ProcessID 0 0x01100
    • Fichier de mini-vidage
      Sqldumper. exe ProcessID 0 0x0120
    • Fichier de mini-vidage incluant une mémoire indirecte. Il s’agit de l’option recommandée qui est utilisée par défaut par SQL Server lors de la génération automatique de mémoire
      Sqldumper. exe ProcessID 0 0x0128
    • 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 voulez 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 où l’utilitaire est installé.Le fichier de vidage généré par l’utilitaire Sqldumper. exe a un modèle de nom de fichier qui ressemble à ce qui suit :
SQLDmprxxxx.mdmp
Dans ce modèle, xxxx est une valeur croissante qui est déterminée en fonction des autres fichiers qui présentent un nom de fichier similaire dans le même dossier. Si vous avez déjà des fichiers dans le dossier qui contiennent des noms de fichiers dans le modèle spécifié, il est possible que vous deviez comparer la date et l’heure de création du fichier pour identifier le fichier souhaité.

Informations et considérations supplémentaires

SQLDumper. exe existe principalement pour générer des vidages de mémoire pour le processus SQL Server dans des scénarios dans lesquels une image mémoire est nécessaire pour résoudre des problèmes spécifiques (exceptions, affirmations, planificateurs sans rendement, etc.). Dans ces cas, SQL Server appelle SQLDumper. exe pour générer une image de mémoire de son processus. Le vidage de la mémoire est stocké dans un chemin d’accès configuré dans le Gestionnaire de configuration SQL Server avec un répertoire MSSQL\LOG\ d’emplacement par défaut.  Dans certains cas, par exemple, si la taille de l’image de l’image est trop importante, vous pouvez modifier la trajectoire en procédant comme suit : 

  1. Ouvrez le Gestionnaire de configuration SQL Server
  2. Sous SQL Server services , recherchez le serveur SQL Server en examen
  3. Cliquez avec le bouton droit sur le fichier, sélectionnez Propriétés , puis accédez à l’onglet avancé .
  4. Modifiez le répertoire de vidage pour le chemin d’accès de votre choix, puis cliquez sur OK.
  5. Redémarrez SQL Server (quand cela est possible) pour que le nouveau paramètre prenne effet.

Lorsque l’utilitaire Sqldumper. exe est utilisé manuellement pour générer un fichier de vidage pour une application Windows, le fichier de vidage peut être aussi volumineux que la mémoire utilisée par l’application Windows. Assurez-vous que l’espace disque disponible est suffisant sur le lecteur sur lequel l’utilitaire Sqldumper. exe rédige le fichier de vidage.Vous pouvez spécifier le répertoire dans lequel vous voulez que l’utilitaire Sqldumper. exe rédige le fichier de vidage. Le répertoire doit déjà exister avant d’exécuter l’utilitaire Sqldumper. exe. Dans le cas contraire, l’utilitaire Sqldumper. exe ne fonctionne pas. N’utilisez pas de chemin d’accès UNC en tant qu’emplacement pour le fichier de vidage. Voici un exemple illustrant comment spécifier l’emplacement du fichier de vidage du fichier de mini-vidage :

  1. Cliquez sur Démarrer, sur Exécuter, tapez cmd, puis cliquez sur OK.
  2. À l'invite de commandes, tapez la commande suivante, puis appuyez sur Entrée :
    cd SQLServerInstallDrive:\Program Files\Microsoft SQL Server\number\Shared
    Remarque Dans ce chemin de dossier, le nombre est un espace réservé pour l’une des options suivantes :
    • 140 pour SQL Server 2017
    • 130 pour SQL Server 2016
    • 120 pour SQL Server 2014
    • 110 pour SQL Server 2012
    • 100 pour SQL Server 2008
    • 90 pour SQL Server 2005
  3. Tapez la commande suivante à l'invite de commandes, puis appuyez sur Entrée : Sqldumper.exe ProcessID 0 0x0128 0 MdumpPath Remarque MdumpPath est un espace réservé pour le répertoire où vous voulez que l’utilitaire Sqldumper. exe rédige le fichier de vidage. Par défaut, le fichier est écrit dans le dossier actif.
Si vous spécifiez un fichier de vidage complet ou un fichier de vidage filtré à générer, l’utilitaire Sqldumper. exe risque de prendre quelques minutes pour générer le fichier de vidage. Le temps dépend des variables suivantes :
  • La quantité de mémoire utilisée par l’utilitaire Sqldumper. exe
  • Vitesse du lecteur sur lequel l’utilitaire rédige le fichier de vidage.

Pendant ce temps, l’utilitaire Sqldumper. exe ne traitera pas les commandes. Vous remarquerez que le serveur a cessé de répondre. Par ailleurs, un basculement de cluster est susceptible de se produire.Pour exécuter l’utilitaire Sqldumper. exe, vous devez vous connecter à Windows en utilisant l’une des méthodes suivantes :

  • Utilisez un compte membre du groupe Administrateurs sur l’ordinateur.
  • Utiliser le même compte d’utilisateur que le service SQL Server exécuté.
Pour que l’utilitaire Sqldumper. exe fonctionne correctement via le Bureau à distance ou via les services Terminal Server, vous devez démarrer le Bureau à distance ou les services Terminal Server en mode de console. Par exemple, pour démarrer Bureau à distance en mode console, cliquez sur Démarrer, sur exécuter, tapez mstsc/console, puis cliquez sur OK. Sachez que si le serveur cible exécute Windows 2000, l’option /console est ignorée silencieusement. Vous pouvez vous connecter au serveur via Bureau à distance. Vous n’utiliserez pas la session de la console.
Si vous remarquez qu’aucun fichier de vidage n’a été généré dans le dossier actif après l’exécution de l’utilitaire Sqldumper. exe, passez en revue les informations que l’utilitaire a générée à la ligne de commande pour essayer de déterminer la cause possible de l’échec. Ces informations sont également enregistrées dans le fichier Sqldumper_errorlog. log dans l’annuaire actuel. Voici deux messages d’erreur possibles et leurs causes :
Message 1
OpenProcess a échoué 0x57-le paramètre est incorrect
Un ID de processus non valide a été transmis à l’utilitaire Sqldumper. exe.
Message 2
Valeur non valide pour l’ID de thread-<paramètre non valide> erreur de paramètre
Un paramètre non valide a été transmis à l’utilitaire Sqldumper. exe.Si un message d’erreur qui ressemble à l’une des conditions suivantes est généré, vous pouvez ignorer ce message en toute sécurité : 
Type de rappel inconnu lors de la minividage 6Type de rappel inconnu lors de la minividage 7

Impact de la génération de vidage

Lorsque le vidage d’un processus en mode utilisateur est demandé (comme décrit dans cet article, afin de ne pas être contrasté par le vidage du noyau du système d’exploitation, qui ne se trouve pas dans le cadre de notre étendue), le processus cible (ici SQLServer. exe) est complètement figé pour la durée nécessaire à la sérialisation du contenu du vidage vers sa cible de fichier.

Le mode figé signifie qu’il sera incapable de traiter les demandes des utilisateurs ou la progression d’une opération interne, y compris tout mécanisme d’interrogation de ressources comme l’implémentation de IsAlive et de LooksAlive de clustering Windows (voir la section’basculement de cluster et l’utilitaire Sqldumper. exe’pour plus d’informations sur la gestion de cette situation). Tout délai reposant sur le temps horloge de la paroi risque d’être également violé suite au blocage.

Comme il peut être dérivé de l’instruction précédente, la durée du gel est par conséquent le facteur critique, et est principalement déclenchée par la commande suivante :

  • Type de vidage sélectionné
  • La taille du processus SQL Server en mémoire, qui, dans le cas d’une instance active unique exécutant des paramètres par défaut, est souvent proche du total de RAM physique du serveur.
  • Performance du disque utilisée en tant que cible pour le vidage.

Par ailleurs, la tailledu fichier de vidage sur le disque doit être prévue, en particulier si les vidages multiples peuvent être sélectionnés et si de grands types de vidages par défaut sont sélectionnés. Vérifiez que vous avez bien examiné la section 'vidage de type’pour savoir ce à quoi vous pouvez vous attendre. Par défaut, certaines méthodes de vidage créent le vidage dans le dossier \log de l’instance SQL Server, qui, dans la configuration simple par défaut, est également disque système et données + disque journal pour SQL Server. La saturation de ce disque peut avoir un impact considérable sur la disponibilité de SQL Server et/ou du système.

Trois améliorations majeures ont été apportées aux versions récentes de SQL Server afin de réduire la taille du fichier et/ou du temps de vidage pour générer le vidage de la mémoire :
  • Mécanisme de filtrage d’image bitmap
  • Élimination des vidages répétés dans le même problème
  • Sortie raccourcie dans le ErrorLog
 

Filtrage de bitmap: une vitesse de vidage filtrée améliorée et une taille réduite ont été obtenues en raison d’un nouveau mécanisme de filtrage d’image qui a été ajouté à sql Server 2019 et sql Server 2017.SQL Server alloue une image bitmap qui effectue le suivi des pages mémoire à exclure d’un vidage filtré. Sqldumper. exe lit l’image bitmap et filtre les pages sans avoir besoin de lire d’autres métadonnées de gestionnaire de mémoire. Les messages suivants s’affichent dans le journal des erreurs SQL Server lorsque l’image bitmap est activée ou désactivée, respectivement : « image bitmap d’exclusion de page activée ».

SQL Server 2016

  • À partir de SQL Server 2016 SP2 CU13 le filtrage d’image est activé par défaut.

SQL Server 2017

  • Cette opération n’est pas disponible dans la version RTM via CU15
  • Dans SQL Server 2017 CU16, vous pouvez activer le filtrage d’image bitmap via T8089 et le désactiver en désactivant T8089
  • À partir de SQL Server 2017 CU20, le filtrage d’image est activé par défaut. L’indicateur de suivi T8089 ne sera plus appliqué et sera ignoré s’il est activé. Le filtrage de bitmap peut être désactivé via T8095.

SQL Server 2019

Cette option est activée par défaut dans la version RTM de SQL Server 2019. Elle peut être désactivée via T8095.

 
Élimination des vidages répétés sur le même problème :les vidages de mémoire epeated sur le même problème sont désormais supprimés. À l’aide d’une signature de pile, le moteur SQL conserve le suivi si une exception s’est produite et ne produira pas de nouveau vidage de mémoire s’il en existe une. Cela s’applique aux violations d’accès, au dépassement de pile, aux affirmations et aux exceptions endommageables d’index. Cela réduit de façon significative le volume d’espace disque utilisé par les vidages de mémoire et ne fige pas temporairement le processus pour générer un vidage. Cette opération a été ajoutée à SQL Server 2019.
 
Résultat raccourci dans le journal des erreurs:Le contenu généré dans le journal des erreurs SQL Server à partir d’une seule image de la mémoire ne peut pas être très simple, mais il a également ralenti le processus de génération d’une image de vidage en raison du temps que ces informations doivent être sérialisées dans un format de texte dans le journal des erreurs. Dans SQL Server 2019, le contenu stocké dans le ErrorLog lors de la génération de vidage a été considérablement réduit et peut se présenter comme suit :
 
DateTime SPIDSPID * * dump thread-SPID = 0, EC = 0x0000015C7169BF40
DateHeure SPIDSpid
Date et heure de la pile du bac d'identification de l’utilisateur. Il ne s’agit pas d’un vidage d’exception serveur.
DateHeure SPIDSpid
Le vidage de la signature duPIDdu SPID est 0x00000000788399E5
Code d’erreur du processus devidage externepid du processus d’image de SPID de type 0x20000001.
Le processus de vidage externe n’a renvoyé aucune erreur.
 

Auparavant, SQL Server a imprimé des informations pour chaque session/thread lors du déclenchement d’un vidage manuel par l’utilisateur, par exemple. 

Types de vidage

Les méthodes décrites ci-dessous permettent de générer trois types de vidages : des mini-vidages, des vidages complets et des vidages filtrés.

Le vidage des miniatures avec la mémoire référencée est un instantané de tous les threads actifs du processus (« piles de threads »), ainsi qu’un extrait limité de la mémoire référencée par les piles du thread et d’autres données de processus/thread clés. Il s’agit généralement de quelques Mo de taille et il est très rapide de générer (d’une durée de moins d’une seconde à quelques secondes). Même les systèmes serveur de plus grande taille (avec des centaines d’UC qui génèrent indirectement des threads dans le processus SQL Server) dépassent rarement 20-30 Mo : la taille d’un mini-vidage ne s’étend pas à la taille du processus SQL Server. Ce type de vidage est le type par défaut utilisé par SQL Server lors de la génération automatique de vidages de mémoire sur les exceptions, problèmes de planificateur, problèmes de loquet, etc.

Notez que SQL Server, dans le cadre de son instrumentation intégrée, générera des « minividages de diagnostic » automatisés dans certaines situations spécifiques. Cette opération est donc considérée comme sécurisée, que SQL Server peut déclencher automatiquement si nécessaire.

Les vidages complets sont une copie complète de l’espace de processus cible actif. Cela inclut par conséquent tout l’état du thread, le processus alloué à la mémoire et tous les modules chargés. Par conséquent, les vidages complets ont une taille qui est approximativement la même que celle du processus SQL Server, qui à son tour peut être presqueaussi élevée que la mémoire RAM système totale. Sur les serveurs volumineux dédiés à une seule instance SQL Server, il peut s’agit d’un fichier de plusieurs centaines de gigaoctets. Par exemple, l’utilisation d’un tel fichier peut prendre un certain temps et provoquer par conséquent une Prolongated gel. La performance du disque de la cible de vidage sera un pilote principal permettant de geler du temps. Notez que ce type de vidage est rarement utilisé pour SQL Server, car la description de type suivant s’expliquera.

Vidages filtrés : comme la taille de la mémoire RAM pour les serveurs classiques exécutant SQL Server a été augmentée de façon permanente, le vidage complet est devenu plus encombrant. Des vidages filtrés ont été par conséquent implémentés : il s’agit d’un sous-ensemble de vidages complets, où des zones de mémoire de grande taille relatives à SQL Server sont volontairement ignorées et ne sont pas sérialisées sur le disque, car elles n’apportent aucune valeur ajoutée (en général, les pages de données ou d’index, certains caches internes comme les pages de données Hekaton et la mémoire de journalisation de journaux). Cela se traduit par un fichier dont la taille est inférieure à un vidage complet, tout en conservant presque tout son utilité, et cela a pour effet de remplacer les vidages complets comme option préférée dans une grande majorité des situations où les vidages de miniature n’étaient pas suffisants. Le niveau de diminution de la taille par rapport au vidage complet peut varier d’un grand nombre de fois qu’il s’agit d’un fichier assez volumineux qui est souvent de 30-60% de la taille du processus SQL Server, il est donc préférable de planifier une taille possible pour un vidage complet comme une option de vidage complète, qui devrait laisser une bonne marge de sécurité. Notez qu’il n’est pas toujours plus rapide de générer un vidage filtré qu’un vidage complet dans les cas suivants : il s’agit de savoir si les gains liés au nombre d’e/s évités dépassent le temps nécessaire à l’implémentation de la logique de filtre (la vitesse du disque et la vitesse du processeur/RAM influenceront cela).

Vous pouvez utiliser l’utilitaire Sqldumper. exe pour générer un fichier de vidage à la demande pour une application 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 exécutant Microsoft SQL Server ne répond pas aux demandes des utilisateurs. Un fichier de vidage peut être un fichier de mini-vidage ou un fichier de vidage complet. Un fichier de vidage filtré est uniquement applicable et significatif dans le contexte de SQL Server.Toutefois, vous ne pouvez pas utiliser l’utilitaire Sqldumper. exe pour le débogage d’un usage général. Pour plus d’informations sur le débogage polyvalent, visitez le site Web de Microsoft suivant :

http://www.microsoft.com/whdc/devtools/debugging/default.mspx

Le processus SQL Server appelle l’utilitaire Sqldumper. exe en interne pour générer un fichier de vidage lorsque le processus rencontre des exceptions. SQL Server transmet des indicateurs à l’utilitaire Sqldumper. exe. Vous pouvez utiliser les indicateurs de trace pour modifier les indicateurs transmis par SQL Server à l’utilitaire dans le contexte d’une exception ou dans le contexte d’une assertion. Ces indicateurs de trace se trouvent dans la plage comprise entre 2540 et 2559. Vous pouvez utiliser ces indicateurs de suivi pour générer certains types de fichiers de vidage. Par exemple :

  • Indicateur de trace 2551 : produit une image de mémoire filtrée
  • Indicateur de trace 2544 : produit une image mémoire complète
  • Indicateur de trace 8026 : SQL Server efface le déclencheur de vidage après la génération d’un vidage une fois

Si au moins deux indicateurs de trace sont activés, l’option indiquant le plus grand vidage de mémoire sera honorée. Par exemple, si les indicateurs de trace 2551 et 2544 sont utilisés, SQL Server crée une image mémoire complète.

Comment 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 voulez 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 des colonnes.
  4. Dans la boîte de dialogue Sélectionner les colonnes , cochez la case 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 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 SQL Server exécutée sur votre ordinateur à l’aide du fichier journal des erreurs SQL Server. Par exemple, une partie du fichier journal des erreurs SQL Server ressemble à ce qui suit :

Date/Time Serveur Microsoft SQL Server 2005-9.00.1399.06 (Intel x86)Date/heureCopyright (c) 1988-2005 Microsoft CorporationEnterprise Edition sur Windows NT 5,2 (Build 3790 : Service Pack 1)Date/heure Serveur (c) 2005 Microsoft Corporation.Date/Time Serveur tous les droits réservés.Date/Time L’ID du processus serveur serveur est 3716.

Le numéro qui s’affiche après ID de processus serveur est l’identificateur de processus du processus sqlservr. exe.

Basculements de cluster et l’utilitaire Sqldumper. exe

Dans les scénarios de basculement de cluster, la DLL de ressources SQL Server peut désormais obtenir un fichier de vidage avant le basculement. Lorsque la DLL de ressources SQL Server détermine qu’une ressource SQL Server a échoué, la DLL de ressources SQL Server 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 éléments requis :
  • SqlDumperDumpTimeOut Un délai spécifié par l’utilisateur. La DLL de ressource attend que le fichier de vidage se termine avant que la DLL de ressources arrête le service SQL Server.
  • SqlDumperDumpPath L’emplacement où l’utilitaire Sqldumper. exe génère le fichier de vidage.
  • SqlDumperDumpFlags Indicateurs utilisés par l’utilitaire Sqldumper. exe.

Si aucune des propriétés n’est définie, l’utilitaire Sqldumper. exe ne peut pas générer le fichier de vidage. Un message d’avertissement sera enregistré dans le journal des événements et dans le journal de cluster chaque fois que la ressource est mise en ligne.

Pour SQL Server 2012 et versions ultérieures

Vous pouvez utiliser la commande ALTER SERVER CONFIGURATION (T-SQL) pour modifier ces propriétés. Par exemple :

CHANGER de CONFIGURATION de serveur définir la propriété de CLUSTER de BASCULement SqlDumperDumpTimeOut = 0 ;

MODIFICATION de la CONFIGURATION du serveur définir la propriété de CLUSTER de BASCULement SqlDumperDumpPath = 'C:\temp\ ';

CHANGER de CONFIGURATION de serveur définir la propriété de CLUSTER de BASCULement SqlDumperDumpFlags = 296 ;

Vous pouvez également utiliser des scripts PowerShell. Par exemple, pour une instance nommée SQL2017A :

Get-ClusterResource-Name "SQL Server (SQL2017AG)" | Set-ClusterParameter-Name "SqlDumperDumpPath"-value "C:\temp"

Get-ClusterResource-Name "SQL Server (SQL2017AG)" | Set-ClusterParameter-Name "SqlDumperDumpFlags"-value 296

Get-ClusterResource-Name "SQL Server (SQL2017AG)" | Set-ClusterParameter-nom "SqlDumperDumpTimeOut"-valeur 0

Pour valider les paramètres appliqués, vous pouvez exécuter la commande PowerShell suivante :

Get-ClusterResource-Name "SQL Server (SQL2017AG)" | Get-ClusterParameter

Pour SQL Server 2008/2008 R2 ou Windows 2012 et les versions antérieures

Utiliser DBCC STACKDUMP

Cette DBCC STACKDUMP commande peut vous aider à créer un vidage de mémoire dans le répertoire de journaux de l’installation de votre instance SQL Server. Par défaut, la commande crée un minidump avec tous les threads de taille limitée et est approprié pour refléter l’état de processus SQL Server. Il vous suffit d’exécuter la commande suivante dans un client SQL Server :

DBCC STACKDUMP

Pour autoriser cette méthode à créer un vidage filtré, activez les indicateurs de trace 2551 avec la commande suivante :

dbcc traceon(2551, -1) godbcc stackdump

Pour créer un vidage complet, utilisez l’indicateur de suivi 2544.

Remarque une fois que vous avez obtenu le fichier de vidage, vous devez désactiver l’indicateur de suivi à l’aide de la commande suivante pour éviter la mise à niveau involontaire de tous les de diagnostics d’auto-diagnostic SQL Server vers des vidages plus grands :

DBCC TRACEOFF (TraceNumber, -1);   GO

Où tracenumber est l’indicateur de suivi que vous avez précédemment activé comme 2551 ou 2544.

Si vous n’êtes pas sûr de savoir quel indicateur de suivi reste actif, vous pouvez exécuter les tâches suivantes :

DBCC TRACESTATUS(-1)

Un jeu de résultats vide indique qu’aucun traceflag n’est actif. À l’inverse, si 2551 est toujours actif, vous pouvez voir :

Session globale d’État TraceFlag

--------- ------ ------ -------

2551 1 1 0

RemarqueL’option TraceFlags activée par DBCC TRACEd est Reset (supprimé) après un redémarrage du service.

Comment utiliser un script PowerShell pour générer un fichier de vidage avec SQLDumper. exe

  • Enregistrez le code suivant en tant que fichier PS1 (par exemple, SQLDumpHelper. ps1) :
  • Exécutez-la à partir del’invite de commandes en tant qu’administrateur à l’aide de la commande suivante :
    Powershell.exe -File SQLDumpHelper.ps1
  • Ou exécutez-la à partir de la console WindowsPowerShell et exécutez-la en tant qu’administrateur à l’aide de la commande suivante :
    .\SQLDumpHelper.ps1

Remarque Si vous n’avez jamais exécuté de scripts PowerShell sur votre système, vous pouvez recevoir le message d’erreur suivant :

Fichier... SQLDumpHelper. ps1 ne peut pas être chargé car l’exécution de scripts est désactivée sur ce système.

Vous devez activer la possibilité de les exécuter en procédant comme suit :

  1. Démarrez la console Windows PowerShell avec l’option « Exécuter en tant qu’administrateur ». Seuls les membres du groupe Administrateurs sur l’ordinateur peuvent modifier la stratégie d’exécution.
  2. Activez exécuter des scripts non signés à l’aide de la commande suivante :
    Set-ExecutionPolicy RemoteSigned

    Notez cela vous permettra d’exécuter des scripts non signés que vous créez sur votre ordinateur local et des scripts signés à partir d’Internet.