Partager via


Échec de la mise à niveau de SQL Server 2014 ou SQL Server 2016 vers 2017 et retourne l’erreur 1712

Cet article vous aide à résoudre et à résoudre le problème dans lequel la mise à niveau d’un serveur SQL Server 2016 ou SQL Server 2014 vers SQL Server 2017 signale 1712 lors de l’exécution de scripts de mise à niveau de base de données.

Symptômes

La mise à niveau vers une instance SQL Server 2017 peut échouer lors de l’exécution du ISServer_upgrade.sql script de mise à niveau avec l’erreur suivante :

Échec de l’attente du handle de récupération du moteur de base de données. Pour connaître les causes potentielles, consultez le journal des erreurs de SQL Server.

Lorsque vous vérifiez le journal des erreurs SQL Server, vous remarquez l’une des entrées d’erreur suivantes :

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.

Cause

La version de SQL Server 2017 pour fabriquer (RTM) un script de mise à niveau inclut une bibliothèque de liens dynamiques (DLL) qui exécute des opérations d’index en ligne pour toutes les éditions de SQL Server, bien que seules les éditions Entreprise et Développeur prennent en charge cette fonctionnalité. Pour plus d’informations sur les scripts de mise à niveau de base de données, consultez Résoudre les échecs de script de mise à niveau lors de l’application d’une mise à jour.

Résolution

Pour résoudre l’erreur 1712, procédez comme suit :

  1. Démarrez SQL Server avec l’indicateur de trace (TF) 902. Pour plus d’informations, consultez Étapes de démarrage de SQL avec l’indicateur de trace 902.

    Note

    Comme cette erreur se produit après la mise à niveau des fichiers binaires, le moteur de base de données SQL Server sera déjà au niveau DE SQL Server 2017 RTM et vous pouvez toujours démarrer l’instance avec TF 902.

  2. Installez une build de SQL Server qui est SQL Server 2017 CU5 ou version ultérieure.

  3. Supprimez TF 902 des paramètres de démarrage, puis redémarrez SQL Server.

  4. Une fois SQL Server démarré sans TF 902, le script de mise à niveau s’exécute à nouveau.

    • Si le script de mise à niveau se termine correctement, la mise à niveau de Service Pack (SP) ou de mise à jour cumulative (CU) est terminée. Vous pouvez vérifier le journal des erreurs SQL Server et le dossier de démarrage pour vérifier l’installation terminée.

    • Si le script de mise à niveau échoue à nouveau, vérifiez le journal des erreurs SQL Server pour obtenir des entrées d’erreur supplémentaires, puis résolvez les nouvelles erreurs.