Risolvere gli errori dello script di aggiornamento in fase di aggiornamento
Script di aggiornamento del database
Gli script di aggiornamento T-SQL vengono forniti insieme a ogni aggiornamento cumulativo di SQL Server. Vengono eseguite dopo che i file binari di SQL Server vengono sostituiti con le versioni più recenti. Quando si applica un aggiornamento cumulativo (CU) a un'istanza esistente di SQL Server o lo si aggiorna a una versione più recente, il processo di installazione associato esegue la procedura in due fasi diverse:
Nella fase iniziale, il processo di installazione aggiorna solo i file binari (DLL, EXEs), non il database e i relativi oggetti.
Al termine dell'aggiornamento e il servizio viene riavviato per la prima volta, il processo di aggiornamento avvia l'aggiornamento del database usando lo script msdb110_upgrade.sql nella cartella C:\Programmi\Microsoft SQL Server\MSSQLXX. AAAA\MSSQL\Install\.
Questi script T-SQL assicurano che i database di sistema siano pronti per le nuove correzioni o le funzionalità fornite come parte delle CPU o dei Service Pack (SP) corrispondenti o per la nuova versione. Un'installazione completa di CU e SP o l'aggiornamento a una nuova versione richiede l'esecuzione corretta dello script di aggiornamento del database. In caso contrario, possono verificarsi problemi imprevisti con l'istanza di SQL Server. L'errore di esecuzione dello script di aggiornamento è una causa comune degli errori di installazione di CU e SP. Questa serie di risoluzione dei problemi illustra gli errori comuni in questa categoria e i passaggi che è possibile eseguire per risolverli.
Metodologia generale di risoluzione degli errori
- Esaminare i log degli errori di SQL Server (ERRORLOG) per informazioni dettagliate sull'errore.
- Per ignorare l'esecuzione dello script di aggiornamento, avviare SQL Server usando il flag di traccia 902.
- Risolvere la causa dell'errore in base a diversi scenari.
Come indicato in MSSQLSERVER_912, quando gli script di aggiornamento hanno esito negativo, l'installazione guidata segnala il messaggio iniziale "Wait on the motore di database recovery handle failed. Controllare il log degli errori di SQL Server per individuare potenziali cause". Il log degli errori di SQL Server includerà voci per i messaggi di errore 912 e 3417. Gli errori 912 e 3417 sono errori generici associati a errori di script di aggiornamento del database. E i messaggi precedenti all'errore 912 in genere forniscono informazioni su ciò che non è riuscito esattamente durante l'esecuzione di questi script. La risoluzione dei problemi e la correzione di questi errori richiederanno l'avvio di SQL Server con il flag di traccia 902.
Note
L'avvio di SQL Server con il flag di traccia 902 fa parte della risoluzione dei problemi e della correzione degli errori di script di aggiornamento. È applicabile a tutti gli scenari in cui un CU, SP o l'aggiornamento a una nuova versione non riesce durante l'esecuzione dello script di aggiornamento del database. Per avviare l'istanza di SQL Server usando il flag di traccia 902, vedere Passaggi per avviare SQL Server con il flag di traccia 902.
Dopo aver avviato SQL Server con il flag di traccia 902, è possibile selezionare uno degli articoli nella sezione seguente per risolvere i problemi.
Messaggi di errore dello script di aggiornamento del database
"Wait on the motore di database recovery handle failed" è il messaggio di errore comune per gli errori seguenti:
- Errore 574: L'istruzione Config non può essere usata all'interno di una transazione
- Errore 945: Aggiornamento di SSISDB che fa parte del gruppo di disponibilità
- Errore 1712: Le operazioni sugli indici online possono essere eseguite solo in Enterprise Edition
- Errore 2714: L'oggetto esiste già un errore
- Errore 4860: Nome file non esistente
- Errore 5133: Impossibile creare un database temporaneo
- Errore 6528: l'aggiornamento di SQL Server non riesce con errore 6528
- Errore 15151: Problemi delle entità SSISDB
- Errore 15173: Problemi di eliminazione delle entità server
- Errore 17182: TLS 1.0 disabilitato
- Errori durante l'aggiornamento di SQL Server quando le entità basate su certificati possiedono oggetti utente