共用方式為


修正:將累積更新套用至包含可用性群組的 SQL Server 實例之後,就會發生錯誤

徵兆

請參考下列案例:

  • 您有已部署包含可用性群組的 SQL Server 2022 實例。
  • 您可以在包含的可用性群組內容中建立伺服器層級物件(登入和作業)。

在此案例中,在您在此 SQL Server 實例上安裝累積更新之後,會發生下列其中一個錯誤。

錯誤 1

SQL Server Agent 作業失敗,並出現下列錯誤訊息:

無法執行步驟 2(原因:JobOwner JobOwner <> 沒有權限使用子系統 SSIS 的 Proxy <#> 。  步驟失敗。

您會看到 SQL Server Agent 錯誤記錄檔會記錄類似下列錯誤訊息的錯誤訊息:

<時間戳> - ! [298] SQLServer 錯誤:208,無效的物件名稱 'syssubsystems'。 [SQLSTATE 42S02]
<時間戳> - ! [517] SQL 錯誤號碼 208,嚴重性 16

在這個階段中, syssubsystems 數據表會從 msdb 自主可用性群組的資料庫遺失,並存在於實例層級 msdb 資料庫中。 若要修正這些錯誤並允許作業順利執行,您可以藉由連線到msdb接聽程式並建立數據表和數據列,手動將實例層級syssubsystems數據表複製到自主可用性群組的資料庫。

錯誤 2

建立包含的可用性群組之後,每隔五秒就會看到下列錯誤訊息:

啟動的 proc '[dbo]。在佇列 '<AGName>_AG_SYNC_CONTAINED_msdb.dbo.syspolicy_event_queue' 上執行的 [sp_syspolicy_events_reader]' 會輸出下列專案:'無法以資料庫主體身分執行,因為主體 “##MS_PolicyEventProcessingLogin##” 不存在,無法模擬這種類型的主體,或您沒有許可權。

錯誤 3

Database Mail 停止運作之後,嘗試執行 sysmail 預存程式將會回報類似下列的錯誤訊息:

物件 『[dbo]。[sp_syspolicy_events_reader]' 不存在於資料庫 'master' 中,或對這項作業無效。

錯誤 4

建立自主可用性群組之後,如果您連線到自主可用性群組接聽程式並建立 SQL Server 登入主體,當您使用登入主體進行連線時,將會在 SQL Server Management Studio (SSMS) 中收到下列錯誤:

線上到 <接聽程式時發生錯誤>
無法擷取此要求的資料。 (Microsoft.SqlServer.Management.Sdk.Sfc)
執行 Transact-SQL 陳述式或批次時發生例外狀況。 (Microsoft.SqlServer.ConnectionInfo)
物件 'xp_msver', 資料庫 'mssqlsystemresource', 架構 'sys' 上的 EXECUTE 許可權遭到拒絕。 (Microsoft SQL Server,錯誤: 229)

之所以發生此錯誤, public 是因為角色未授與 EXECUTE 自主可用性群組 (AG) 主要上擴充預存程序的許可權 xp_msver

解決方法

此問題已修正在 SQL Server 的下列累積更新中:

SQL Server 2022 的累積更新 4

關於 SQL Server 的累積更新

SQL Server 的每個新累積更新都包含先前組建中的所有 Hotfix 和安全性修正。 建議您為 SQL Server 版本安裝最新的組建:

SQL Server 2022 的最新累積更新

狀態

Microsoft目前正在調查這些問題。 本文會在我們找到更多資訊或指引時更新。 在那之前,您可以先採取下列必要預防措施,再將累積更新安裝到包含可用性群組的安裝:

  • 編寫伺服器層級物件和 SQL Server Agent 物件的腳本。
  • 卸除包含的可用性群組。
  • 套用累積更新。
  • 重新建立包含的可用性群組。

Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。

參考資料

了解 Microsoft 用來說明軟體更新的術語