CORRECCIÓN: Se tarda mucho tiempo en detener el servicio SQL Server y no se puede reiniciar el servicio SQL Server en un entorno de clúster de Microsoft SQL Server 2008 cuando el servidor está sometido a tensión

Microsoft distribuye las correcciones de Microsoft SQL Server 2008 como un archivo descargable. Dado que las correcciones son acumulativas, cada nueva versión contiene todas las revisiones y correcciones de seguridad que se incluyeron con la versión de corrección de SQL Server 2008 anterior.

Síntomas

En un entorno de clúster de Microsoft SQL Server 2008, el servicio de SQL Server tarda mucho tiempo en detenerse cuando hay una carga elevada en el servidor. Además, el estado del servicio se cambia a "Detener pendiente" y no puede reiniciar el servicio de SQL Server. En el registro del clúster de Windows también encontrará mensajes de error parecidos a los siguientes:

Nota

[RES] <SQL Server SQL Server (SQL1)>: [sqsrvres] SvcStop: Sending first Stop signal to service.

 [RHS] RhsCall::D eadlockMonitor: Se agotó el tiempo de espera de la llamada TERMINATERESOURCE para el recurso 'SQL Server (SQL1)'.

 [RHS] Recurso Interbloqueo de control de SQL Server (SQL1). Limpieza de la operación actual y finalización del proceso RHS

00001858.00003154::Date Time WARN [RHS] Recurso SQL Server IsAlive ha indicado un error.

 00001bfc.000041a4::Date Time INFO [RCM] HandleMonitorReply: FAILURENOTIFICATION for 'SQL Server', gen(0) result 1.

 00001bfc.000041a4::Date Time INFO [RCM] TransitionToState(SQL Server) Online-->ProcessingFailure.

 00001bfc.000069d8::Date Time ERR [RCM] rcm::RcmResource::HandleFailure: (SQL Server)

 00001bfc.000069d8::Date Time Recurso INFO [RCM] Recurso de SQL Server: recuento de errores: 1, restartAction: 2.

 00001bfc.000069d8::Date Time INFO [RCM] Reiniciará el recurso en 500 milisegundos.

 00001bfc.000069d8::Date Time INFO [RCM] TransitionToState(SQL Server) ProcessingFailure-->[Terminating to DelayRestartingResource].

 00001bfc.000069d8::Date Time INFO [RCM] rcm::RcmGroup::P rocessStateChange: (SQL Server (MSSQLSERVER), En línea --> Pendiente)

 00001bfc.000069d8::Date Time INFO [RCM] TransitionToState(Agente SQL Server) Online-->[Termina en OnlineCallEmited].

 00001bfc.000087fc::Date Time INFO [RCM] Reiniciar recurso 'Agente SQL Server'.

00001858.00008f58::Date Time ERR [RES] SQL Server <SQL Server>: [sqsrvres] CheckQueryProcessorAlive: sqlexecdirect failed

00001858.00008f58::Date Time ERR [RES] SQL Server <SQL Server>: [sqsrvres] printODBCError: sqlstate = HYT00; native error = 0; message = .....

00001858.00008f58::Date Time INFO [RES] SQL Server <SQL Server>: [sqsrvres] OnlineThread: se le pide que finalice mientras espera a QP.

00001858.00001924::Date Time ERR [RHS] RhsCall::D eadlockMonitor: Se agotó el tiempo de espera de la llamada TERMINATERESOURCE para el recurso 'SQL Server'.

00001858.00001924::Date Time ERR [RHS] Recurso Interbloqueo de control de SQL Server. Limpieza de la operación actual y finalización del proceso RHS.

 00001bfc.0000e7dc::Date Time INFO [RCM] HandleMonitorReply: FAILURENOTIFICATION for 'SQL Server', gen(1) result 4.

 00001bfc.0000e7dc::Date Time INFO [RCM] rcm::RcmResource::HandleMonitorReply: Resource 'SQL Server' consecutive fail count 1.

 00001bfc.0000e7dc::Date Time ERR [RCM] rcm::RcmMonitor::RecoverProcess: Proceso de supervisión de recuperación 0x1858.

 00001bfc.0000e7dc::Date Time INFO [RCM] Proceso de monitor creado 28164 / 0x6e04

 00006e04.0000e8a4::Date Time INFO [RHS] Inicializando.

 00001bfc.0000e7dc::Date Time INFO [RCM] rcm::RcmResource::ReattachToMonitorProcess: (SQL Server, [Terminating to DelayRestartingResource])

 00001bfc.0000e7dc::Date Time INFO [RCM] TransitionToState(SQL Server) Initializing-->OpenCallEmited.

 00001bfc.00004878::Date Time INFO [RCM] TransitionToState(SQL Server) [Termina en DelayRestartingResource]-->DelayRestartingResource.

 00001bfc.00004878::Date Time INFO [RCM] Retrasar el reinicio de SQL Server y cualquier persona que dependa en espera.

 00001bfc.00004878::Date Time INFO [RCM] TransitionToState(SQL Server) DelayRestartingResource-->OnlineCallEmited.

 00001bfc.0000e7dc::Date Time INFO [RCM] HandleMonitorReply: ONLINERESOURCE for 'SQL Server', gen(1) result 997.

 00001bfc.0000e7dc::Date Time INFO [RCM] TransitionToState(SQL Server) OnlineCallEmited-->OnlinePending.

 00006e04.00003478::Date Time INFO [RHS] Recurso SQL Server ha pasado a conectarse. RHS está a punto de notificar el cambio de estado a RCM

Causa

Cuando el servicio de clúster comprueba el estado del servicio de SQL Server, ejecuta la consulta IsAlive. Si se agota el tiempo de espera de la consulta IsAlive, el servicio de clúster recicla el proceso de Rhs.exe que hospeda los archivos .dll de los recursos SQL Server. Los archivos de .dll de los recursos de SQL Server inician un proceso de apagado SQL Server. Cuando el proceso de cierre de SQL Server supera el tiempo especificado en la propiedad DeadlockTimeout, el servicio no se puede detener y el estado pasa a ser "Detener pendiente". Este estado del servicio impide que se reinicie el servicio de SQL Server.

Resolución

La versión de lanzamiento de SQL Server 2008

Importante: Debe instalar esta corrección si está ejecutando la versión de lanzamiento de SQL Server 2008.

La corrección de este problema se publicó por primera vez en la actualización acumulativa 7. Para obtener más información acerca de cómo obtener este paquete de actualizaciones acumulativas para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

973601 paquete de actualización acumulativa 7 para SQL Server 2008Nota Dado que las compilaciones son acumulativas, cada nueva corrección contiene todas las revisiones y correcciones de seguridad que se incluyeron con la versión de corrección anterior de SQL Server 2008. Recomendamos que se plantee la posibilidad de aplicar la versión de corrección más reciente que contiene esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

956909 Compilaciones de SQL Server 2008 se publicaron después de SQL Server 2008

SQL Server 2008 Service Pack 1

Importante: Debe instalar esta corrección si ejecuta SQL Server 2008 Service Pack 1.

La corrección para este problema se publicó por primera vez en la actualización acumulativa 5 para SQL Server 2008 Service Pack 1. Para obtener más información acerca de este paquete de actualizaciones acumulativas, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

975977 paquete de actualización acumulativa 5 para SQL Server 2008 Service Pack 1Nota Dado que las compilaciones son acumulativas, cada nueva corrección contiene todas las revisiones y correcciones de seguridad que se incluyeron con la versión de corrección anterior de SQL Server 2008. Microsoft recomienda que se plantee la posibilidad de aplicar la versión de corrección más reciente que contenga esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

970365 Compilaciones de SQL Server 2008 que se publicaron después de SQL Server 2008 Service Pack 1
Las revisiones de Microsoft SQL Server 2008 se crean para Service Pack de SQL Server específicos. Debe aplicar una revisión de SQL Server 2008 Service Pack 1 a una instalación de SQL Server 2008 Service Pack 1. De forma predeterminada, cualquier revisión que se proporcione en un Service Pack de SQL Server se incluye en el siguiente Service Pack de SQL Server.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Referencias

Para obtener más información acerca de la propiedad PendingTimeout, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):

https://msdn.microsoft.com/library/aa372194(vs.85).aspx
        
Para obtener más información acerca de la propiedad DeadlockTimeout, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):

https://msdn.microsoft.com/library/bb309217(vs.85).aspx
Para obtener más información acerca del modelo de servicio incremental para SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

935897 Un modelo de servicio incremental está disponible en el equipo de SQL Server para entregar revisiones para problemas detectados

Para obtener más información acerca del esquema de nomenclatura de las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

822499 Nuevo esquema de nomenclatura de los paquetes de actualización de software de Microsoft SQL Server

Para obtener más información acerca de la terminología relativa a las actualizaciones de software de Microsoft, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

824684 Descripción de la terminología estándar que se usa para describir las actualizaciones de software de Microsoft