No se pueden ver datos en vivo en una sesión de eventos extendidos

9

Estoy ejecutando SQL Server 2014 Developer Edition en mi PC. Estoy tratando de ver los datos en la sesión system_health. En SSMS, me conecté a la base de datos, expandí el servidor / Administración / Eventos extendidos / Sesiones. Veo AlwaysON_health (detenido) y system_health (en ejecución).

Cuando hago clic derecho en la sesión system_health, aparece el siguiente error:

El almacenamiento no pudo inicializarse utilizando los parámetros proporcionados. (Microsoft.SqlServer.XEventStorage) No se pudo encontrar la sesión de eventos extendidos denominada "system_health". Asegúrese de que la sesión existe y se inicia. (Microsoft SQL Server, error: 25728)

Expando system_health y veo los destinos package0.event_file y package0.ring_buffer. Si hago clic derecho en cualquiera de los objetivos y elijo "Ver datos de destino", aparece este error:

El almacenamiento no pudo inicializarse utilizando los parámetros proporcionados. (Microsoft.SqlServer.XEventStorage) No se puede ver la función 'fn_MSXe_read_event_stream', porque no existe o no tiene permiso. (Microsoft SQL Server, error: 15151)

La función existe. Puedo ejecutarlo:

select * from fn_MSXe_read_event_stream('system_health', 0);

Cuando lo hago, me sale este error:

Msg 25728, Level 16, State 10, Line 6
The Extended Events session named "system_health" could not be found. Make  sure the session exists and is started.

Sé que la sesión system_health está ahí. Veo en la lista de sesiones:

select * from sys.dm_xe_sessions

address name       name
------------------ ------------- 
0x00000001FF6510C1 system_health

He intentado esto con mis propias sesiones de eventos personalizados. Tampoco puedo ver los datos en vivo sobre ellos.

Puedo consultar los datos de destino del búfer de anillo system_health sys.dm_xe_session_targets.

¿Por qué no puedo ver datos en vivo para una sesión de eventos extendidos?

(Tenga en cuenta que hay un elemento de comentarios de Microsoft para este problema).

Paul Williams
fuente
1
¿Puede probar esto en otra instancia (usando la misma copia de SSMS), o en esta instancia desde una copia diferente de SSMS (por ejemplo, desde otra máquina)? ¿Intentó con la autenticación de Windows y sa? Suena como un problema con la instancia, pero siempre es bueno descartar combinaciones.
Aaron Bertrand
Encontré la respuesta. La base de datos predeterminada de mi inicio de sesión se configuró en la que generalmente uso en lugar de master. Configurar mi base de datos predeterminada para masterresolver el error.
Paul Williams
Eso parece extraño, si hace clic derecho en la sesión en el Explorador de objetos, SQL Server debería saber dónde encontrarlo, independientemente de su base de datos predeterminada.
Aaron Bertrand
@AaronBertrand Sí, estoy de acuerdo! SSMS debería saber cómo conectarse a la sesión del evento independientemente de mi base de datos predeterminada. En mi pregunta, vinculé un elemento de Microsoft Connect en caso de que alguien quiera votarlo o comentarlo.
Paul Williams
¿Qué inicio de sesión estás usando? ¿Autenticación de Windows o autenticación de SQL? ¿En qué roles están?
Aaron Bertrand

Respuestas:

15

Encontré el problema. Mi inicio de sesión tenía una base de datos predeterminada diferente a la base de masterdatos. Cuando cambié mi base de datos predeterminada a master, el error desapareció y pude ver datos en vivo en las sesiones de eventos extendidas.

Para cambiar la base de datos predeterminada, en SSMS, expandí el servidor, Seguridad, Inicios de sesión. Hice clic derecho en mis credenciales de usuario. En la página Propiedades de inicio de sesión para mi usuario, cambié "Base de datos predeterminada" a master. El error desapareció cuando cerré y volví a abrir la conexión en el Explorador de objetos de SSMS.

EDITAR 2018-12-11

En el enlace de comentarios para este problema , Karl Fasick publicó una solución probable:

Object Explorer no está conectado a la base de datos maestra ... Para solucionarlo, desconecte Object Explorer - Reconecte, pero vaya a Propiedades de conexión y elija explícitamente master.

Paul Williams
fuente
1
Hay un elemento Connect para este error EXACTO. MS lo cerró como "no se pudo reproducir": connect.microsoft.com/SQLServer/feedback/details/893993/… Por favor, vote si llegó aquí de la misma manera que yo (buscando en Google el error, en mi caso contra un 2016 ejemplo).
Michael K Campbell