Vous ne pouvez pas mettre à jour un cluster SQL Server lorsque le programme d’installation vérifie la règle Cluster_IsOnlineIfClustered

Cet article vous aide à résoudre le problème qui se produit lorsque le programme d’installation vérifie la Cluster_IsOnlineIfClustered règle.

Version originale du produit : SQL Server 2012 et versions ultérieures Numéro de la base de connaissances d’origine : 2817733

Symptômes

Examinez le cas suivant :

  • Dans un environnement de cluster, vous installez une instance de Microsoft SQL Server.

  • Vous essayez d’installer des Service Packs SQL Server ou des mises à jour cumulatives sur le serveur qui contient cette instance.

Dans ce cas, l’opération d’installation échoue tôt dans le processus. Plus précisément, l’opération échoue lorsque le programme d’installation vérifie la Cluster_IsOnlineIfClustered règle. En outre, un message semblable à celui-ci est enregistré dans le fichier Detail.txt :

<Time Stamp> Slp: Init rule target object: Microsoft.SqlServer.Configuration.Cluster.Rules.ClusterServiceFacet
<Time Stamp> Slp: The given key was not present in the dictionary.
<Time Stamp> Slp: at Microsoft.SqlServer.Chainer.Infrastructure.ServiceContainer.GetService(Type serviceType)

at Microsoft.SqlServer.Chainer.Infrastructure.ServiceContainer.GetService[T]()

at Microsoft.SqlServer.Chainer.Infrastructure.ServiceContainer.get_Cluster()

at Microsoft.SqlServer.Configuration.Cluster.Rules.ClusterServiceFacet.Microsoft.SqlServer.Configuration.RulesEngineExtension.IRuleInitialize.Init(String ruleId)

at Microsoft.SqlServer.Configuration.RulesEngineExtension.RulesEngine.Execute(Boolean stopOnFailure)

<Time Stamp> Slp: Rule initialization failed - hence the rule result is assigned as Failed

Remarque

Le fichier Detail.txt se trouve à l’emplacement %ProgramFiles%\Microsoft SQL Server\110\Setup Bootstrap\Log\<YYYYMMDD_HHMM>.

La cause

Ce problème se produit en raison d’un espace de noms MSCluster non valide dans Windows Management Instrumentation (WMI).

Résolution

Pour résoudre ce problème, effectuez les étapes suivantes :

  1. À l’invite de commandes d’administration, tapez cd %systemroot%\system32\wbem, puis appuyez sur Entrée.

  2. Tapez la commande regsvr32 cluswmi.dll, puis appuyez sur Entrée.

  3. Tapez la commande mofcomp.exe ClusWMI.mof, puis appuyez sur Entrée.

  4. Réexécutez la configuration des Service Packs ou des mises à jour cumulatives sur le serveur.

Plus d’informations

Pour identifier que ce problème est dû à l’espace de noms WMI du cluster, procédez comme suit :

  1. Connectez-vous en tant que compte administrateur sur le cluster et exécute le programme d’installation de SQL Server.

  2. Exécutez la commande wbemtest à l’invite de commandes d’administration.

  3. Dans la fenêtre Testeur Windows Management Instrumentation, sélectionnez Se connecter....

  4. Tapez root\MSCluster dans l’espace de noms, puis sélectionnez le bouton Se connecter. Dans ce cas, vous pouvez recevoir un message d’erreur semblable à celui-ci :

    Nombre : 0x8004100e
    Installation : WMI
    Description : espace de noms non valide

    Remarque

    En guise de test supplémentaire, vous pouvez exécuter la requête suivante dans Windows PowerShell :

       SELECT name FROM <MSCluster_Cluster>
    

    Si le problème n’est pas dû à un espace de noms MSCluster non valide, le résultat attendu est que le nom du réseau du cluster est retourné.