Impossible de regarder les données en direct sur une session d'événements étendue


9

J'exécute SQL Server 2014 Developer Edition sur mon PC. J'essaie d'afficher les données dans la session system_health. Dans SSMS, je me suis connecté à la base de données, développé le serveur / Gestion / Événements étendus / Sessions. Je vois AlwaysON_health (arrêté) et system_health (en cours d'exécution).

Lorsque je clique avec le bouton droit sur la session system_health, j'obtiens l'erreur suivante:

Le stockage n'a pas pu s'initialiser à l'aide des paramètres fournis. (Microsoft.SqlServer.XEventStorage) La session d'événements étendus nommée "system_health" est introuvable. Assurez-vous que la session existe et est démarrée. (Microsoft SQL Server, erreur: 25728)

J'étends system_health et je vois les cibles package0.event_file et package0.ring_buffer. Si je clique avec le bouton droit sur l'une des cibles et choisis "Afficher les données cibles", j'obtiens cette erreur:

Le stockage n'a pas pu s'initialiser à l'aide des paramètres fournis. (Microsoft.SqlServer.XEventStorage) Impossible d'afficher la fonction 'fn_MSXe_read_event_stream', car elle n'existe pas ou vous ne disposez pas de l'autorisation. (Microsoft SQL Server, erreur: 15151)

La fonction existe. Je peux l'exécuter:

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

Quand je le fais, j'obtiens cette erreur:

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.

Je sais que la session system_health est là. Je vois dans la liste des sessions:

select * from sys.dm_xe_sessions

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

J'ai essayé cela avec mes propres sessions d'événements personnalisées. Je ne peux pas non plus regarder les données en direct sur eux.

Je peux interroger les données cibles du tampon en anneau system_health sys.dm_xe_session_targets.

Pourquoi ne puis-je pas regarder les données en direct pour une session d'événements étendue?

(Notez qu'il existe un élément de rétroaction Microsoft pour ce problème.)


1
Pouvez-vous tester cela sur une autre instance (en utilisant la même copie de SSMS), ou sur cette instance à partir d'une copie différente de SSMS (par exemple à partir d'une autre machine)? Avez-vous essayé avec l'authentification Windows et sa? Cela ressemble à un problème avec l'instance, mais il est toujours bon d'exclure les combinaisons.
Aaron Bertrand

J'ai trouvé la réponse. La base de données par défaut de mon identifiant a été définie sur celle que j'utilise habituellement à la place master. Redéfinir ma base de données par défaut pour masterrésoudre l'erreur.
Paul Williams

Cela semble étrange, si vous cliquez avec le bouton droit sur la session dans l'Explorateur d'objets, SQL Server doit savoir où la trouver, quelle que soit votre base de données par défaut.
Aaron Bertrand

@AaronBertrand Oui, je suis d'accord! SSMS doit savoir comment se connecter à la session d'événement indépendamment de ma base de données par défaut. J'ai lié un élément Microsoft Connect dans ma question, si quelqu'un veut voter ou commenter.
Paul Williams

Quelle connexion utilisez-vous? Authentification Windows ou authentification SQL? Dans quel (s) rôle (s) jouent-ils?
Aaron Bertrand

Réponses:


15

J'ai trouvé le problème. Ma connexion avait une base de données par défaut différente de la base de masterdonnées. Lorsque j'ai changé ma base de données par défaut en master, l'erreur a disparu et j'ai pu regarder les données en direct sur les sessions d'événements étendues.

Pour changer la base de données par défaut, dans SSMS, j'ai développé le serveur, Security, Logins. J'ai fait un clic droit sur mes informations d'identification d'utilisateur. Sur la page des propriétés de connexion de mon utilisateur, j'ai changé "Base de données par défaut" en master. L'erreur a disparu lorsque j'ai fermé et rouvert la connexion dans l'explorateur d'objets SSMS.

EDIT 2018-12-11

Sur le lien de rétroaction pour ce problème , Karl Fasick a publié une solution probable:

L'explorateur d'objets n'est pas connecté à la base de données principale ... Pour corriger - déconnecter l'Explorateur d'objets - Reconnecter, mais allez dans Propriétés de connexion et choisissez explicitement maître.


1
Il existe un élément Connect pour ce bug EXACT. MS l'a fermé comme 'ne pouvait pas reproduire': connect.microsoft.com/SQLServer/feedback/details/893993/… S'il vous plaît votez cela si vous êtes arrivé de la même manière que moi (googler sur l'erreur - dans mon cas contre un 2016 exemple).
Michael K Campbell

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.