MSSQLSERVER_912
Si applica a: SQL Server 2019 (15.x) e versioni successive - Solo Windows
Dettagli
Attributo | Valore |
---|---|
Nome prodotto | SQL Server |
ID evento | 912 |
Origine evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbolico | DB_RUNSCRIPTUPGRADE_STEP_FAILED |
Testo del messaggio | Aggiornamento a livello di script per il database '%.*ls' non riuscito perché il passaggio di aggiornamento '%.*ls' ha rilevato l'errore %d, stato %d, gravità %d. Si tratta di una condizione di errore grave che potrebbe interferire con il normale funzionamento. Il database verrà portato offline. Se si è verificato durante l'aggiornamento del database 'master', l'errore impedirà l'avvio dell'intera istanza di SQL Server. Esaminare le voci dei log degli errori precedenti per verificare la presenza di errori, intraprendere le azioni correttive appropriate e riavviare il database in modo che l'aggiornamento dello script venga eseguito fino al completamento. |
Spiegazione
L'errore 912 indica che non è stato possibile eseguire lo script del database e aggiornare i database al livello più recente richiesto dal server. Si tratta di un messaggio di errore generale che contiene un riferimento allo script di aggiornamento non riuscito e l'errore rilevato dallo script non riuscito.
Quando SQL Server viene aggiornato o viene applicato un aggiornamento cumulativo, vengono aggiornati inizialmente solo i file binari. Il database e i relativi oggetti rimangono invariati. Dopo che i file binari vengono sostituiti con nuove versioni e il servizio viene riavviato per la prima volta, viene avviato un aggiornamento del database. Gli script di aggiornamento da eseguire si trovano in C:\Programmi\Microsoft SQL Server\MSSQLXX. AAAA\MSSQL\Install.
Se il processo di aggiornamento rileva errori di aggiornamento a livello di script (errore 912), potrebbero essere generati altri errori. Ad esempio, questi errori possono accompagnare l'errore 912 e contribuire a spiegare ulteriormente l'errore:
Error: 1101, Severity: 17, State: 1.
Could not allocate a new page for database 'tempdb' because of insufficient disk space in filegroup 'PRIMARY'. Create the necessary space by dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'xxx.sql' encountered error <Error Number>, state <Error State>, severity <Error Severity>. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.
Error: 3417, Severity: 21, State: 3.
Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.
In genere quando il processo di installazione ha esito negativo, l'utente potrebbe visualizzare l'errore seguente nell'interfaccia utente grafica, presupponendo che l'installazione venga eseguita manualmente tramite la procedura guidata. Tenere presente che questo errore può essere generato con un'ampia gamma di problemi di installazione. In tutti i casi, tuttavia, viene richiesto di controllare il log degli errori di SQL Server per altre informazioni.
Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
Azione utente
Per trovare la causa del problema, seguire questa procedura:
- Individuare e aprire il log degli errori di SQL Server.
- Esaminare il log per individuare gli errori che si sono verificati immediatamente prima dell'errore 912 e concentrarsi sulla risoluzione degli errori a cui si fa riferimento nella messaggistica dell'errore 912.
- Per alcuni scenari comuni segnalati dai clienti Microsoft, vedere "Wait on motore di database recovery handle failed" e "912" and "3417" errors
- In alcuni casi, come parte del processo, potrebbe essere necessario avviare il servizio SQL Server con il flag di traccia 902 (vedere i passaggi seguenti). L'avvio del servizio con T902 consente al servizio di ignorare l'esecuzione degli script di aggiornamento durante l'avvio. In questo modo, si ottiene la possibilità di analizzare e risolvere il problema sottostante.
- Assicurarsi di rimuovere il flag di traccia dopo aver risolto il problema in modo che il processo di installazione possa riavviare la fase di esecuzione dello script di aggiornamento.
Passaggi per avviare SQL Server con il flag di traccia 902
Utilizzo di Gestione configurazione
- Avviare Gestione configurazione SQL Server.
- Selezionare l'istanza di SQL Server in Servizi SQL Server.
- Fare clic con il pulsante destro del mouse sull'istanza e selezionare Proprietà.
- Selezionare la scheda Parametri di avvio.
- Usare il campo Specifica un parametro di avvio per aggiungere il flag di traccia. Digitare "-T902" (senza virgolette) e fare clic su Aggiungi.
- Selezionare OK e chiudere le proprietà dell'istanza.
- Avviare il servizio SQL Server.
Per altre informazioni su come configurare le opzioni di avvio, vedere Servizi di Gestione configurazione SQL - Configurare le opzioni di avvio del server
Nota
Assicurarsi di rimuovere -T902 dalla configurazione dopo aver risolto il problema.
Prompt dei comandi con sqlservr.exe
Aprire un prompt dei comandi con privilegi amministrativi e passare alla directory BINn di SQL Server, ad esempio C:\Programmi\Microsoft SQL Server\MSSQLXX. AAAA\MSSQL\Binn.
Eseguire l'oggetto
sqlservr.exe -s <instance> -T902
Istanza predefinita:
cd \Program Files\Microsoft SQL Server\MSSQL<version>\MSSQL\Binn sqlservr.exe -s MSSQLSERVER -T902
Istanza denominata, dove "sql2016" è un esempio di nome di istanza:
cd \Program Files\Microsoft SQL Server\MSSQL<version>.<instance name>\MSSQL\Binn sqlservr.exe -s sql2016 -T902
Per arrestare l'istanza al termine, premere
CTRL+C
, quindiY
Prompt dei comandi con net start
Istanza predefinita:
NET START MSSQLSERVER /T902
Istanza denominata:
NET START MSSQL$INSTANCENAME /T902