Error 17066 o 17310 durante SQL Server inicio

Se aplica a
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Express SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Express SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Express Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Express Edition

Síntomas

Durante el inicio de Microsoft SQL Server, observa 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:

Nota

2014-12-13 08:03:34.85 spid24s Usando la versión "dbghelp.dll" '4.0.5'
2014-12-13 08:03:34.85 spid24s **Dump thread - spid = 0, EC = 0x0000000082274B20
2014-12-13 08:03:34.85 spid24s ***Stack Dump que se envía a C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0001.txt
2014-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 * 13/12/14 08:03:34 spid 24
2014-12-13 08:03:34.85 spid24s *
2014-12-13 08:03:34.85 spid24s * Ubicación: ghost.cpp:1742
2014-12-13 08:03:34.85 spid24s * Expression: tcln1 != NULL
2014-12-13 08:03:34.85 spid24s * SPID: 24
2014-12-13 08:03:34.85 spid24s * Id. del proceso: 35444
2014-12-13 08:03:34.85 spid24s *

2014-12-13 08:03:35.47 spid24s Error: 17066, Gravedad: 16, Estado: 1.
2014-12-13 08:03:35.47 spid24s SQL Server Aserción: Archivo: <ghost.cpp>, line=1742 Failed Assertion = 'tcln1 != NULL'. Este error puede estar relacionado con los intervalos. Si el error persiste después de reenviar 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:

Nota

2014-12-13 12:38:30.25 spid51 Usando la versión 'dbghelp.dll' '4.0.5'
2014-12-13 12:38:30.25 spid51 ***Volcado de pila que se envía a C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0003.txt
2014-12-13 12:38:30.25 spid51 SqlDumpExceptionHandler: Process 51 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server está terminando este proceso.
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 * 13/12/14 12:38:30 spid 51
2014-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 * Código de excepción = c0000005 EXCEPTION_ACCESS_VIOLATION
2014-12-13 12:38:30.25 spid51 * Se produjo una infracción de acceso dirección de lectura FFFFFFFFFFFFFF
2014-12-13 12:38:30.25 spid51 * Búfer de entrada 54 bytes -
2014-12-13 12:38:30.25 spid51 * ejecución usp_select1

2014-12-13 12:38:30.77 Error del servidor: 17310, Gravedad: 20, Estado: 1.
2014-12-13 12:38:30.77 Servidor Una petición de usuario de la sesión con SPID 51 generó una excepción fatal. SQL Server va a finalizar esta sesión. Ponte en contacto con los servicios de soporte técnico de productos con el volcado producido en el directorio de registro.

La infracción de acceso tendrá la siguiente pila de llamadas:

sqlservr! TaskGhostCleanup::IsHashed+0x8d
sqlservr! TaskGhostCleanup::Enqueue+0x32
sqlservr! IndexRowScanner::MoveToRowOnNextPage+0x9c
sqlservr! IndexDataSetSession::GetNextRowValuesInternal+0x11cb

Síntoma 3

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

Nota

2014-12-13 08:04:53.37 Proceso del servidor 0:0:0 (0x23c8) Trabajador 0x000000002880C1A0 parece no producir en el Programador 23. Tiempo de creación de subprocesos: 13062953007877. Aprox CPU subproceso utilizado: kernel 0 ms, usuario 0 ms. Utilización de procesos 0%. Sistema inactivo 88%. Intervalo: 70013 ms.
2014-12-13 08:04:53.37 Proceso del servidor 0:0:0 (0x71d8) 0x000000002A8D21A0 de trabajo parece no producir en el Programador 30. Tiempo de creación de subprocesos: 13062953007891. Aprox CPU subproceso utilizado: kernel 0 ms, usuario 0 ms. Utilización de procesos 0%. Sistema inactivo 88%. Intervalo: 70013 ms.
2014-12-13 08:04:53.38 Server ***Unable to get thread context for spid 0
2014-12-13 08:04:53.38 Server * *******************************************************************************
2014-12-13 08:04:53.38 Server *
2014-12-13 08:04:53.38 Servidor * BEGIN STACK DUMP:
2014-12-13 08:04:53.38 Servidor * 13/12/14 08:04:53 spid 29488
2014-12-13 08:04:53.38 Server *
2014-12-13 08:04:53.38 Servidor * Programador sin rendimiento
2014-12-13 08:04:53.38 Server *
2014-12-13 08:04:53.38 Server * *******************************************************************************
2014-12-13 08:04:53.38 Se 0x0000000000000341
2014-12-13 08:04:55.43 Código de devolución del proceso de volcado externo del servidor 0x20000001. El proceso de volcado externo no devolvió ningún error.
2014-12-13 08:04:55.43 Proceso del servidor 0:0:0 (0x9358) Trabajador 0x0000000081CE41A0 parece no producir en el Programador 4. Tiempo de creación de subprocesos: 13062953009701. Aprox CPU subproceso utilizado: kernel 0 ms, usuario 15 ms. Utilización de procesos 0%. Sistema inactivo 88%. Intervalo: 70011 ms.

SQL Server pueden no responder 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 usuario intentan usar las colas de limpieza fantasma antes de que este proceso se inicializa por completo.

Resolución

Información del Service Pack

Para resolver este problema, obtenga el Service Pack 1 para SQL Server 2014.

Para obtener más información sobre el Service Pack 1 (SP1) de SQL Server 2014, consulte errores corregidos en SQL Server 2014 Service Pack 1 .

Revisión para SQL Server 2008 SP4

Para resolver este problema, aplique kb 3034373: un paquete de actualización de revisiones a petición está disponible para SQL Server 2008 SP4 .

Revisión para SQL Server 2008 R2 SP3

Para resolver este problema, aplique kb 3033860: un paquete de actualización de revisiones a petición está disponible para SQL Server 2008 R2 SP3 .

Información sobre la actualización acumulativa

La mejora de características se introdujo en la siguiente actualización acumulativa de SQL Server.

Actualización acumulativa 6 de SQL Server de 2014 /help/3031047

Actualización acumulativa 4 para SQL Server 2012 SP2 /help/3007556

Actualización acumulativa 14 para SQL Server 2012 SP1 /help/3023636

Acerca de las actualizaciones acumulativas para SQL Server

Cada nueva actualización acumulativa de SQL Server contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Echa un vistazo a las últimas actualizaciones acumulativas de SQL Server:

      

Solución alternativa

Siga estos pasos para solucionar el problema:

  1. Configura -T669 como parámetro de inicio. Estas marcas de seguimiento impiden que las consultas de usuario puedan poner en cola las solicitudes para el proceso de limpieza fantasma.
  2. Configure una alerta de Agente SQL Server para desencadenar un trabajo en SQL Msg 3408. Por ejemplo, configure la siguiente alerta:
    Se ha completado la recuperación. Solo se trata de un mensaje informativo. No es necesaria ninguna acción del usuario.
  3. Dentro de este trabajo, ejecute un script TSQL para esperar de 5 a 10 minutos y luego ejecute el comando DBCC TRACEOFF (669,-1).

Este procedimiento garantiza que esta marca de seguimiento esté activa solo durante SQL Server inicio. El uso de esta marca de seguimiento no afecta al funcionamiento habitual del proceso de limpieza de fantasmas en segundo plano.

Estado

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

Referencias

Dentro del motor de almacenamiento: limpieza fantasma en profundidad
        
         Alertas
        
         sp_add_alert (Transact-SQL)
        
         DBCC TRACEOFF (Transact-SQL)
        
         Marcas de seguimiento
        
         Opciones de inicio del motor de base de datos