SQL Server 2005 – Analizzare un Login Failed

Il problema che approfondirò oggi può verificarsi durante l’installazione di un aggiornamento di un’ istanza di SQL Server 2005 in cluster.
L’installazione fallisce con l’errore “No passive nodes were successfully patched” e in particolare i log dell’installazione contiene i l’errore che potrebbe essere simile a questi:

MSP Error 29512 SQL Server Setup was unable add user USER@domain to local group DOMAIN\SQLCLUSTER
MSP Error: 29512 SQL Server Setup was unable add user USER@domain.local to local group DOMAIN\SQL Agent Group

Ambiente

  • SQL Server 2005

Scenario tipico

  • Il problema può verificarsi durante l’installazione di un aggiornamento, per esempio SQL Server 2005 Service Pack 3.
  • L’installazione fallisce con l’errore:

    Summary.txt
    Product: Database Services (SQLINSTANCE)
    Product Version (Previous): 3042
    Status: Failure
    Error Number: 11009
    Error Description: No passive nodes were successfully patched
    ...
    Summary
         No passive nodes were successfully patched
         Exit Code Returned: 11009

Causa

  • Verificando i log dell’installazione potete trovare l’errore che ha causato il fallimento.

  • Si può vedere che fallisce la chiamata del metodo Do_sqlGroupMember

    Hotfix.log
    MSP Error: 29512 SQL Server Setup was unable add user SQLSvc@domain to local group DOMAIN\SQL Agent Group.
    MSP returned 1603: A fatal error occurred during installation.

    SQL9_Hotfix_KB955706_sqlrun_sql.msp_0.log
    Product: Microsoft SQL Server 2005 -- Error 29512. SQL Server Setup was unable add user SQLSvc@domain to local group DOMAIN\SQL Agent Group.
    Error 29512. SQL Server Setup was unable add user SQLSvc@domain to local group DOMAIN\SQL Agent Group.
    ….
    <Func Name='LaunchFunction'>
    Function=Do_sqlGroupMember
    <Func Name='GetCAContext'>
    <EndFunc Name='GetCAContext' Return='T' GetLastError='0'>
    Doing Action: Do_sqlGroupMember
    PerfTime Start: Do_sqlGroupMember : Tue May 19 10:22:39 2009
    <Func Name='Do_sqlGroupMember'>
    Local group DOMAIN\SQL Agent Group doesn't exist
    Failure adding user SQLSvc@domain to local group DOMAIN\SQL Agent Group (2221)
    Error Code: 0x800708ad (2221)
    Windows Error Text: The user name could not be found.
    Source File Name: sqlca\sqlsecurityca.cpp
    Function Name: Do_sqlGroupMember
    Source Line Number: 1145

  • Come una delle cause di questo errore potrebbe essere il fatto che uno degli account di avvio dei servizi SQL Server sia specificato nel formatto UNP (User Principal Names), per esempio user@domain.

  • Il formato UPN non è supportato in SQL Server 7.0/2000/2005/2008. In realtà potete configurare l’account di un utente in formato UPN solo nel console dei Servizi. Per esempio, non è possibile usare questo formato cambiando l’account in SQL Server Configuration Manager.

  • Sempre consigliamo usare gli strumenti di SQL per cambiare le impostazioni e la configurazione. In questo modo potete essere sicuri che i valori sono nel range e formato coretto.

Risoluzione

  • Bisogna verificare se tutti gli account di avvio dei servizi di SQL Server sono specificati nel formato NetBIOS (Domain\UserName). In caso trovasse un account specificato nel formato UPN bisogna cambiare il formato e riavviare il servizio.

Ulteriori informazioni e articoli

Buona giornata a tutti.

 

Olga Guzheva
Senior Support Engineer
Microsoft Enterprise SQL Support