Share via


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

徵狀

請試想下列案例:

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

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

錯誤 1

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

無法開始執行步驟 2 (原因:JobOwner <JobOwner> 沒有許可權可以使用 <proxy #> 作為子系統 SSIS) 。  此步驟失敗。

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

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

在這個階段中 syssubsystems ,包含之可用性群組的資料庫遺漏 msdb 數據表,而且存在於實例層級 msdb 資料庫中。 若要修正這些錯誤並允許作業順利執行,您可以手動將實例層級 syssubsystems 數據表複製到 msdb 所包含可用性群組的資料庫,方法是連線到接聽程式,並在數據表中建立數據表和數據列。

錯誤 2

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

啟動的程式 『[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是因為該角色並未被授EXECUTExp_msver與 AG) master 中所包含可用性群組 (擴充預存程式的許可權。

解決方案

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

SQL Server 2022 的累積更新 4

關於 SQL Server 的累積更新

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

SQL Server 2022 的最新累積更新

狀態

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

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

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

參考資料

瞭解 Microsoft 用來描述軟體更新的 術語