Compartir a través de


HpC Management Service no se puede iniciar después de restaurar la base de datos

En este artículo se proporciona una solución para un problema en el que hpc management service no se puede iniciar después de restaurar una base de datos dañada.

Síntomas

Después de restaurar una base de datos de administración de HPC dañada, hpc management service no se puede inicializar. Reinicie el nodo principal y compruebe que todos los demás servicios de HPC están en estado de ejecución. Sin embargo, el servicio de administración de HPC todavía no se puede iniciar.

El siguiente error se muestra en los registros de eventos de HPC Management:

No se pudo inicializar correctamente el servicio de administración de HPC: la colección de instancias de identificadores no se puede resolver en la vista de instancia actual.

Causa

HpC Management Service se bloqueó con "InstanceCacheLoadException". Este es el mensaje de error en el registro de eventos de HPC Management:

[HPCManagement] Excepción: Microsoft.SystemDefinitionModel.InstanceCacheLoadException: La colección de instancias de identificadores no se puede resolver en la vista de instancia actual.

Este problema se produce porque muchas instancias están en un estado incorrecto. Para cada instancia, solo debe haber una versión en el estado "Current" (el valor instanceState es 2). Cuando se produce el problema, hay instancias con dos o tres versiones en el estado "Current" (el valor instanceState es 2). Para comprobar el número de versiones de instancia en estado "Actual", ejecute la siguiente consulta SQL en una base de datos de administración de HPC:

SELECT instanceId, count(*) as Number FROM Instances where instanceState = 2 group by instanceId having count(*) > 1

Para cada instanceId devuelto por la consulta SQL anterior, ejecute la siguiente consulta SQL:

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

Solución

Para resolver el problema, corrija las instancias en un estado incorrecto. Para ello, siga estos pasos:

  1. Guarde el siguiente script de PowerShell como archivo 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
        }
    }
    
  2. Ejecute PowerShell como administrador.

  3. Ejecute el siguiente comando:

    .\FixInstanceStateError.ps1 -ServerInstance SQLserver -Database HpcManagement
    
  4. Reinicie el servicio de almacenamiento de HPC SDM y el servicio de administración de HPC.

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.