Nie można oglądać danych na żywo podczas sesji zdarzeń rozszerzonych

9

Korzystam z programu SQL Server 2014 Developer Edition na moim komputerze. Próbuję wyświetlić dane w sesji system_health. W SSMS połączyłem się z bazą danych, rozszerzyłem serwer / Zarządzanie / Rozszerzone zdarzenia / Sesje. Widzę AlwaysON_health (zatrzymany) i system_health (uruchomiony).

Po kliknięciu sesji system_health prawym przyciskiem myszy pojawia się następujący błąd:

Nie można zainicjować magazynu przy użyciu podanych parametrów. (Microsoft.SqlServer.XEventStorage) Nie można znaleźć sesji zdarzeń rozszerzonych o nazwie „zdrowie_systemowe”. Upewnij się, że sesja istnieje i została uruchomiona. (Microsoft SQL Server, błąd: 25728)

Rozwijam system_health i widzę cele pakiet0.event_file i package0.ring_buffer. Jeśli kliknę prawym przyciskiem myszy dowolny cel i wybiorę „Wyświetl dane docelowe”, pojawia się ten błąd:

Nie można zainicjować magazynu przy użyciu podanych parametrów. (Microsoft.SqlServer.XEventStorage) Nie można wyświetlić funkcji „fn_MSXe_read_event_stream”, ponieważ nie istnieje lub nie masz uprawnień. (Microsoft SQL Server, błąd: 15151)

Ta funkcja istnieje. Mogę to uruchomić:

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

Kiedy to robię, pojawia się ten błąd:

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.

Wiem, że istnieje sesja system_health. Widzę na liście sesji:

select * from sys.dm_xe_sessions

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

Próbowałem tego z własnymi niestandardowymi sesjami zdarzeń. Nie mogę też oglądać danych na ich temat.

Mogę wysłać zapytanie do danych docelowych bufora pierścieniowego system_health sys.dm_xe_session_targets.

Dlaczego nie mogę oglądać danych na żywo dla żadnej sesji wydarzeń rozszerzonych?

(Zwróć uwagę, że w tym problemie znajduje się opinia firmy Microsoft ).

Paul Williams
źródło
1
Czy możesz to przetestować na innej instancji (przy użyciu tej samej kopii SSMS) lub na tej instancji z innej kopii SSMS (np. Z innej maszyny)? Czy próbowałeś zarówno z uwierzytelnianiem systemu Windows, jak i sa? Brzmi jak problem z instancją, ale zawsze dobrze jest wykluczyć kombinacje.
Aaron Bertrand
Znalazłem odpowiedź Domyślna baza danych mojego logowania została ustawiona na tę, której zwykle używam zamiast master. Przywracanie domyślnej bazy danych w celu masterrozwiązania błędu.
Paul Williams,
Wydaje się to dziwne, jeśli klikniesz sesję prawym przyciskiem myszy w Eksploratorze obiektów, SQL Server powinien wiedzieć, gdzie ją znaleźć, niezależnie od domyślnej bazy danych.
Aaron Bertrand
@AaronBertrand Tak, zgadzam się! SSMS powinien wiedzieć, jak połączyć się z sesją zdarzeń niezależnie od mojej domyślnej bazy danych. W swoim pytaniu podłączyłem element Microsoft Connect, jeśli ktoś chce głosować lub komentować go.
Paul Williams,
Jakiego loginu używasz? Autoryzacja Windows czy autoryzacja SQL? W jakiej są roli?
Aaron Bertrand

Odpowiedzi:

15

Znalazłem problem. Mój login miał inną domyślną bazę danych niż masterbaza danych. Gdy zmieniłem domyślną bazę danych na master, błąd zniknął i mogłem oglądać dane na żywo podczas rozszerzonych sesji zdarzeń.

Aby zmienić domyślną bazę danych, w SSMS rozwinąłem serwer, Zabezpieczenia, Loginy. Kliknąłem prawym przyciskiem myszy poświadczenia użytkownika. Na stronie Właściwości logowania dla mojego użytkownika zmieniłem „Domyślna baza danych” na master. Błąd zniknął, gdy zamknąłem i ponownie otworzyłem połączenie w SSMS Object Explorer.

EDYCJA 2018-12-11

W linku zwrotnym dla tego problemu Karl Fasick opublikował prawdopodobne rozwiązanie:

Eksplorator obiektów nie jest podłączony do głównej bazy danych ... Aby naprawić - odłącz Eksplorator obiektów - Połącz ponownie, ale przejdź do Właściwości połączenia i jawnie wybierz master.

Paul Williams
źródło
1
Dla tego DOKŁADNEGO błędu istnieje element Połącz. MS zamknęło go, ponieważ „nie można go odtworzyć”: connect.microsoft.com/SQLServer/feedback/details/893993/... Proszę głosować, jeśli dostaliście się tutaj w ten sam sposób, co ja (przeglądam błąd - w moim przypadku przeciwko 2016 instancja).
Michael K Campbell