Résolution des problèmes liés à l'utilitaire SQL Server

Les problèmes à résoudre liés à l'utilitaire SQL Server peuvent inclure la résolution de l'échec d'une opération d'inscription d'une instance de SQL Server avec un UCP, de l'échec de la collecte de données qui grise des icônes dans le mode Liste de l'instance gérée sur un UCP, l'atténuation des goulots d'étranglement des performances, ou la résolution des problèmes d'intégrité des ressources. Pour plus d'informations sur l'atténuation de problèmes d'intégrité des ressources identifiées par un SQL Server UCP, consultez Résolution des problèmes de contrôle d'intégrité de SQL Server (utilitaire SQL Server).

Opération d'inscription d'une instance de SQL Server dans un utilitaire SQL Server ayant échoué

Si vous utilisez l'authentification SQL Server pour vous connecter à l'instance de SQL Server à inscrire, et que vous spécifiez un compte proxy qui appartient à un domaine Active Directory différent du domaine dans lequel se trouve l'UCP, la validation d'instance réussit, mais l'opération d'inscription échoue avec le message d'erreur suivant :

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

Additional information: Could not obtain information about Windows NT group/user '<DomainName\AccountName>', error code 0x5. (Microsoft SQL Server, Error: 15404)

Dans cet exemple de scénario, vous pouvez rencontrer le problème suivant :

  1. L'UCP est membre du « Domain_1 ».

  2. Une relation d'approbation de domaine unidirectionnelle est en place : autrement dit, « Domain_1 » n'est pas approuvé par « Domain_2 » mais « Domain_2 » est approuvé par « Domain_1 ».

  3. L'instance de SQL Server à inscrire dans l'utilitaire SQL Server est également un membre de « Domain_1 ».

  4. Lors de l'opération d'inscription, connectez-vous à l'instance de SQL Server pour procéder à l'inscription en utilisant « sa ». Spécifiez un compte proxy du « Domain_2 ».

  5. La validation réussit mais l'inscription échoue.

La solution de contournement pour ce problème, dans l'exemple ci-dessus, consiste à se connecter à l'instance de SQL Server pour l'inscrire dans l'utilitaire SQL Server à l'aide de « sa » et fournir un compte proxy de « Domain_1 ».

Échec de la validation WMI

Si WMI n'est pas configuré correctement sur une instance de SQL Server, les opérations Créer un UCP et Inscrire une instance gérée affichent un avertissement, mais l'opération n'est pas bloquée. En outre, si vous modifiez la configuration du compte de l'Agent SQL Server afin que l'Agent SQL Server n'ait pas l'autorisation d'accès aux classes WMI obligatoire, la collecte de données sur l'instance gérée de SQL Server affectée ne parvient pas à télécharger à l'UCP. Cela provoque des icônes grises dans l'UCP.

L'échec de la collecte de données provoque des icônes d'état grises en mode Liste de l'UCP pour les instances gérées affectées de SQL Server. L'historique de travail sur l'instance gérée de SQL Server indique un échec de sysutility_mi_collect_and_upload à l'étape 2 (Données d'étape collectées à partir du script PowerShell).

Les messages d'erreur simplifiés sont les suivants :

L'exécution de la commande s'est arrêtée, car la variable d'environnement « ErrorActionPreference » a la valeur Stop : accès refusé.

ERREUR : <Date-heure (MM/HH:MM:SS de DD/YYYY)> : exception interceptée lors de la collecte des propriétés de cpu. Une requête WMI a peut-être échoué. AVERTISSEMENT.

Pour résoudre ce problème, vérifiez les paramètres de configuration suivants :

  • Sur Windows Server 2003, le compte de service SQL Server Agent doit appartenir au groupe d'analyse des performances de Windows sur l'instance gérée de SQL Server.

  • Le service WMI doit être activé et configuré sur l'instance gérée de SQL Server.

  • La base de données de référentiel WMI est peut-être endommagée sur l'instance gérée de SQL Server.

  • La bibliothèque de performance peut être manquante ou endommagée sur l'instance gérée de SQL Server.

Pour vérifier que l'instance spécifiée de SQL Server est configurée correctement sur les données de rapport de l'UCP, vérifiez que les classes suivantes sont disponibles sur l'instance spécifiée de SQL Server, et qu'elles sont accessibles au compte de service SQL Server Agent :

  • Win32_MountPoint

  • Win32_PerfRawData_PerfProc_Process

  • Win32_PerfRawData_PerfOS_Processor

  • Win32_Processor

  • Win32_Volume

  • Win32_LogicalDisk

Vous pouvez utiliser l'applet de commande PowerShell de get-WmiObject sur chacune des classes pour vérifier que chaque classe est accessible. Exécutez les applets de commande suivantes sur l'instance gérée de SQL Server :

Get-WmiObject Win32_MountPoint -ErrorAction Stop | Out-Null
Get-WmiObject Win32_PerfRawData_PerfProc_Process -ErrorAction Stop| Out-Null
Get-WmiObject Win32_PerfRawData_PerfOS_Processor -ErrorAction Stop | Out-Null
Get-WmiObject Win32_Processor -ErrorAction Stop | Out-Null
Get-WmiObject Win32_Volume -ErrorAction Stop | Out-Null
Get-WmiObject Win32_LogicalDisk -ErrorAction Stop | Out-Null

Pour plus d'informations sur la résolution des problèmes liés à WMI, consultez Dépannage WMI. Notez que les requêtes dans ces opérations de l'utilitaire SQL Server s'exécutent localement, donc le DCOM et le contenu de résolution des problèmes à distance ne s'appliquent pas.

Échec de la collecte de données

Si des événements de collecte de données de l'utilitaire SQL Server échouent, envisagez les possibilités suivantes :

  • Ne modifiez aucune des propriétés du jeu d'éléments de collecte de données d'utilitaire présent sur une instance gérée de SQL Server, et n'activez ou ne désactivez pas la collecte de données manuellement, car cette dernière est contrôlée par un travail d'agent Utilitaire.

  • Validation WMI ayant échoué ou non prise en charge. Pour plus d'informations, consultez la section « Échec de la validation WMI », plus haut dans cette rubrique.

  • Actualisez les données dans le mode Liste de l'instance gérée, car les données dans les points de vue de l'utilitaire SQL Server ne s'actualisent pas automatiquement. Pour actualiser les données, cliquez avec le bouton droit sur le nœud Instances managées dans le volet Navigation de l'Explorateur de l'utilitaire, puis sélectionnez Actualiser, ou cliquez avec le bouton droit sur le nom de l'instance de SQL Server dans le mode Liste, puis sélectionnez Actualiser. Notez qu'une fois qu'une instance de SQL Server a été inscrite avec un UCP, cela peut prendre jusqu'à 30 minutes pour que les données s'affichent d'abord dans le tableau de bord et les points de vue dans le volet Contenu de l'Explorateur de l'utilitaire.

  • Utilisez le Gestionnaire de configuration SQL Server pour vérifier que l'instance de SQL Server s'exécute.

  • Si la collecte ou le téléchargement de données échouent en raison de problèmes de délais d'attente, mettez à jour la fonction dbo.fn_sysutility_mi_get_collect_script() dans la base de données MSDB. Plus particulièrement, dans la fonction Invoke-BulkCopyCommand(), ajoutez la ligne :

    $bulkCopy.BulkCopyTimeout=180
    

    La valeur de délai d'attente par défaut est de 30 secondes.

  • Si l'instance de SQL Server n'est pas un cluster, vérifiez que le service SQL Server Agent s'exécute et que le service est configuré pour démarrer automatiquement sur l'UCP et sur l'instance gérée de SQL Server.

  • Vérifiez qu'un compte valide est utilisé pour exécuter la collecte de données sur l'instance gérée de SQL Server. Par exemple, le mot de passe a pu expirer. Si le mot de passe du proxy a expiré, mettez à jour les informations d'identification relatives au mot de passe dans SSMS, comme suit :

    1. Dans SSMS Explorateur d'objets, développez le nœud Sécurité, puis le nœud Informations d'identification.

    2. Cliquez avec le bouton droit sur UtilityAgentProxyCredential_<GUID> et sélectionnez Propriétés.

    3. Dans la boîte de dialogue Propriétés des informations d'identification, mettez à jour les informations d'identification nécessaires pour UtilityAgentProxyCredential_<GUID>.

    4. Cliquez sur OK pour confirmer la modification.

  • TCP/IP doit être activé sur l'UCP et sur l'instance gérée de SQL Server. Activez TCP/IP via le Gestionnaire de configuration SQL Server.

  • Le service SQL Server Browser sur l'UCP doit être démarré et configuré pour démarrer automatiquement. Si votre organisation empêche d'utiliser le service SQL Server Browser, utilisez la procédure suivante pour autoriser une instance gérée de SQL Server à se connecter à l'UCP :

    1. Dans la barre des tâches Windows sur l'instance gérée de SQL Server, cliquez sur Démarrer, puis cliquez sur Exécuter….

    2. Tapez « cliconfg.exe » dans l'espace fourni, puis cliquez sur OK.

    3. Si vous êtes invités à autoriser « SQL Client Configuration Utility EXE » à démarrer, cliquez sur « Continuer ».

    4. Dans la boîte de dialogue Utilitaire réseau du client SQL Server, sélectionnez l'onglet Alias, puis cliquez sur Ajouter….

    5. Dans la boîte de dialogue Ajouter la nouvelle configuration de la bibliothèque réseau :

    6. Spécifiez TCP/IP dans la liste des bibliothèques réseau.

    7. Spécifiez le ComputerName\InstanceName de l'UCP dans la zone de texte Alias du serveur.

    8. Spécifiez le ComputerName de l'UCP dans la zone de texte Nom du serveur.

    9. Désactivez la case à cocher Déterminer le port de manière dynamique.

    10. Spécifiez le numéro de port que l'UCP écoute dans la zone de texte Numéro du port.

    11. Cliquez sur OK pour enregistrer vos modifications.

    12. Répétez ces étapes pour chaque instance gérée de SQL Server qui se connecte à un UCP où le service SQL Server Browser n'est pas activé.

  • Assurez-vous que les instances gérées de SQL Server sont connectées au réseau.

  • S'il existe des bases de données avec le même nom mais des paramètres différents de sensibilité à la casse sur une instance gérée de SQL Server, l'identification entre la base de données et ses points de vue peut être incorrecte, ce qui provoque un échec de la collecte de données. Par exemple, une base de données nommée « MYDATABASE » peut afficher des états d'intégrité pour une base de données nommée « MyDatabase ». Aucune erreur n'est générée dans ce scénario. L'échec de la collecte de données peut également résulter du non respect de la casse dans d'autres objets affichés dans l'UCP, comme fichier de base de données et les noms de groupes de fichiers.

  • Si une instance gérée de SQL Server est hébergée sur un ordinateur Windows Server 2003, le compte du service SQL Server Agent doit appartenir au groupe de sécurité Utilisateurs de l'Analyseur de performances ou au groupe local Administrateurs. Sinon, la collecte de données échouera avec une erreur d'accès refusé. Pour ajouter un compte du service SQL Server Agent au groupe de sécurité Utilisateurs de l'Analyseur de performances, suivez la procédure suivante :

    1. Ouvrez Gestion de l'ordinateur, puis Utilisateurs et groupes locaux, puis Groupes.

    2. Cliquez avec le bouton droit sur Utilisateurs de l'Analyseur de performances et sélectionnez Ajouter au groupe.

    3. Cliquez sur Ajouter.

    4. Entrez le compte sous lequel le service SQL Server Agent s'exécute, puis cliquez sur OK.

    5. Si l'instance de SQL Server a déjà été inscrite avec l'UCP avant d'ajouter l'utilisateur à ce groupe, redémarrez le service SQL Server Agent.