執行更新資料庫文本時,SQL Server 升級失敗,錯誤碼為 2714
本文解決了當您執行資料庫升級腳本時,累積更新 (CU) 或 Service Pack (SP) 報告錯誤 2714 的問題。
徵兆
當您套用 CU 或 SP 時,安裝程式可能會回報下列錯誤:
等候 Database Engine 復原控制代碼失敗。 請檢查 SQL Server 錯誤記錄檔以了解潛在原因。
當您檢閱 SQL Server 錯誤記錄檔時,您可能會注意到下列其中一組錯誤訊息:
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.
解決 DatabaseMailUserRole 架構的升級問題
檢閱下列信息來解決與 DatabaseMailUserRole
相關聯的升級問題。
原因
如果資料庫中的系統架構、使用者或角色設定錯誤 msdb
,就會發生此錯誤。
當升級腳本無法在資料庫中重新建立 DatabaseMailUserRole
架構 msdb
時,也會發生此情況。 當架構不是角色所擁有DatabaseMailUserRole
時DatabaseMailUserRole
,就會發生此問題;例如,如果架構是由 dbo
所擁有,則會發生此問題。
如需在 CU 或 SP 安裝期間執行之資料庫升級腳本的詳細資訊,請參閱 針對套用更新時的升級腳本失敗進行疑難解答。
解決方法
使用 T902 停止並重新啟動 SQL Server。 例如,您可以從命令提示字元執行此命令:
針對預設實例:
NET START MSSQLSERVER /T902
針對具名實例:
NET START MSSQL$INSTANCENAME /T902
備份您的
msdb
資料庫作為預防措施。BACKUP DATABASE msdb TO disk = '<backup folder>'
開啟 SQL Server Management Studio、連線到 SQL Server 實例,以及備份
msdb
資料庫。展開 [資料庫>系統資料庫>
msdb
>安全性>架構>DatabaseMailuserRole]。刪除名為
DatabaseMailUserRole
的架構。停止 SQL Server,並在沒有追蹤旗標 902 的情況下重新啟動它。
在 SQL Server 啟動且沒有追蹤旗標 902 之後,升級腳本會再次執行,並
DatabaseMailUserRole
重新建立架構。- 如果SP或 CU 升級文本順利完成,請檢查 SQL Server 錯誤記錄檔和啟動程式資料夾以確認。
- 如果升級腳本再次失敗,請檢查 SQL Server 錯誤記錄檔中是否有其他錯誤,並針對新的錯誤進行疑難解答。
解決 TargetServersRole 角色的升級問題
檢閱下列信息來解決與 TargetServersRole
相關聯的升級問題。
原因
升級文本無法重新 TargetServersRole
建立 msdb
資料庫中的安全性角色時,就會發生此錯誤。 此角色用於多伺服器環境中。 根據預設, TargetServersRole
安全性角色是由 dbo
所擁有,而角色則 TargetServersRole
擁有架構。 如果您不小心變更此關聯,而您安裝的更新包含這些角色的變更,升級可能會失敗並傳回錯誤 2714: There is already an object named 'TargetServersRole' in the database
。 若要解決此錯誤,請依照下列步驟執行︰
解決方法
使用 T902 停止並重新啟動 SQL Server。
針對預設實例:
NET START MSSQLSERVER /T902
針對具名實例:
NET START MSSQL$INSTANCENAME /T902
備份您的
msdb
資料庫作為預防措施。BACKUP DATABASE msdb TO disk = '<backup folder>'
將目前屬於此角色的使用者 (如果有的話) 製作一份清單。 您可以執行下列查詢來列出角色的成員:
EXEC msdb.dbo.sp_helprolemember 'TargetServersRole'
使用下列語句卸
TargetServersRole
除角色:EXEC msdb.dbo.sp_droprole @rolename = N'TargetServersRole'
若要檢查問題是否已解決,請重新啟動 SQL Server 實例,而不使用追蹤旗標
902
。將步驟 3 中的使用者重新新增至
TargetServersRole
。