Partager via


L’erreur 945 et la mise à niveau de SQL Server échouent 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 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 une cu ou un fournisseur de services, le programme d’installation retourne le message d’erreur suivant :

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

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 la 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 cu sur chaque nœud.
  3. Une fois la mise à niveau terminée, restaurez SSISDB sur le groupe de disponibilité.