Partager via


SQL Server mise à niveau de SQL Server 2014 ou SQL Server 2016 à 2017 échoue et retourne l’erreur 1712

Cet article vous aide à résoudre le problème dans lequel la mise à niveau d’un 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 SQL Server 2017 instance peut échouer lors de l’exécution du ISServer_upgrade.sql script de mise à niveau avec l’erreur suivante :

Attendez que le handle de récupération du moteur de base de données ait échoué. Vérifiez les causes potentielles dans le journal des erreurs SQL Server.

Lorsque vous case activée 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

SQL Server script de mise à niveau rtm (version 2017) 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.

    Remarque

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

  2. Installez une build de SQL Server SQL Server 2017 CU5 ou 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 du Service Pack (SP) ou de la mise à jour cumulative (CU) est terminée. Vous pouvez case activée le journal des erreurs SQL Server et le dossier bootstrap pour vérifier l’installation terminée.

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