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:
- Atualização cumulativa mais recente para o SQL Server 2017
- Atualização cumulativa mais recente para o SQL Server 2016
Referências
Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.