Applies ToSQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2019 on Windows SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows

症状

假设使用 Always On 高可用性组 (AG) 作为辅助副本。 尝试将 Microsoft SQL Server 2016 升级到 Service Pack 2 (SP2) 累积更新 11 (CU11) 或更高版本时,升级脚本会失败,并且可能会收到以下错误消息:

DateTime spidSpidId 正在升级数据库 [DatabaseName] 中的订阅设置和系统对象

DateTime spidSpidId       无法更新数据库"DatabaseName",因为数据库是只读的。

DateTime spidSpidId       执行命令时sp_vupgrade_replication。

原因

在 SQL AG 的辅助副本上执行升级时,数据库恢复与升级脚本执行之间会存在竞争。 因此,在只读 数据库sp_vupgrade_replication无法正确筛选出只读数据库。 在短时间内,恢复阶段中的辅助数据库会包含在可编辑数据库列表中。 因此,尝试更新这些数据库时,将返回异常,因为数据库是只读的。

状态

Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。

解决方法

此问题已针对以下更新的累积更新SQL Server:

关于更新的累积SQL Server:

每个新的累积更新SQL Server包含所有修补程序以及上一个累积更新中包含的所有安全修补程序。 查看最新累积更新,了解SQL Server:

参考

了解 Microsoft 用于描述软件更新的术语

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。