Sintomas
Considere o seguinte cenário:
-
Você usa Microsoft SQL Server atualização cumulativa 2 (CU2) do Service Pack 2 (SP2) 2016 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 AG (grupo de disponibilidade) do Always On (normalmente com a função de servidor secundário). Observação Todos os bancos de dados de usuário não precisam pertencer a AGs.
-
Você executa um aplicativo VSS (Serviços de Cópias de Sombra de Volume) para solicitar um backup de todos ou alguns bancos de dados SQL Server instância.
Nesse cenário, o Serviço Gravador do SQL pode alcançar uma situação de deadlock e manter indefinidamente bloqueios em 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 DMV (Exibições de Gerenciamento Dinâmico) do sistema, como sys.dm_hadr_database_replica_states, e podem levar ao bloqueio secundário principal 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 de cabeçalho:
"select name, recovery_model_desc, state_desc, CONVERT(integer, is_in_standby), ISNULL(source_database_id,0) from master.sys.databases"
Em SQL Server terá um status de espera de ASYNC_NETWORK_IO.
Observação Como a ASYNC_NETWORK_IO espera é implementada, a wait_time em relação a ela nunca excederá dois segundos (2.000 ms). No entanto, o tipo de espera permanecerá em vigor indefinidamente e essa situação nunca será desbloqueada por conta própria. Requer que você mate o Serviço Gravador do SQL para desbloquear a situação.
Entre os SPID bloqueados por esse bloqueador de cabeçalho, geralmente haverá um DBSTARTUP SPID (restauração de banco de dados secundário alwayson).
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Resolução
Esse problema foi corrigido nas seguintes atualizações cumulativas para SQL Server:
Sobre 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 na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes para SQL Server:
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever as atualizações de software.