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フィードバック項目 があることに注意してください。)
問題が見つかりました。ログインのデフォルトデータベースは、master
データベースとは異なりました。デフォルトのデータベースをmaster
に変更すると、エラーがなくなり、拡張イベントセッションでライブデータを見ることができました。
デフォルトのデータベースを変更するために、SSMSでサーバー、セキュリティ、ログインを拡張しました。ユーザー資格情報を右クリックしました。ユーザーの[ログインプロパティ]ページで、[既定のデータベース]をmaster
に変更しました。 SSMSオブジェクトエクスプローラーで接続を閉じて再度開くと、エラーは発生しなくなりました。
EDIT 2018-12-11
この問題のフィードバックリンク で、Karl Fasickが考えられる解決策を投稿しました。
オブジェクトエクスプローラーがマスターデータベースに接続されていません...修正するには-オブジェクトエクスプローラーを切断します-再接続しますが、接続プロパティに移動して明示的にマスターを選択します。