Applies To
SQL 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 2017 on Windows

徵兆

請試想下列案例:

  • 您使用 Microsoft SQL Server 2016 Service Pack 2 (SP2) 累積更新 2 (CU2) 或更新版本。

  • 您執行的實例會主控許多資料庫, (通常超過 200 個) ,而實例是Always On可用性群組 (AG) (的一部分,通常具有次要伺服器) 的角色。 附註: 所有使用者資料庫都不需要屬於 AG。

  • 您 (VSS) 應用程式執行大量陰影複製服務,以要求SQL Server實例之所有或部分資料庫的備份。

在此案例中,SQL 寫入器服務可能會鎖死,並且無限期地鎖定主 (sys.sysdbreg 中具有 object_id 28) 的內部系統資料表。 此外,這些鎖定也會使系統動態管理檢視無法讀取, (DMV) 如 sys.dm_hadr_database_replica_states,而且可能會導致實例中的主要次要封鎖。 此外,您也注意到區塊鏈分析會傳回來自 VSS Writer SQL Server做為標題封鎖程式的下列語句:

「從 master.sys.databases 選取名稱、recovery_model_desc、state_desc、CONVERT (整數、is_in_standby) 、ISNull (source_database_id,0) 」

然後SQL Server會有ASYNC_NETWORK_IO的等候狀態。

附註: 由於已實作 ASYNC_NETWORK_IO 等待, 因此 wait_time (2,000 ms) 時,絕對不會超過 2 秒。 不過,等待類型會無限期保留不變,這種情況永遠不會自行解除封鎖。 您必須先將SQL 寫入器服務解除封鎖。

在此標頭封鎖的 SPID 中,通常會有 DBSTARTUP SPID (alwayson Secondary DB redo) 。

狀態

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

解決方案

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

關於SQL Server的累積更新:

每個SQL Server的新累積更新都包含所有 Hotfix 以及先前累積更新隨附的所有安全性修正。 查看SQL Server的最新累積更新:

參考

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

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。