Síntomas

Durante el inicio de Microsoft SQL Server, observará uno o varios de los siguientes síntomas inmediatamente después de que se complete la recuperación de la base de datos y se habiliten las conexiones de cliente.

Síntoma 1

Recibe mensajes de error y aserciones similares a las siguientes en el registro de errores de SQL Server:

2014-12-13 08:03:34.85 spid24s Using 'dbghelp.dll' version '4.0.5'2014-12-13 08:03:34.85 spid24s **Dump thread - spid = 0, EC = 0x0000000082274B202014-12-13 08:03:34.85 spid24s ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0001.txt2014-12-13 08:03:34.85 spid24s * *******************************************************************************2014-12-13 08:03:34.85 spid24s *2014-12-13 08:03:34.85 spid24s * BEGIN STACK DUMP:2014-12-13 08:03:34.85 spid24s * 12/13/14 08:03:34 spid 242014-12-13 08:03:34.85 spid24s *2014-12-13 08:03:34.85 spid24s * Location: ghost.cpp:17422014-12-13 08:03:34.85 spid24s * Expression: tcln1 != NULL2014-12-13 08:03:34.85 spid24s * SPID: 242014-12-13 08:03:34.85 spid24s * Process ID: 354442014-12-13 08:03:34.85 spid24s *2014-12-13 08:03:35.47 spid24s Error: 17066, Severity: 16, State: 1.2014-12-13 08:03:35.47 spid24s SQL Server Assertion: File: <ghost.cpp>, line=1742 Failed Assertion = 'tcln1 != NULL'. Este error puede estar relacionado con el tiempo. Si el error persiste después de volver a ejecutar la instrucción, Use DBCC CHECKDB para comprobar la integridad estructural de la base de datos o reinicie el servidor para asegurarse de que las estructuras de datos en memoria no están dañadas.

Síntoma 2

Recibe mensajes de error y excepciones similares a las siguientes en el registro de errores de SQL Server:

2014-12-13 12:38:30.25 spid51 usando ' DbgHelp. dll ' versión ' 4.0.5 ' 2014-12-13 12:38:30.25 spid51 * * * el volcado de pila se envía a C:\Archivos de Programa\microsoft SQL Server \ MSSQL10_50. SQL2008R2\MSSQL\LOG\SQLDump0003.txt2014-12-13 12:38:30.25 spid51 SqlDumpExceptionHandler: proceso 51 generó una excepción de error c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.2014-12-13 12:38:30.25 spid51 * *******************************************************************************2014-12-13 12:38:30.25 spid51 *2014-12-13 12:38:30.25 spid51 * BEGIN STACK DUMP:2014-12-13 12:38:30.25 spid51 * 12/13/14 12:38:30 spid 512014-12-13 12:38:30.25 spid51 *2014-12-13 12:38:30.25 spid51 *2014-12-13 12:38:30.25 spid51 * Exception Address = 000000000030D47C Module(sqlservr+00000000000FD47C)2014-12-13 12:38:30.25 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION2014-12-13 12:38:30.25 spid51 * Access Violation occurred reading address FFFFFFFFFFFFFFFF2014-12-13 12:38:30.25 spid51 * Input Buffer 54 bytes -2014-12-13 12:38:30.25 spid51 * exec usp_select12014-12-13 12:38:30.77 Server Error: 17310, Severity: 20, State: 1.2014-12-13 12:38:30.77 Server A user request from the session with SPID 51 generated a fatal exception. SQL Server está finalizando esta sesión. Póngase en contacto con el servicio de soporte técnico con el volcado producido en el directorio de registro. La infracción de acceso tendrá la siguiente pila de llamadas: sqlservr. TaskGhostCleanup:: IsHashed + 0x8dsqlservr! TaskGhostCleanup:: enqueue + 0x32sqlservr! IndexRowScanner:: MoveToRowOnNextPage + 0x9csqlservr! IndexDataSetSession:: GetNextRowValuesInternal + 0x11cb

Síntoma 3

Después de recibir los mensajes que se mencionan en las secciones de síntoma anteriores, recibirá los siguientes mensajes en el registro de errores de SQL Server:

2014-12-13 08:04:53.37 Server Process 0:0:0 (0x23c8) Worker 0x000000002880C1A0 aparentemente no rinde en Scheduler 23. Hora de creación del hilo: 13062953007877. CPU de los subprocesos aprox: núcleo 0 MS, usuario 0 ms. Uso de proceso 0%. Sistema inactivo 88%. Intervalo: 70013 ms. 2014-12-13 08:04:53.37 Server Process 0:0:0 (0x71d8) Worker 0x000000002A8D21A0 aparentemente no rinde en Scheduler 30. Hora de creación del hilo: 13062953007891. CPU de los subprocesos aprox: núcleo 0 MS, usuario 0 ms. Uso de proceso 0%. Sistema inactivo 88%. Interval: 70013 ms.2014-12-13 08:04:53.38 Server ***Unable to get thread context for spid 02014-12-13 08:04:53.38 Server * *******************************************************************************2014-12-13 08:04:53.38 Server *2014-12-13 08:04:53.38 Server * BEGIN STACK DUMP:2014-12-13 08:04:53.38 Server * 12/13/14 08:04:53 spid 294882014-12-13 08:04:53.38 Server *2014-12-13 08:04:53.38 Server * Non-yielding Scheduler2014-12-13 08:04:53.38 Server *2014-12-13 08:04:53.38 Server * *******************************************************************************2014-12-13 08:04:53.38 Server Stack Signature for the dump is 0x00000000000003412014-12-13 08:04:55.43 Server External dump process return code 0x20000001. El proceso de volcado externo no ha devuelto errores. 2014-12-13 08:04:55.43 de servidor de 0x9358 0:0:0 () el 0x0000000081CE41A0 de trabajo aparentemente no rinde en el programador 4. Hora de creación del hilo: 13062953009701. CPU de aprox. de subproceso: núcleo 0 MS, usuario 15 ms. Uso de proceso 0%. Sistema inactivo 88%. Intervalo: 70011 ms.

Es posible que SQL Server no responda a las solicitudes de usuario en este momento. Si este es el caso, debe reiniciar el servicio para corregir la situación.

Causa

Este problema se produce porque las consultas de los usuarios intentan usar las colas de limpieza de Ghost antes de que este proceso se inicialice por completo.

Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:

Solución alternativa

Para solucionar este problema, siga estos pasos:

  1. Configure -T669 como parámetro de inicio. Este marcador de seguimiento impide que las consultas de los usuarios se colas en el proceso de limpieza de Ghost.

  2. Configure una alerta del Agente SQL Server para desencadenar un trabajo en el mensaje 3408 de SQL. Por ejemplo, configure la siguiente alerta:

    Se completó la recuperación. Este es un mensaje informativo. No se requiere ninguna acción por el usuario.

  3. En este trabajo, ejecute un script TSQL para esperar de 5 a 10 minutos y, a continuación, ejecute el comando DBCC TRACEOFF (669,-1) .

Este procedimiento se asegura de que esta marca de seguimiento solo esté activa durante el inicio de SQL Server. El uso de esta marca de seguimiento no afecta al funcionamiento normal del proceso de limpieza de Ghost en segundo plano.

Estado

Microsoft ha confirmado que se trata de un problema con SQL Server y actualmente está investigando una solución para este problema. Este artículo de Knowledge base se actualizará con información adicional cuando esté disponible.

Referencias

Dentro del motor de almacenamiento: borrador de alertas de profundidad sp_add_alert (TRANSACT-SQL) DBCC TRACEOFF (Transact-SQL) Opciones de inicio del motor de base de datos

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a tu experiencia?

¡Gracias por sus comentarios!

×