Error en la actualización de SQL Server con el código de error 2714 al ejecutar scripts de base de datos de actualización
En este artículo se resuelve un problema por el que una actualización acumulativa (CU) o Service Pack (SP) notifica el error 2714 al ejecutar scripts de actualización de base de datos.
Síntomas
Al aplicar una CU o SP, el programa de instalación podría notificar el siguiente error:
Error en la espera del controlador de recuperación del Motor de base de datos. Compruebe el registro de errores de SQL Server para buscar posibles causas.
Al revisar el registro de errores de SQL Server, es posible que observe uno de los siguientes grupos de mensajes de error:
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.
Resolución del problema de actualización con el esquema DatabaseMailUserRole
Revise la siguiente información para resolver el problema de actualización asociado a DatabaseMailUserRole
.
Causa
Este error se produce si un esquema del sistema, un usuario o un rol están mal configurados en la msdb
base de datos.
También se produce cuando el script de actualización no puede volver a crear el DatabaseMailUserRole
esquema en la msdb
base de datos. Este problema puede producirse cuando el DatabaseMailUserRole
esquema no es propiedad del DatabaseMailUserRole
rol; por ejemplo, si el esquema es propiedad dbo
de .
Para obtener más información sobre los scripts de actualización de base de datos que se ejecutan durante la instalación de CU o SP, consulte Solución de problemas de errores de script de actualización al aplicar una actualización.
Solución
Detenga y reinicie SQL Server mediante T902. Por ejemplo, puede ejecutar este comando desde un símbolo del sistema:
Para una instancia predeterminada:
NET START MSSQLSERVER /T902
Para las instancias con nombre:
NET START MSSQL$INSTANCENAME /T902
Realice una copia de seguridad de la
msdb
base de datos como medida de precaución.BACKUP DATABASE msdb TO disk = '<backup folder>'
Abra SQL Server Management Studio, conéctese a la instancia de SQL Server y realice una copia de seguridad de la
msdb
base de datos.Expanda Bases de datos Esquemas>de seguridad>de bases>de datos
msdb
>>del sistema DatabaseMailuserRole.Elimine el esquema denominado
DatabaseMailUserRole
.Detenga SQL Server y reinícielo sin la marca de seguimiento 902.
Después de que SQL Server se inicie sin la marca de seguimiento 902, se vuelve a ejecutar el script de actualización y se vuelve a crear el
DatabaseMailUserRole
esquema.- Si el script de actualización de SP o CU se completa correctamente, compruebe el registro de errores de SQL Server y la carpeta bootstrap para comprobarlo.
- Si se produce un error de nuevo en el script de actualización, compruebe el registro de errores de SQL Server para ver otros errores y solucione los nuevos errores.
Resolución del problema de actualización con el rol TargetServersRole
Revise la siguiente información para resolver el problema de actualización asociado a TargetServersRole
.
Causa
Este error se produce cuando el script de actualización no puede volver a crear el TargetServersRole
rol de seguridad en la msdb
base de datos. Este rol se usa en entornos de varios servidores. De forma predeterminada, el TargetServersRole
rol de seguridad es propiedad de dbo
y el rol posee el TargetServersRole
esquema. Si cambia accidentalmente esta asociación y la actualización que va a instalar incluye cambios en cualquiera de estos roles, la actualización podría producir un error y devolver el error 2714: There is already an object named 'TargetServersRole' in the database
. Para solucionar el error, siga estos pasos:
Solución
Detenga y reinicie SQL Server mediante T902.
Para una instancia predeterminada:
NET START MSSQLSERVER /T902
Para las instancias con nombre:
NET START MSSQL$INSTANCENAME /T902
Realice una copia de seguridad de la
msdb
base de datos como medida de precaución.BACKUP DATABASE msdb TO disk = '<backup folder>'
Cree una lista de usuarios (si existen) que formen parte actualmente de este rol. Puede enumerar los miembros del rol ejecutando la consulta siguiente:
EXEC msdb.dbo.sp_helprolemember 'TargetServersRole'
Quite el
TargetServersRole
rol mediante la instrucción siguiente:EXEC msdb.dbo.sp_droprole @rolename = N'TargetServersRole'
Para comprobar si se ha resuelto el problema, reinicie la instancia de SQL Server sin usar la marca
902
de seguimiento .Vuelva a agregar los usuarios del paso 3 a
TargetServersRole
.