Síntomas
Tenga en cuenta el siguiente escenario:
- Usa la actualización acumulativa 2 (CU2) de Microsoft SQL Server 2016 Service Pack 2 (SP2) o versiones posteriores.
- Está ejecutando una instancia que hospeda muchas bases de datos (normalmente más de 200), y la instancia forma parte de un grupo de disponibilidad (AG) Always On (normalmente con el rol de servidor secundario). Nota No es necesario que todas las bases de datos de usuario pertenezcan a AG.
- Ejecute una aplicación de Servicios de instantáneas de volumen (VSS) para solicitar una copia de seguridad de todas o algunas bases de datos de la instancia de SQL Server.
En este escenario, el Servicio del objeto de escritura de SQL puede llegar a una situación de interbloqueo y mantener bloqueos indefinidamente en una tabla interna del sistema en master (sys.sysdbreg con object_id 28). Además, estos bloqueos, a su vez, impiden la lectura de las vistas de administración dinámica (DMV) del sistema como sys.dm_hadr_database_replica_states y pueden provocar un bloqueo secundario importante en la instancia. Además, observará que el análisis de cadena de bloques devuelve la siguiente instrucción que se origina en VSS Writer de SQL Server como bloqueador de encabezado:
"select name, recovery_model_desc, state_desc, CONVERT(integer, is_in_standby), ISNULL(source_database_id,0) from master.sys.databases"
A continuación, SQL Server tendrá un estado de espera de ASYNC_NETWORK_IO.
Nota Debido a que la espera de ASYNC_NETWORK_IO está implementada, el wait_time en su contra nunca superará los dos segundos (2000 ms). Sin embargo, el tipo de espera permanecerá en vigor indefinidamente y esta situación nunca se desbloqueará por sí sola. Es necesario ejecutar el Servicio del objeto de escritura de SQL para desbloquear la situación.
Entre los SPID bloqueados por este bloqueador principal, a menudo habrá un SPID DBSTARTUP (rehacer de base de datos secundaria alwayson).
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Resolución
Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:
- Actualización acumulativa 15 para SQL Server 2017
- Actualización acumulativa CU 38 para SQL Server 2016 SP2
Acerca de las actualizaciones acumulativas para SQL Server:
Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Consulte las actualizaciones acumulativas más recientes para SQL Server:
- Actualización acumulativa más reciente para SQL Server 2017
- Actualización acumulativa más reciente para SQL Server 2016
Referencias
Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.