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: 1145Come 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
- PRB: User Principal Names Are Not Supported by SQL Server 7.0 or SQL Server 2000
- How to: Create a New SQL Server 2005 Failover Cluster (Setup)
- Service Accounts (Clusters)
Buona giornata a tutti.
Olga Guzheva
Senior Support Engineer
Microsoft Enterprise SQL Support