Condividi tramite


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.

errore di aggiornamento nell'interfaccia utente grafica

Azione utente

Per trovare la causa del problema, seguire questa procedura:

  1. Individuare e aprire il log degli errori di SQL Server.
  2. 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.
  3. Per alcuni scenari comuni segnalati dai clienti Microsoft, vedere "Wait on motore di database recovery handle failed" e "912" and "3417" errors
  4. 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.
  5. 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

  1. Avviare Gestione configurazione SQL Server.
  2. Selezionare l'istanza di SQL Server in Servizi SQL Server.
  3. Fare clic con il pulsante destro del mouse sull'istanza e selezionare Proprietà.
  4. Selezionare la scheda Parametri di avvio.
  5. Usare il campo Specifica un parametro di avvio per aggiungere il flag di traccia. Digitare "-T902" (senza virgolette) e fare clic su Aggiungi.
  6. Selezionare OK e chiudere le proprietà dell'istanza.
  7. 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

  1. 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.

  2. 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
    
  3. Per arrestare l'istanza al termine, premere CTRL+C , quindi Y

Prompt dei comandi con net start

Istanza predefinita:

NET START MSSQLSERVER /T902 

Istanza denominata:

NET START MSSQL$INSTANCENAME  /T902