A atualização do SQL Server falha com o código de erro 2714 ao executar scripts de banco de dados de atualização
Este artigo resolve um problema em que uma atualização cumulativa () ou service pack (SP) relata o erro 2714 quando você executa scripts de atualização de banco de dados.
Sintomas
Quando você aplica uma ou SP, o programa de instalação pode relatar o seguinte 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.
Ao examinar o log de erros do SQL Server, você pode observar um dos seguintes grupos de mensagens de erro:
2021-07-27 14:08:44.31 spid6s Error: 2714, Severity: 16, State: 6.
2021-07-27 14:08:44.31 spid6s There is already an object named 'DatabaseMailUserRole' in the database.
2021-07-27 14:08:44.31 spid6s Error: 2759, Severity: 16, State: 0.
2021-07-27 14:08:44.31 spid6s CREATE SCHEMA failed due to previous errors.
2021-07-27 14:08:44.31 spid6s Error: 912, Severity: 21, State: 2.
2021-07-27 14:08:44.31 spid6s Script level upgrade for database 'master' failed because upgrade step 'msdb110_upgrade.sql' encountered error 2714, state 6, 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.
2021-07-27 14:08:44.32 spid6s Error: 3417, Severity: 21, State: 3.
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.
2021-07-27 14:08:44.31 spid6s Error: 2714, Severity: 16, State: 6.
2021-07-27 14:08:44.31 spid6s There is already an object named 'TargetServersRole' in the database.
2021-07-27 14:08:44.31 spid6s Error: 912, Severity: 21, State: 2.
2021-07-27 14:08:44.31 spid6s Script level upgrade for database 'master' failed because upgrade step 'msdb110_upgrade.sql' encountered error 2714, state 6, 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.
2021-07-27 14:08:44.32 spid6s Error: 3417, Severity: 21, State: 3.
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.
Resolver o problema de atualização com o esquema DatabaseMailUserRole
Revise as informações a seguir para resolver o problema de atualização associado ao DatabaseMailUserRole
.
Causa
Esse erro ocorre se um esquema do sistema, usuário ou função estiver configurado incorretamente no msdb
banco de dados.
Também ocorre quando o script de atualização falha ao recriar o DatabaseMailUserRole
esquema no msdb
banco de dados. Esse problema pode ocorrer quando o DatabaseMailUserRole
esquema não pertence à DatabaseMailUserRole
função; por exemplo, se o esquema pertence ao dbo
.
Para obter mais informações sobre scripts de upgrade de banco de dados executados durante a instalação da ou SP, consulte Solucionando problemas de falhas de script de upgrade ao aplicar uma atualização.
Solução
Pare e reinicie o SQL Server usando o T902. Por exemplo, você pode executar este comando em um prompt de comando:
Para uma instância padrão:
NET START MSSQLSERVER /T902
Para instâncias nomeadas:
NET START MSSQL$INSTANCENAME /T902
Faça backup do banco
msdb
de dados como precaução.BACKUP DATABASE msdb TO disk = '<backup folder>'
Abra o SQL Server Management Studio, conecte-se à instância do SQL Server e faça backup do
msdb
banco de dados.Expanda Bancos de dados>Esquemas de segurança>de bancos de>dados
msdb
>>do sistema DatabaseMailuserRole.Exclua o esquema chamado
DatabaseMailUserRole
.Pare o SQL Server e reinicie-o sem o sinalizador de rastreamento 902.
Depois que o SQL Server é iniciado sem o sinalizador de rastreamento 902, o script de atualização é executado novamente e o
DatabaseMailUserRole
esquema é recriado.- Se o script de atualização do SP ou for concluído com êxito, verifique o log de erros do SQL Server e a pasta de inicialização para verificar.
- Se o script de atualização falhar novamente, verifique se há outros erros no log de erros do SQL Server e solucione os novos erros.
Resolver o problema de atualização com a função TargetServersRole
Revise as informações a seguir para resolver o problema de atualização associado ao TargetServersRole
.
Causa
Esse erro ocorre quando o script de atualização falha ao recriar a TargetServersRole
função de segurança no msdb
banco de dados. Essa função é usada em ambientes de vários servidores. Por padrão, a TargetServersRole
função de segurança pertence ao dbo
, e a função possui o TargetServersRole
esquema. Se você alterar inadvertidamente essa associação e a atualização que você está instalando incluir alterações em qualquer uma dessas funções, a atualização poderá falhar e retornar o erro 2714: There is already an object named 'TargetServersRole' in the database
. Para resolver esse erro, siga estas etapas:
Solução
Pare e reinicie o SQL Server usando o T902.
Para uma instância padrão:
NET START MSSQLSERVER /T902
Para instâncias nomeadas:
NET START MSSQL$INSTANCENAME /T902
Faça backup do banco
msdb
de dados como precaução.BACKUP DATABASE msdb TO disk = '<backup folder>'
Faça uma lista de usuários (se houver) que fazem parte dessa função no momento. Você pode listar membros da função executando a seguinte consulta:
EXEC msdb.dbo.sp_helprolemember 'TargetServersRole'
Descarte a
TargetServersRole
função usando a seguinte instrução:EXEC msdb.dbo.sp_droprole @rolename = N'TargetServersRole'
Para verificar se o problema foi resolvido, reinicie a instância do SQL Server sem usar o sinalizador
902
de rastreamento.Adicione novamente os usuários da etapa 3 ao
TargetServersRole
.