Síntomas
Esta actualización incluye las siguientes mejoras en la concesión de tiempo de espera para Microsoft SQL Server AlwaysOn:
-
El mensaje tiempo de espera de la concesión ahora muestra y registra la hora actual y el tiempo de renovación previsto.
-
Se agregó un nuevo mensaje de error a los trabajadores de concesión que indica claramente el motivo del tiempo de espera de la concesión.
-
Se agregaron un nuevo evento extendido y un nuevo búfer de timbre para los trabajadores de concesión. Esto indica claramente las fases de concesión.
Resolución
El problema se solucionó por primera vez en los siguientes Service Packs para SQL Server.
Para obtener más información sobre SQL Server 2012 Service Pack 3 (SP3), consulte errores corregidos en SQL server 2012 Service Pack 3.
Service Pack 2 para SQL Server para SQL Server 2014Acerca de los Service Pack para SQL ServerLos Service Pack son acumulativos. Cada nuevo Service Pack contiene todas las revisiones de Service Packs previos junto con revisiones nuevas. Nuestra recomendación es aplicar el último Service Pack y la actualización acumulativa más reciente para ese Service Pack. No es necesario instalar un Service Pack anterior antes de instalar el Service Pack más reciente. Use la tabla 1 del artículo siguiente para obtener más información sobre el Service Pack más reciente y la última actualización acumulativa.Cómo determinar el nivel de versión, edición y actualización de SQL Server y sus componentes
Más información
Para proporcionar información adicional, se han agregado nuevos mensajes de error a SQL Server. En la tabla siguiente se enumeran y explica cada una de ellas.
Error |
Mensaje de error |
Causa |
Acción correctiva |
---|---|---|---|
19419 |
Se produjo un error en la renovación de la concesión entre el grupo de disponibilidad '%. * ls ' y el clúster de conmutación por error de Windows Server porque la concesión existente ya no es válida. |
El empleado de leasing del lado de SQL Server no se programó a tiempo para procesar la señal de evento del clúster. |
Compruebe que el uso de la CPU en el servidor está privando al trabajo de concesión de SQL Server. |
19420 |
Se pide explícitamente al grupo de disponibilidad ' %1! ' que detenga la renovación de la concesión. |
La renovación de la concesión se detiene como parte de poner fuera de conexión el grupo de disponibilidad. Esto es solo informativo. |
|
19421 |
No se pudo renovar la concesión entre el grupo de disponibilidad ' %1! ' y el clúster de conmutación por error de Windows Server porque la renovación no se produjo dentro del intervalo de concesión. |
La aplicación auxiliar de concesión en el clúster no señaló a tiempo el trabajo de concesión de SQL Server. |
Compruebe el recurso de grupo de disponibilidad correspondiente en el clúster WSFC para ver si ha notificado algún error. |
19422 |
Se produjo un error de Windows con el código de error ('% d ') en la renovación de la concesión entre el grupo de disponibilidad ' %1! ' y el clúster de conmutación por error de Windows Server. |
El empleado de leasing del lado de SQL Server no pudo renovar la concesión debido a un error de Windows. |
Compruebe el código de error de Windows y lleve a cabo la acción correctiva. |
19423 |
La concesión del grupo de disponibilidad ' %1! ' ya no es válida para iniciar el proceso de renovación de la concesión. |
Cuando el trabajador de leasing comenzó a procesar el exceso de tiempo de concesión proporcionado por la llamada en línea, la concesión ya ha vencido. Esto puede deberse a problemas de programación. |
Compruebe que el uso de la CPU en el servidor está privando al trabajo de concesión de SQL Server. |
19424 |
El trabajador de leasing del grupo de disponibilidad ' %1! ' ya está en reposo el exceso de tiempo de concesión (% u MS) suministrado durante la conexión. Este es un mensaje informativo. No se requiere ninguna acción por el usuario. |
Informativo. Tiempo en línea adicional para iniciar el hilo de renovación de concesiones y como parte de la rutina en línea de disponibilidad del grupo. |
Ejemplo de error 19419: Si utiliza un depurador para adjuntar a SQL Server, interrumpe cualquier servicio de subprocesos en el proceso de SQL Server hasta que reanude el proceso de SQL Server. Al reanudar SQL Server, se informa de lo siguiente en el registro de errores de SQL Server:
<fecha y hora> Error del servidor: 19419, gravedad: 16, estado: 1. <fecha y hora> El clúster de conmutación por error de Windows Server no recibió una señal de evento de proceso del grupo de disponibilidad de hospedaje de SQL Server ' AG ' dentro del período de tiempo de espera de la concesión. <fecha y hora> Error del servidor: 19407, gravedad: 16, estado: 1. <fecha y hora> Servidor la concesión entre el grupo de disponibilidad ' AG ' y el clúster de conmutación por error de Windows Server ha expirado. Se ha producido un problema de conectividad entre la instancia de SQL Server y el clúster de conmutación por error de Windows Server. Para determinar si el grupo de disponibilidad está conmutando por error correctamente, compruebe el recurso de grupo de disponibilidad correspondiente en el clúster de conmutación por error de Windows Server. <fecha y hora> Siempre en el servidor: la réplica local del grupo de disponibilidad ' AG ' se está desconectando porque la concesión expiró o no se pudo renovar la concesión. Este es un mensaje informativo. No se requiere ninguna acción por el usuario. <fecha y hora> Servidor el estado de la réplica de disponibilidad local del grupo de disponibilidad ' AG ' ha cambiado de ' PRIMARY_NORMAL ' a ' RESOLVING_NORMAL '. El estado de la réplica ha cambiado debido a un inicio, una conmutación por error, un problema de comunicación o un error de clúster. Para obtener más información, consulte el panel de grupo disponibilidad, registro de errores de SQL Server, consola de administración de clústeres de conmutación por error de Windows Server o registro de clúster de conmutación por error de Windows Server.
Se devuelve el error 19419 porque SQL Server no respondió al servicio de Cluster Server. También puede recibir un mensaje de error de tiempo de espera de la concesión (19407) junto con el error 19419.Ejemplo de error 19424: el siguiente mensaje es el exceso de tiempo de concesión que se informa justo antes de que el grupo de disponibilidad pase al rol principal:
<fecha y hora> Servidor el empleado de leasing del grupo de disponibilidad ' AG ' está inactivo el exceso de tiempo de concesión (164766 MS) suministrado durante la conexión. Este es un mensaje informativo. No se requiere ninguna acción por el usuario. <fecha y hora> Servidor el estado de la réplica de disponibilidad local del grupo de disponibilidad ' AG ' ha cambiado de ' PRIMARY_PENDING ' a ' PRIMARY_NORMAL '. El estado de la réplica ha cambiado debido a un inicio, una conmutación por error, un problema de comunicación o un error de clúster. Para obtener más información, consulte el panel de grupo disponibilidad, registro de errores de SQL Server, consola de administración de clústeres de conmutación por error de Windows Server o registro de clúster de conmutación por error de Windows Server.
Se han mejorado las availability_group_lease_expired y hadr_ag_lease_renewal XEvents, con la adición de puntos de datos que proporcionan más información sobre la condición de la concesión. En la tabla siguiente se describen las mejoras de estas XEvents:
XEvent |
Nueva columna |
Descripción |
---|---|---|
availability_group_lease_expired |
current_time |
Hora en que expiró la concesión |
availability_group_lease_expired |
new_timeout |
Tiempo de espera, cuando se genera availability_group_lease_expired, current_time es mayor que new_timeout |
availability_group_lease_expired |
situación |
Fases de concesión: Consulte la tabla de fases de concesión a continuación |
hadr_ag_lease_renewal |
situación |
hadr_ag_lease_renewal |
hadr_ag_lease_renewal |
error_code |
Si el estado es HadrLeaseRenewal_FailedWithWindowsError, error_code es el código de error de Windows asociado al error |
Fases y definiciones de las concesionesEn la tabla siguiente se enumeran las posibles fases de leasing y se explican sus funciones:
Nombre de la fase |
Descripción |
---|---|
HadrLeaseRenewal_LeaseWorkerStarted |
Se inició el subproceso de trabajo de concesión. |
HadrLeaseRenewal_StartedExcessLeaseSleep |
Iniciando exceso de leasing. El exceso de etapas de concesiones documenta el inicio del hilo de leasing durante la fase de conexión del grupo de disponibilidad. |
HadrLeaseRenewal_FailedExcessSleepInvalidOnlineLease |
No se pudo realizar el exceso de concesión si la concesión ya ha vencido. |
HadrLeaseRenewal_SkipExcessSleep |
Omitimos el exceso de leasing si la duración disponible en la suspensión es menor que el intervalo de concesión. No hay necesidad de pasar por el exceso de la concesión. |
HadrLeaseRenewal_ExcessSleepSucceeded |
El exceso de concesión se realizó correctamente. |
HadrLeaseRenewal_RenewSucceeded |
Deberíamos verlo con cada renovación. |
HadrLeaseRenewal_LeaseNotValid |
Equivalente al error: el clúster de conmutación por error de 19419Windows Server no recibió una señal de evento de proceso del grupo de disponibilidad de hospedaje de SQL Server ' %1! ' dentro del período de tiempo de espera de la concesión. |
HadrLeaseRenewal_StopLeaseRenewal |
Debería ver esto durante un evento de conmutación por error. |
HadrLeaseRenewal_LeaseExpired |
Equivalente al error: el grupo de disponibilidad de hospedaje de 19421SQL Server ' %1! ' no recibió una señal de evento de proceso del clúster de conmutación por error de Windows Server en el período de tiempo de espera de la concesión. |
HadrLeaseRenewal_FailedWithWindowsError |
No se pudo renovar la concesión debido a un error de Windows. |
Para obtener más información, vea mejoras en el tiempo de espera de concesión de grupo de disponibilidad AlwaysOn. Para obtener más información sobre el tiempo de espera de la concesión, consulte Cómo funciona: tiempo de espera de la concesión de AlwaysOn de SQL Server.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".