web-dev-qa-db-ja.com

拡張イベントセッションでライブデータを監視できない

PCでSQL Server 2014 Developer Editionを実行しています。 system_healthセッションでデータを表示しようとしています。 SSMSでは、データベースに接続し、サーバー/管理/拡張イベント/セッションを拡張しました。 AlwaysON_health(停止)とsystem_health(実行中)が表示されます。

System_healthセッションを右クリックすると、次のエラーが発生します。

ストレージは、提供されたパラメーターを使用して初期化できませんでした。 (Microsoft.SqlServer.XEventStorage)「system_health」という名前の拡張イベントセッションが見つかりませんでした。セッションが存在し、開始されていることを確認してください。 (Microsoft SQL Server、エラー:25728)

System_healthを展開して、ターゲットのpackage0.event_fileおよびpackage0.ring_bufferを確認します。いずれかのターゲットを右クリックして[ターゲットデータの表示]を選択すると、次のエラーが発生します。

ストレージは、提供されたパラメーターを使用して初期化できませんでした。 (Microsoft.SqlServer.XEventStorage)関数 'fn_MSXe_read_event_stream'が存在しないか、権限がないため、表示できません。 (Microsoft SQL Server、エラー:15151)

関数は存在します。私はそれを実行できます:

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

私がそうするとき、私はこのエラーを受け取ります:

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.

System_healthセッションがあることを知っています。私はセッションのリストに表示されます:

select * from sys.dm_xe_sessions

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

私は自分のカスタムイベントセッションでこれを試しました。ライブデータも見られない。

sys.dm_xe_session_targetsからsystem_healthリングバッファーターゲットデータをクエリできます。

拡張イベントセッションのライブデータを見ることができないのはなぜですか?

(この問題には Microsoftフィードバック項目 があることに注意してください。)

9
Paul Williams

問題が見つかりました。ログインのデフォルトデータベースは、masterデータベースとは異なりました。デフォルトのデータベースをmasterに変更すると、エラーがなくなり、拡張イベントセッションでライブデータを見ることができました。

デフォルトのデータベースを変更するために、SSMSでサーバー、セキュリティ、ログインを拡張しました。ユーザー資格情報を右クリックしました。ユーザーの[ログインプロパティ]ページで、[既定のデータベース]をmasterに変更しました。 SSMSオブジェクトエクスプローラーで接続を閉じて再度開くと、エラーは発生しなくなりました。

EDIT 2018-12-11

この問題のフィードバックリンク で、Karl Fasickが考えられる解決策を投稿しました。

オブジェクトエクスプローラーがマスターデータベースに接続されていません...修正するには-オブジェクトエクスプローラーを切断します-再接続しますが、接続プロパティに移動して明示的にマスターを選択します。

15
Paul Williams