KB4483571-修正:當涉及可用性群組資料庫的跨資料庫事務從 SQL Server trigger 提交時,可能是宣告失敗

徵狀

假設您至少有一個在 Microsoft SQL Server 2016 或2017中有 DTC_SUPPORT = PER_DB 的 AlwaysOn 可用性群組。 如果您執行的 SQL Server 觸發套裝程式含至少包含其中一個可用性群組資料庫的跨資料庫事務,可能會發生宣告失敗。 SQL Server 錯誤記錄會報告下列宣告失敗訊息:

DateTime spid20s * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * [* * * * * * * * *DATETIME SPID20S * 開始堆疊轉儲:DateTime spid20s * Location: FileName: 3880DateTime spid20s * 運算式: m_state = = BaseXact:: XACT_PREPARED | |m_state = = BaseXact:: XACT_COMMITTEDDateTime SPID20S * SPID:20

DateTime spid20s 錯誤:17066、嚴重性:16、State:1。DateTime Spid20s SQL Server Assertion: File: <檔案名>,Line =LineNumber 失敗斷言 = ' m_state = = BaseXact:: XACT_PREPARED | |m_state = = BaseXact:: XACT_COMMITTED "。 此錯誤可能是與時間有關的。 如果在重新執行語句後發生錯誤,請使用 DBCC CHECKDB 來檢查資料庫的結構完整性,或重新開機伺服器以確保記憶體中資料結構未損毀。DateTime spid20s 錯誤:3624、嚴重性:20、State:1。DateTime spid20s 系統斷言檢查已失敗。 如需詳細資訊,請參閱 SQL Server 錯誤記錄。 通常,宣告失敗是由軟體錯誤或資料損毀所導致。 若要檢查資料庫是否損毀,請考慮執行 DBCC CHECKDB。 如果您同意在安裝期間將轉儲傳送至 Microsoft,則會將迷你轉儲傳送至 Microsoft。 在最新的 Service Pack 中,或從技術支援取得的修補程式中,可能會有 Microsoft 的更新。

此外,您可能會收到類似以下的錯誤訊息:

DateTimeServer 錯誤:19407,嚴重性:16,狀態:1。

DateTimeServer 可用性群組 [群組] 'GroupName'與 Windows Server 容錯移轉叢集之間的租用已過期。SQL Server 實例與 Windows Server 容錯移轉叢集之間出現連線問題。若要判斷可用性群組是否正確地進行了容錯移轉,請檢查 Windows Server 容錯移轉叢集中對應的可用性群組資源。

狀態

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

解決方案

累積更新資訊:

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

關於 SQL Server 的累積更新:每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

隨選熱修復程式資訊:

此問題已在 SQL Server 的下列隨選修正程式中修正:

參考

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

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×