KB4480652 - CORREÇÃO: Serviço SQL Writer pode causar deadlocks não detectados no sistema DMV quando você faz um backup VSS

Aplica-se A
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

Sintomas

Tenha em conta o seguinte cenário:

  • Utilizar o Microsoft SQL Server 2016 Service Pack 2 (SP2) Atualização Cumulativa 2 (CU2) ou versões posteriores.
  • Você está executando uma instância que hospeda muitos bancos de dados (normalmente mais de 200) e a instância faz parte de um Grupo de Disponibilidade Always On (AG) (normalmente com a função de servidor secundário). Observação Todas as bases de dados de utilizadores não precisam de pertencer a AGs.
  • Executar um aplicativo VSS (Volume Shadow Copy Services) para solicitar um backup de todos ou alguns bancos de dados da instância SQL Server.

Nesse cenário, o Serviço SQL Writer pode chegar a uma situação de impasse e manter bloqueios indefinidamente em relação a uma tabela interna do sistema no mestre (sys.sysdbreg com object_id 28). Além disso, esses bloqueios, por sua vez, impedem a leitura de Exibições de Gerenciamento Dinâmico (DMV) do sistema, como sys.dm_hadr_database_replica_states, e podem levar a um grande bloqueio secundário na instância. Além disso, você observa que a análise de cadeia de blocos retorna a seguinte instrução originada do gravador VSS SQL Server como um bloqueador principal:

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

Em seguida, SQL Server terá um estado de espera de ASYNC_NETWORK_IO.

Observação Como o ASYNC_NETWORK_IO espera é implementado, o wait_time contra ele nunca excederá dois segundos (2.000 ms). No entanto, o tipo de espera permanecerá no local indefinidamente e essa situação nunca será desbloqueada por conta própria. Ele requer que você mate o Serviço SQL Writer para desbloquear a situação.

Entre os SPID bloqueados por este bloqueador de cabeça, geralmente haverá um SPID DBSTARTUP (alwayson Secondary DB redo).

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Resolução

Este problema foi corrigido nas seguintes atualizações cumulativas para SQL Server:

Acerca das atualizações cumulativas para SQL Server:

Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:

Referências

Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.