AlwaysOn eventos extendidos

SQL Server 2012
 

SQL Server 2012 define eventos extendidos que son específicos de AlwaysOn. Puede supervisar estos eventos extendidos en una sesión de ayuda con el diagnóstico de la causa raíz cuando solucione problemas de un grupo de disponibilidad. Puede ver la configuración de AlwaysOn utilizando la siguiente consulta de eventos extendidos:

SELECT * FROM sys.dm_xe_objects WHERE name LIKE '%hadr%'  

AlwaysOn_health sesión

Eventos extendidos para la depuración

AlwaysOn extendidos referencia de eventos

Eventos relacionados con la sesión de extended events se crea automáticamente cuando se crea el grupo de disponibilidad y captura un subconjunto de la configuración AlwaysOn de AlwaysOn_health. Esta sesión está preconfigurada como una herramienta útil y cómoda para ayudarle a empezar a trabajar rápidamente si se intenta solucionar un grupo de disponibilidad. El Asistente para crear un grupo de disponibilidad se inicia automáticamente la sesión en cada réplica de disponibilidad participantes configurado en el asistente.

System_CAPS_ICON_important.jpg Importante


Si no ha creado el grupo de disponibilidad mediante la el Asistente para nuevo grupo de disponibilidad, no se puede iniciar automáticamente la sesión de AlwaysOn_health. Si no se inicia la sesión, no pueden capturar datos del evento cuando se produce un problema inesperado. Manualmente, debe iniciar la sesión y configurar la sesión para iniciarse automáticamente al configurar las propiedades de la sesión.

Para ver la definición de la sesión AlwaysOn_health:

  1. En el Explorador de objetos, expanda administración, Extended Eventsy, a continuación, sesiones.

  2. Haga clic en AlwaysOn_health, a continuación, elija incluir sesión como, a continuación, elija CREATE Toy, a continuación, haga clic en nueva ventana del Editor de consultas.

Para obtener información sobre una parte de los eventos cubiertos por AlwaysOn_health, consulte AlwaysOn Extended Events Reference.

Además de los eventos extendidos cubiertos por la sesión de AlwaysOn_health, SQL Server define un amplio conjunto de eventos de depuración para grupos de disponibilidad AlwaysOn. Para aprovechar estos eventos extendidos adicionales en una sesión, siga los procedimientos siguientes:

  1. En el Explorador de objetos, expanda administración, Extended Eventsy, a continuación, sesiones.

  2. Haga clic con el botón derecho en Sesiones y seleccione Nueva sesión. O bien, haga clic en AlwaysOn_health y seleccione propiedades.

  3. En el seleccionar una página panel, haga clic en eventos.

  4. En la biblioteca de eventos, en la categoría columna, seleccione alwayson y desactive todas las demás categorías.

  5. En el canal columna, seleccione depurar. Todas la configuración AlwaysOn relacionados con eventos que no están seleccionados se muestran ahora en el evento biblioteca.

  6. Resalte un evento en la biblioteca de eventos, a continuación, haga clic en el > botón Seleccionar para la sesión.

  7. Cuando termina la sesión, haga clic en Aceptar para cerrarlo. Asegúrese de que se ha iniciado la sesión para que capture los eventos que ha seleccionado.

Esta sección describen algunos de la eventos extendidos de AlwaysOn que usa el AlwaysOn Extended Events para supervisar los grupos de disponibilidad.

availability_replica_state_change

availability_group_lease_expired

availability_replica_automatic_failover_validation

error_reported (varios números de error): para problemas de conexión o de transporte

data_movement_suspend_resume

alwayson_ddl_executed

availability_replica_manager_state

error_reported (1480): cambio de rol de réplica de base de datos

availability_replica_state_change

Se produce cuando ha cambiado el estado de una réplica de disponibilidad. La creación de un grupo de disponibilidad o la combinación de una réplica de disponibilidad puede desencadenar este evento. Es útil para el diagnóstico de errores conmutación automática por error. También se puede utilizar para realizar el seguimiento de los pasos de conmutación por error.

Información sobre eventos

ColumnaDescription
Nombreavailability_replica_state_change
CategoríaAlwaysOn
CanalOperativos

Campos de evento

NombreType_nameDescription
availability_group_id
guidEl identificador del grupo de disponibilidad.
availability_group_nameUNICODE_STRINGEl nombre del grupo de disponibilidad.
availability_replica_id
guidEl identificador de la réplica de disponibilidad.
previous_stateavailability_replica_stateEl rol de la réplica antes del cambio.

 Los valores posibles son:

Primary_Normal

Secondary_Normal

Resolving_Pending_Failover

Resolving_Normal

Primary_Pending

Not_Available
current_stateavailability_replica_stateEl rol de la réplica después del cambio.

 Los valores posibles son:

Primary_Normal

Secondary_Normal

Resolving_Pending_Failover

Resolving_Normal

Primary_Pending

Not_Available

Definición de la sesión de AlwaysOn_health

CREATE EVENT SESSION [AlwaysOn_health] ON SERVER   
ADD EVENT availability_replcia_state_change  
ADD TARGET package0.event_file(SET filename=N'AlwaysOn_health.xel',max_file_size=(5),max_rollover_files=(4),metadatafile=N'AlwaysOn_health.xem')  
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)  
GO  

availability_group_lease_expired

Se produce cuando el grupo de clúster y la disponibilidad tiene un problema de conectividad y la concesión ha expirado. Este evento indica que se interrumpió la conectividad entre el grupo de disponibilidad y el clúster WSFC subyacente. Si se produce el problema de conectividad en la réplica principal, el evento puede producir una conmutación por error automática o hacer que el grupo de disponibilidad esté sin conexión.

Información sobre eventos

ColumnaDescription
Nombreavailability_group_lease_expired
CategoríaAlwaysOn
CanalOperativos

Campos de evento

NombreType_nameDescription
availability_group_id
guidEl identificador del grupo de disponibilidad.
availability_group_nameUNICODE_STRINGEl nombre del grupo de disponibilidad.

Definición de la sesión de AlwaysOn_health

CREATE EVENT SESSION [AlwaysOn_health] ON SERVER   
ADD EVENT availability_group_lease_expired  
ADD TARGET package0.event_file(SET filename=N'AlwaysOn_health.xel',max_file_size=(5),max_rollover_files=(4),metadatafile=N'AlwaysOn_health.xem')  
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)  
GO  

availability_replica_automatic_failover_validation

Se produce cuando la conmutación por error automática valida la disponibilidad de una réplica de disponibilidad como una réplica principal y muestra si la réplica de disponibilidad de destino está lista para ser la nueva réplica principal. Por ejemplo, la validación de conmutación por error devuelve false si no todas las bases de datos se sincronizó o no Unidos. Este evento es el diseño para proporcionar un punto de error durante las conmutaciones por error. Esta información es de interés para el Administrador de base de datos especialmente para la conmutación automática por error porque una conmutación por error automática es una operación desatendida. El Administrador de base de datos puede revisar el evento para ver por qué falló la conmutación automática por error.

Información sobre eventos

NombreDescription
availability_replica_automatic _failover_validation
CategoríaAlwaysOn
CanalAnalíticos

Campos de evento

NombreType_nameDescription
availability_group_id
guidEl identificador del grupo de disponibilidad.
availability_group_nameUNICODE_STRINGEl nombre del grupo de disponibilidad.
availability_replica_id
guidEl identificador de la réplica de disponibilidad.
forced_quorumvalidation_result_typeSi el valor es TRUE, se invalida la conmutación por error automática en esta réplica de disponibilidad.

TRUE

FALSE
joined_and_synchronizedvalidation_result_typeSi el valor es FALSE, se invalida la conmutación por error automática en esta réplica de disponibilidad.

TRUE

FALSE
previous_primary_or_automatic_failover_targetvalidation_result_typeSi el valor es FALSE, se invalida la conmutación por error automática en esta réplica de disponibilidad.

TRUE

FALSE

Definición de la sesión de AlwaysOn_health

CREATE EVENT SESSION [AlwaysOn_health] ON SERVER   
  
ADD EVENT availability_replica_automatic_failover_validation (  
WHERE (  
[forced_quorum]=(TRUE) OR [joined_and_synchronized]=(FALSE) OR [previous_primary_or_automatic_failover_target]=(TRUE)  
)  
)  
  
ADD TARGET package0.event_file(SET filename=N'AlwaysOn_health.xel',max_file_size=(5),max_rollover_files=(4),metadatafile=N'AlwaysOn_health.xem')  
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)  
GO  
  

error_reported (varios números de error): para problemas de conexión o de transporte

Cada evento de filtrado, indica que se ha producido un problema de conectividad en el transporte o el extremo de reflejo de la base de datos depende de ese grupo de disponibilidad.

ColumnaDescription
Nombreerror_reported

números que desea filtrar: 35201, 35202, 35206, 35204, 35207, 9642, 9666, 9691, 9692, 9693, 28034, 28036, 28080, 28091, 33309
Categoríaerrores
CanalAdministración

Números de error para filtrar

Número de errorDescription
35201Se ha producido un tiempo de espera de conexión al intentar establecer una conexión a la réplica de disponibilidad '%ls'.
35202Una conexión para el grupo de disponibilidad '%ls' de la réplica de disponibilidad '%ls' con identificador [%ls] para '%ls' con identificador [%ls] se estableció correctamente. Esto es solo un mensaje informativo. No se requiere ninguna acción del usuario.
35206Se ha producido un tiempo de espera de conexión en una conexión establecida previamente con la réplica de disponibilidad '%ls'.
35204Conexión entre la instancia '%ls' y '%ls' se deshabilitó debido al cierre del punto de conexión.
Tiempo de espera + conectado
35207Intento de conexión en disponibilidad Id. de grupo '%ls' de Id. de réplica '%ls' para el Id. de réplica '%ls' no se pudo debido a la gravedad %d estado %d de error %d. Gravedad %d estado %d. (Esto puede no tener un buen uso DBA. Compruebe y quite más adelante en este caso)
9642Se produjo un error en un extremo del conexión del transporte de Service Broker/creación de reflejo Error: %i estado: %i. (Cerca de rol de punto de conexión: dirección de extremo lejano de % S_MSG: ' %. * hs') Error: estado %i: %i. (Cerca de rol de punto de conexión: dirección de extremo lejano de % S_MSG: ' %. *hs')
9666El extremo % S_MSG está en estado detenido o deshabilitado.
9691El extremo % S_MSG ha dejado de escuchar para las conexiones.
9692El extremo % S_MSG no puede escuchar en el puerto %d porque está en uso por otro proceso.
9693El extremo % S_MSG no puede escuchar las conexiones debido al siguiente error: ' %. * ls'.
28034Error del protocolo de enlace de la conexión. El inicio de sesión '%.*ls' no tiene permiso CONNECT en el extremo. Estado %d.
28036Error del protocolo de enlace de la conexión. No se encontró el certificado utilizado por este extremo: %S_MSG. Utilice DBCC CHECKDB en la base de datos maestra para comprobar la integridad de los metadatos de los extremos. Estado %d.
28080Error del protocolo de enlace de la conexión. El extremo %S_MSG no está configurado. Estado %d.
28091No se admite a partir de punto de conexión para % S_MSG sin autenticación.
33309No se puede iniciar el punto de conexión de clúster porque la configuración de punto de conexión predeterminada % S_MSG no se han cargado todavía.

Definición de la sesión de AlwaysOn_health

CREATE EVENT SESSION [AlwaysOn_health] ON SERVER   
ADD EVENT sqlserver.error_reported(  
    WHERE   
(  
--Connectivity Error Messages  
[error_number]=(35201)   
OR [error_number]=(35202)   
OR [error_number]=(35204)   
OR [error_number]=(35206)   
OR [error_number]=(35207)   
OR [error_number]=(9642)   
--OR [error_number]=(9666)   
OR [error_number]=(9691)   
OR [error_number]=(9692)   
OR [error_number]=(9693)   
OR [error_number]=(28034)   
OR [error_number]=(28036)   
OR [error_number]=(28080)   
OR [error_number]=(28091)   
OR [error_number]=(33309)  
)  
)  
  
ADD TARGET package0.event_file(SET filename=N'AlwaysOn_health.xel',max_file_size=(5),max_rollover_files=(4),metadatafile=N'AlwaysOn_health.xem')  
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)  
GO  

data_movement_suspend_resume

Se produce cuando se suspende o reanudo el movimiento de la base de datos de una réplica de base de datos.

Información sobre eventos

ColumnaDescription
Nombredata_movement_suspend_resume
CategoríaAlwaysOn
CanalOperativos

Campos de evento

NombreType_nameDescription
availability_group_id
guidEl identificador del grupo de disponibilidad.
availability_group_nameUNICODE_STRINGEl nombre del grupo de disponibilidad, si está disponible.
availability_replica_id
guidEl identificador de la réplica de disponibilidad.
database_replica_id
guidEl identificador de la base de datos de disponibilidad.
database_replica_nameUNICODE_STRINGEl nombre de la base de datos de disponibilidad.
database_iduint32El identificador de la base de datos de disponibilidad.
suspend_statussuspend_status_typeLos valores de estado de suspensión.

SUSPEND_NULL

REANUDAR

SUSPENDED

SUSPENDED_INVALID
suspend_sourcesuspend_source_typeEl origen de la acción de suspender o reanudar.
suspend_reasonUNICODE_STRINGEl motivo de suspensión capturado en el Administrador de réplica de base de datos.

Definición de la sesión de AlwaysOn_health

CREATE EVENT SESSION [AlwaysOn_health] ON SERVER   
  
ADD EVENT data_movement_suspend_resume (  
WHERE (  
[suspend_status]=(SUSPENDED)or [suspend_status]=(SUSPENDED_INVALID) or   
[suspend_status]=(SUSPEND_NULL)  
)  
)  
  
ADD TARGET package0.event_file(SET filename=N'AlwaysOn_health.xel',max_file_size=(5),max_rollover_files=(4),metadatafile=N'AlwaysOn_health.xem')  
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)  
GO  

alwayson_ddl_executed

Se produce cuando se ejecuta una instrucción DDL (lenguaje) de definición de datos de AlwaysOn, incluidos CREATE, ALTER o DROP. El propósito principal del evento es para indicar un problema con una acción del usuario en una réplica de disponibilidad, o para indicar el punto inicial de una acción operativa, que va seguido de un problema de tiempo de ejecución como un manual de conmutación por error, una conmutación por error forzada, suspende el movimiento de datos, reanuda el movimiento de datos.

Información sobre eventos

ColumnaDescription
Nombrealwayson_ddl_execution
CategoríaAlwaysOn
CanalAnalíticos

Campos de evento

NombreType_nameDescription
availability_group_idGuidEl identificador del grupo de disponibilidad.
availability_group_nameUNICODE_STRINGEl nombre del grupo de disponibilidad.
ddl_actionalwayson_ddl_actionIndica el tipo de acción de DDL: crear, modificar o quitar.
ddl_phaseddl_opcodeIndica la fase de la operación DDL: BEGIN, COMMIT o ROLLBACK.
.UNICODE_STRINGEl texto de la instrucción que se ejecutó.

Definición de la sesión de AlwaysOn_health

CREATE EVENT SESSION [AlwaysOn_health] ON SERVER   
  
ADD EVENT alwayson_ddl_executed  
  
ADD TARGET package0.event_file(SET filename=N'AlwaysOn_health.xel',max_file_size=(5),max_rollover_files=(4),metadatafile=N'AlwaysOn_health.xem')  
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)  
GO  

availability_replica_manager_state

Se produce cuando se cambia el estado del Administrador de réplica de disponibilidad. Este evento indica que el latido de administrador de réplica de disponibilidad. Cuando el Administrador de réplica de disponibilidad no está en estado correcto, todas las réplicas de disponibilidad de la instancia de SQL Server será hacia abajo.

Información sobre eventos

ColumnaDescription
Nombreavailability_replica_manager_state_change
CategoríaAlwaysOn
CanalOperativos

Campos de evento

NombreType_nameDescription
current_statemanager_stateEl estado actual del Administrador de réplica de disponibilidad.

En línea

Sin conexión

WaitingForClusterCommunication

Definición de la sesión de AlwaysOn_health

CREATE EVENT SESSION [AlwaysOn_health] ON SERVER   
  
ADD EVENT availability_replica_manager_state (  
WHERE ([current_state]=(OFFLINE))  
)  
  
ADD TARGET package0.event_file(SET filename=N'AlwaysOn_health.xel',max_file_size=(5),max_rollover_files=(4),metadatafile=N'AlwaysOn_health.xem')  
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)  
GO  

error_reported (1480): cambio de rol de réplica de base de datos

Este evento error_reported filtrado se produce de forma asincrónica después de cambiar un rol de réplica de disponibilidad. Indica qué disponibilidad se produce un error en la base de datos cambiar su rol esperado durante el proceso de conmutación por error.

Información sobre eventos

ColumnaDescription
Nombreerror_reported

Número de error 1480: La base de datos REPLICATION_TYPE_MSG "DATABASE_NAME" cambia del rol "OLD_ROLE" a "NEW_ROLE" debido a REASON_MSG
Categoríaerrores
CanalAdministración

Definición de la sesión de AlwaysOn_health

CREATE EVENT SESSION [AlwaysOn_health] ON SERVER   
ADD EVENT sqlserver.error_reported(  
    WHERE   
(  
--database replica role change message  
OR [error_number] = (1480)  
  
--database replica runtime error messages  
OR [error_number]=(823)   
OR [error_number]=(824)   
OR [error_number]=(829)  
)  
)  
  
ADD TARGET package0.event_file(SET filename=N'AlwaysOn_health.xel',max_file_size=(5),max_rollover_files=(4),metadatafile=N'AlwaysOn_health.xem')  
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)  
GO  

Ver datos de sesión de eventos
AlwaysOn extendidos referencia de eventos

Mostrar: