Tidak Dapat Menonton Data Langsung pada Sesi Acara yang Diperpanjang

9

Saya menjalankan SQL Server 2014 Developer Edition di PC saya. Saya mencoba melihat data di sesi system_health. Dalam SSMS, saya telah terhubung ke database, memperluas server / Manajemen / Peristiwa / Sesi Diperpanjang. Saya melihat AlwaysON_health (berhenti) dan system_health (berjalan).

Ketika saya mengklik kanan pada sesi system_health, saya mendapatkan kesalahan berikut:

Penyimpanan gagal diinisialisasi menggunakan parameter yang disediakan. (Microsoft.SqlServer.XEventStorage) Sesi Acara Diperpanjang yang bernama "system_health" tidak dapat ditemukan. Pastikan sesi ada dan dimulai. (Microsoft SQL Server, Kesalahan: 25728)

Saya memperluas system_health dan melihat target package0.event_file dan package0.ring_buffer. Jika saya mengklik kanan salah satu target dan memilih "Lihat Data Target", saya mendapatkan kesalahan ini:

Penyimpanan gagal diinisialisasi menggunakan parameter yang disediakan. (Microsoft.SqlServer.XEventStorage) Tidak dapat melihat fungsi 'fn_MSXe_read_event_stream', karena tidak ada atau Anda tidak memiliki izin. (Microsoft SQL Server, Kesalahan: 15151)

Fungsi itu ada. Saya bisa menjalankannya:

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

Ketika saya melakukannya, saya mendapatkan kesalahan ini:

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.

Saya tahu sesi system_health ada di sana. Saya melihat di dalam daftar sesi:

select * from sys.dm_xe_sessions

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

Saya sudah mencoba ini dengan sesi acara khusus saya sendiri. Saya juga tidak bisa menonton data langsung tentang mereka.

Saya dapat meminta data target buffer ring system_health dari sys.dm_xe_session_targets.

Mengapa saya tidak bisa menonton data langsung untuk sesi acara yang diperluas?

(Perhatikan bahwa ada item umpan balik Microsoft untuk masalah ini.)

Paul Williams
sumber
1
Bisakah Anda menguji ini pada contoh lain (menggunakan salinan SSMS yang sama), atau pada contoh ini dari salinan SSMS yang berbeda (misalnya dari mesin lain)? Apakah Anda mencoba dengan otentikasi dan sa windows? Kedengarannya seperti masalah dengan instance, tetapi selalu bagus untuk mengesampingkan kombinasi.
Aaron Bertrand
Saya menemukan jawabannya. Database default login saya disetel ke yang biasanya saya gunakan master. Mengatur database default saya kembali untuk mastermenyelesaikan kesalahan.
Paul Williams
Tampaknya aneh, jika Anda mengklik kanan sesi di Object Explorer, SQL Server harus tahu di mana menemukannya, terlepas dari database default Anda.
Aaron Bertrand
@ AaronBertrand Ya, saya setuju! SSMS harus tahu cara menghubungkan ke sesi acara terlepas dari database default saya. Saya menautkan item Microsoft Connect dalam pertanyaan saya, siapa pun yang ingin memberikan suara atau mengomentarinya.
Paul Williams
Login apa yang kamu gunakan? Windows auth atau SQL auth? Apa peran mereka?
Aaron Bertrand

Jawaban:

15

Saya menemukan masalahnya. Login saya memiliki database default yang berbeda dari masterdatabase. Ketika saya mengubah database default saya menjadi master, kesalahan hilang, dan saya bisa Menonton Data Langsung pada sesi acara yang diperpanjang.

Untuk mengubah database default, di SSMS, saya memperluas server, Keamanan, Login. Saya mengklik kanan kredensial pengguna saya. Pada halaman Properti Login untuk pengguna saya, saya mengubah "Database default" menjadi master. Kesalahan hilang ketika saya menutup dan membuka kembali koneksi di SSMS Object Explorer.

EDIT 2018-12-11

Pada tautan umpan balik untuk masalah ini , Karl Fasick memposting solusi yang mungkin:

Object Explorer tidak terhubung ke master database ... Untuk memperbaikinya - lepaskan Object Explorer - Reconnect, tetapi buka Connection Properties dan secara eksplisit memilih master.

Paul Williams
sumber
1
Ada item Connect untuk bug EXACT ini. MS menutupnya sebagai 'tidak bisa mereproduksi': connect.microsoft.com/SQLServer/feedback/details/893993/... Harap beri suara jika Anda tiba di sini dengan cara yang sama seperti yang saya lakukan (googling tentang kesalahan - dalam kasus saya melawan 2016) contoh).
Michael K Campbell