Condividi tramite


L'aggiornamento di SQL Server da SQL Server 2014 o SQL Server 2016 a 2017 ha esito negativo e restituisce l'errore 1712

Questo articolo illustra come risolvere il problema in cui l'aggiornamento di sql Server 2016 o SQL Server 2014 a SQL Server 2017 segnala 1712 durante l'esecuzione degli script di aggiornamento del database.

Sintomi

L'aggiornamento a un'istanza di SQL Server 2017 potrebbe non riuscire durante l'esecuzione dello ISServer_upgrade.sql script di aggiornamento con l'errore seguente:

Attesa dell'handle di recupero del Motore di database non riuscita. Controllare il log degli errori di SQL Server per individuare le possibili cause.

Quando si controlla il log degli errori di SQL Server, si nota una delle voci di errore seguenti:

2020-10-26 10:08:09.94 spid6s      Database 'master' is upgrading script 'ISServer_upgrade.sql' from level 0 to level 500. 
2020-10-26 10:08:09.94 spid6s      --------------------------------------------- 
2020-10-26 10:08:09.94 spid6s      Starting execution of ISServer_upgrade.SQL 
2020-10-26 10:08:09.94 spid6s      --------------------------------------------- 
2020-10-26 10:08:09.94 spid6s        
2020-10-26 10:08:09.94 spid6s      Taking SSISDB to single user mode 
2020-10-26 10:08:09.94 spid6s      Setting database option SINGLE_USER to ON for database 'SSISDB'. 
2020-10-26 10:08:10.47 spid6s      Error: 1712, Severity: 16, State: 1. 
2020-10-26 10:08:10.47 spid6s      Online index operations can only be performed in Enterprise edition of SQL Server. 
2020-10-26 10:08:10.47 spid6s      Error: 917, Severity: 15, State: 1. 
2020-10-26 10:08:10.47 spid6s      An upgrade script batch failed to execute for database 'master' due to compilation error. Check the previous error message for the line which caused compilation to fail. 
2020-10-26 10:08:10.47 spid6s      Error: 912, Severity: 21, State: 2. 
2020-10-26 10:08:10.47 spid6s      Script level upgrade for database 'master' failed because upgrade step 'ISServer_upgrade.sql' encountered error 917, state 1, severity 15. 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. 
2020-10-26 10:08:10.48 spid6s      Error: 3417, Severity: 21, State: 3. 
2020-10-26 10:08:10.48 spid6s      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. 
2020-10-26 10:08:10.48 spid6s      SQL Server shutdown has been initiated 
2020-10-26 10:08:10.48 spid6s      SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required. 
2020-10-26 10:08:10.50 spid15s     The SQL Server Network Interface library successfully deregistered the Service Principal Name (SPN) [ MSSQLSvc/SAFHSQL01.SAFEHAVEN.com ] for the SQL Server service. 
2020-10-26 10:08:10.50 spid15s     The SQL Server Network Interface library successfully deregistered the Service Principal Name (SPN) [ MSSQLSvc/SAFHSQL01.SAFEHAVEN.com:1433 ] for the SQL Server service.

Causa

Sql Server 2017 release to manufacture (RTM) upgrade script include una libreria a collegamento dinamico (DLL) che esegue operazioni sugli indici online per tutte le edizioni di SQL Server, anche se solo le edizioni Enterprise e Developer supportano questa funzionalità. Per altre informazioni sugli script di aggiornamento del database, vedere Risolvere gli errori di script di aggiornamento durante l'applicazione di un aggiornamento.

Risoluzione

Per risolvere l'errore 1712, seguire questa procedura:

  1. Avviare SQL Server insieme al flag di traccia (TF) 902. Per altre informazioni, vedere Passaggi per avviare SQL con il flag di traccia 902.

    Note

    Poiché questo errore si verifica dopo l'aggiornamento dei file binari, il motore di database di SQL Server sarà già a livello di SQL Server 2017 RTM ed è comunque possibile avviare l'istanza con TF 902.

  2. Installare una build di SQL Server che è SQL Server 2017 CU5 o versione successiva.

  3. Rimuovere TF 902 dai parametri di avvio e quindi riavviare SQL Server.

  4. Dopo l'avvio di SQL Server senza TF 902, lo script di aggiornamento verrà eseguito di nuovo.

    • Se lo script di aggiornamento viene completato correttamente, l'aggiornamento del Service Pack (SP) o dell'aggiornamento cumulativo (CU) è stato completato. È possibile controllare il log degli errori di SQL Server e la cartella bootstrap per verificare l'installazione completata.

    • Se lo script di aggiornamento non riesce di nuovo, controllare il log degli errori di SQL Server per ulteriori voci di errore e quindi risolvere i nuovi errori.