Partager via


Erreur 945 et SQL Server mise à niveau échoue si SSISDB est configuré avec le groupe de disponibilité

Cet article vous aide à résoudre un problème qui se produit si une mise à jour cumulative (CU) ou un Service Pack (SP) pour Microsoft SQL Server signale le code d’erreur 945 lorsque vous exécutez des scripts de mise à niveau de base de données.

Symptômes

Lorsque vous appliquez un cu ou un fournisseur de services, le programme d’installation retourne le message d’erreur suivant :

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.

En outre, l’entrée d’erreur suivante peut être consignée dans le journal des erreurs SQL Server :

Database 'master' is upgrading script 'SSIS_hotfix_install.sql' from level 201331031 to level 201331592.
Error: 945, Severity: 14, State: 2.
Database 'SSISDB' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.
Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'SSIS_hotfix_install.sql' encountered error 945, state 2, severity 25. 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.
SQL Server shutdown has been initiated

Cause

Si votre base de données de catalogue SQL Server Integration Services (SSISDB) est ajoutée à un groupe de disponibilité Always On, la mise à niveau du script peut échouer. Le processus de mise à niveau s’exécute en mode mono-utilisateur. Toutefois, une base de données de disponibilité doit être une base de données multi-utilisateur. Par conséquent, pendant l’installation de la mise à niveau, toutes les bases de données de disponibilité, y compris SSISDB, sont mises hors connexion et ne sont pas mises à niveau.

Pour plus d’informations, consultez Mise à niveau de SSISDB dans un groupe de disponibilité.

Résolution

Pour résoudre ce problème, procédez comme suit :

  1. Supprimez SSISDB du groupe de disponibilité.
  2. Exécutez la mise à niveau de cu sur chaque nœud.
  3. Une fois la mise à niveau terminée, restaurez SSISDB sur le groupe de disponibilité.