KB4480652 - OPRAVA: Služba SQL Writer Service může způsobit nezjištěné zablokování v systémovém DMV, když provádíte zálohování VSS

Platí pro
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

Příznaky

Vezměte v úvahu následující scénář:

  • Používáte Microsoft SQL Server 2016 Service Pack 2 (SP2) Cumulative Update 2 (CU2) nebo novější verze.
  • Používáte instanci, která hostuje mnoho databází (obvykle více než 200), a instance je součástí skupiny dostupnosti Always On (AG) (obvykle s rolí sekundárního serveru). Poznámka Všechny uživatelské databáze nemusí patřit poradním skupinám.
  • Spuštěním aplikace služby Stínová kopie svazku (VSS) si vyžádáte zálohování všech nebo některých databází instance serveru SQL Server.

V tomto scénáři může služba SQL Writer Service dosáhnout zablokování a po neomezenou dobu uchovávat zámky proti interní systémové tabulce v master (sys.sysdbreg s object_id 28). Kromě toho tyto zámky zase brání čtení ze systémových zobrazení dynamické správy (DMV), jako je sys.dm_hadr_database_replica_states, a mohou vést k velkému sekundárnímu blokování v instanci. Kromě toho si všimnete, že analýza řetězu bloků vrátí následující příkaz pocházející z modulu VSS Writer serveru SQL Server jako blokování hlavy:

"select name, recovery_model_desc, state_desc, CONVERT(integer, is_in_standby), ISNULL(source_database_id,0) from master.sys.databases"

SQL Server pak bude mít stav čekání ASYNC_NETWORK_IO.

Poznámka Protože je ASYNC_NETWORK_IO čekání implementováno, wait_time proti němu nikdy nepřesáhne dvě sekundy (2 000 ms). Typ čekání však zůstane v platnosti po neomezenou dobu a tato situace se nikdy sama od sebe neodblokuje. K odblokování situace vyžaduje, abyste ukončili službu SQL Writer Service.

Mezi identifikátory SPID blokovanými tímto blokátorem hlav bude často existovat DBSTARTUP SPID (alwayson Secondary DB redo).

Stav

Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.

Řešení

Tento problém je opravený v následujících kumulativních aktualizacích pro SQL Server:

Informace o kumulativních aktualizacích pro SQL Server:

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:

Reference

Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru.