A atualização do SQL Server falha e retorna o erro 15151
Este artigo ajuda você a solucionar o erro 15151 que ocorre quando você instala uma atualização cumulativa () ou service pack (SP) para o Microsoft SQL Server. O erro ocorre quando os scripts de atualização do banco de dados são executados.
Sintomas
Quando você aplica uma ou SP, o programa de instalação retorna a seguinte mensagem de erro:
Falha na espera pelo identificador de recuperação do Mecanismo de Banco de Dados. Verifique o log de erros do SQL Server para conhecer as causas possíveis.
Além disso, a seguinte entrada de erro pode ser registrada no log de erros do 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.
Causa
Esse problema ocorre porque o logon (entidade de segurança do servidor) foi descartado manualmente ou essas instruções não são seguidas.
Para obter mais informações sobre scripts de atualização de banco de dados executados durante a instalação da ou SP, consulte Solucionar problemas de falhas de script de atualização ao aplicar uma atualização.
Solução
Para resolver o problema, siga estas etapas:
Inicie o SQL Server com o sinalizador de rastreamento 902.
Recrie o login no servidor:
CREATE LOGIN [##MS_SSISServerCleanupJobLogin##] WITH PASSWORD = N'<password>', DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english], CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF;
Alterne para o
SSISDB
banco de dados e mapeie o usuário existente para o logon recém-criado:USE SSISDB GO ALTER USER [##MS_SSISServerCleanupJobUser##] WITH LOGIN =[##MS_SSISServerCleanupJobLogin##]
Em alguns casos, as informações do usuário do banco de dados também podem estar ausentes. Nesse caso, recrie o usuário no
SSISDB
banco de dados e execute novamente a etapa anterior para mapear o usuário para o logon: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