Le service de gestion HPC ne parvient pas à démarrer après la restauration de la base de données
Cet article fournit une solution à un problème où HPC Management Service ne parvient pas à démarrer après la restauration d’une base de données endommagée.
Symptômes
Après avoir restauré une base de données de gestion HPC endommagée, le service de gestion HPC ne parvient pas à s’initialiser. Vous redémarrez le nœud principal et vérifiez que tous les autres services HPC sont en cours d’exécution status. Toutefois, le service de gestion HPC ne peut toujours pas être démarré.
L’erreur suivante s’affiche dans les journaux des événements hpC Management :
Le service de gestion HPC n’a pas pu s’initialiser correctement : la instance collection d’ID ne peut pas être résolue dans la vue instance actuelle.
Cause
Le service de gestion HPC s’est arrêté avec « InstanceCacheLoadException ». Voici le message d’erreur dans le journal des événements HPC Management :
[HPCManagement] Exception : Microsoft.SystemDefinitionModel.InstanceCacheLoadException : la instance collection d’ID ne peut pas être résolue dans la vue instance actuelle.
Ce problème se produit car de nombreuses instances sont dans un état incorrect. Pour chaque instance, il ne doit y avoir qu’une seule version à l’état « Actuel » (la valeur instanceState est 2). Lorsque le problème se produit, il existe des instances avec deux ou trois versions à l’état « Actuel » (la valeur instanceState est 2). Pour vérifier le nombre de versions instance dans l’état « Actuel », exécutez la requête SQL suivante sur une base de données de gestion HPC :
SELECT instanceId, count(*) as Number FROM Instances where instanceState = 2 group by instanceId having count(*) > 1
Pour chaque instanceId retourné par la requête SQL ci-dessus, exécutez la requête SQL suivante :
SELECT Instances.instanceId, Instances.changeId, Instances.instanceVersion, Instances.instanceName, Instances.instanceState, Changes.changeName, Changes.changeState FROM Instances INNER JOIN Changes on Instances.changeId = Changes.changeId Where Instances.instanceId = '<instanceId>' and Instances.instanceState <> 3 Order by Instances.instanceVersion DESC
Résolution
Pour résoudre le problème, corrigez les instances dans un état incorrect. Pour cela, procédez comme suit :
Enregistrez le script PowerShell suivant en tant que fichier FixInstanceStateError.ps1.
param ( [Parameter(Mandatory=$true)] [string] $ServerInstance, [Parameter(Mandatory=$false)] [string] $Database = "HpcManagement" ) $dupInstances = Invoke-Sqlcmd -ServerInstance $ServerInstance -Database $Database -Query "SELECT instanceId, count(*) as Number FROM Instances where instanceState = 2 group by instanceId having count(*) > 1" $instanceIds = $dupInstances.instanceId $idsString = $instanceIds -join "','" $instanceEntries = Invoke-Sqlcmd -ServerInstance $ServerInstance -Database $Database -Query "SELECT * FROM Instances Where instanceId IN ('$idsString') and instanceState = 2" $sortedEntries = $instanceEntries | Sort-Object -Property @{Expression="instanceId"; Descending=$true},@{Expression="instanceVersion"; Descending=$true} $idMap = @{} foreach($entry in $sortedEntries) { if($idMap[$entry.instanceId]) { Invoke-Sqlcmd -ServerInstance $ServerInstance -Database $Database -Query "Update Instances set instanceState = 3 where instanceId = '$($entry.instanceId)' and instanceVersion = $($entry.instanceVersion)" } else { $idMap[$entry.instanceId] = $true } }
Exécutez PowerShell en tant qu’administrateur.
Exécutez la commande suivante :
.\FixInstanceStateError.ps1 -ServerInstance SQLserver -Database HpcManagement
Redémarrez le service HpC SDM Store et le service de gestion HPC.
Contactez-nous pour obtenir de l’aide
Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour