SQL Server mise à niveau échoue et retourne l’erreur 15151
Cet article vous aide à résoudre l’erreur 15151 qui se produit lorsque vous installez une mise à jour cumulative (CU) ou un Service Pack (SP) pour Microsoft SQL Server. L’erreur se produit lorsque des scripts de mise à niveau de base de données sont exécutés.
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 :
Error: 15151, Severity: 16, State: 1.
Cannot find the login '##MS_SSISServerCleanupJobLogin##', because it does not exist or you do not have permission.
Cause
Ce problème se produit parce que la connexion (principal du serveur) a été supprimée manuellement ou que ces instructions ne sont pas suivies.
Pour plus d’informations sur les scripts de mise à niveau de base de données qui s’exécutent pendant l’installation de cu ou de SP, consultez Résoudre les échecs de script de mise à niveau lors de l’application d’une mise à jour.
Résolution
Pour résoudre ce problème, procédez comme suit :
Démarrez SQL Server avec l’indicateur de trace 902.
Recréez la connexion sur le serveur :
CREATE LOGIN [##MS_SSISServerCleanupJobLogin##] WITH PASSWORD = N'<password>', DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english], CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF;
Basculez vers la
SSISDB
base de données et mappez l’utilisateur existant à la connexion nouvellement créée :USE SSISDB GO ALTER USER [##MS_SSISServerCleanupJobUser##] WITH LOGIN =[##MS_SSISServerCleanupJobLogin##]
Dans certains cas, les informations utilisateur de la base de données peuvent également être manquantes. Dans ce cas, recréez l’utilisateur dans la
SSISDB
base de données, puis réexécutez l’étape précédente pour mapper l’utilisateur à la connexion :USE [SSISDB] GO DROP USER [##MS_SSISServerCleanupJobUser##] GO CREATE USER [##MS_SSISServerCleanupJobUser##] FOR LOGIN [##MS_SSISServerCleanupJobLogin##] GO ALTER USER [##MS_SSISServerCleanupJobUser##] WITH DEFAULT_SCHEMA=[dbo] GO GRANT EXECUTE ON [internal].[cleanup_server_project_version] TO [##MS_SSISServerCleanupJobUser##] GO GRANT EXECUTE ON [internal].[cleanup_server_retention_window] TO [##MS_SSISServerCleanupJobUser##] GO