一部のSQL Serverインスタンスでは(まだパターンが見つかりませんでした)、このセッションを手動で開始しようとすると、次のエラーが発生します。
ターゲット「5B2DA06D-898A-43C8-9309-39BBBE93EBBD.package0.event_file」の場合、渡されたパラメーター「filename」は無効です。インデックス0のターゲットパラメータが無効です(Microsoft SQL Server、エラー:25641)
SQL Serverログを調べると、インスタンスが起動するたびに(つまり、パッチを適用するためにWindowsを再起動した後)、次のようになります。
エラー:25641、重大度:16、状態:0。ターゲット "5B2DA06D-898A-43C8-9309-39BBBE93EBBD.package0.event_file"の場合、渡されたパラメーター "filename"は無効です。インデックス0のターゲットパラメータが無効です
エラー:25710、重大度:16、状態:1。イベントセッション「system_health」を開始できませんでした。現在のセッションの以前のエラーを参照して原因を特定し、関連する問題を修正してください。
エラー:25709、重大度:16、状態:1。1つ以上のイベントセッションを開始できませんでした。現在のセッションの以前のエラーを参照して原因を特定し、関連する問題を修正してください。
誰かがこの問題を観察しましたか?セッションの定義はパスを示すのではなく、単に.xelファイルの名前を示しているため、権限が原因であると思います。つまり、SQL Serverのログフォルダーに直接書き込み、SQL Serverサービスアカウントにはフルアクセスが許可されます。
AlwaysOn_healthセッションでも同じ問題が発生します。
よろしくお願いします!
まず、問題のあるフォルダーを特定します。 SSMSで、結果をグリッドに設定して、次のクエリを実行します。
SELECT target_data = CONVERT(xml, target_data)
FROM sys.dm_xe_session_targets
WHERE target_package_guid = '5B2DA06D-898A-43C8-9309-39BBBE93EBBD'
AND target_name = N'event_file';
1つの行が返され、グリッドの結果からその行をクリックできるはずです。これにより、次のようなXMLドキュメントの新しいタブが開きます。
<EventFileTarget truncated="0">
<Buffers logged="0" dropped="0" />
<File name="C:\...path_to_xe_files...\system_health_0_131278486394000000.xel" />
</EventFileTarget>
ファイル名にパスコンポーネントが含まれていない場合、システムレジストリを調べて、拡張イベントのデフォルトファイルの場所を確認できます。このコードはそれを行うべきです:
EXEC master.sys.xp_instance_regread
@rootkey = N'HKEY_LOCAL_MACHINE'
, @key = N'SOFTWARE\Microsoft\MSSQLServer\CPE'
, @value_name = N'ErrorDumpDir';
拡張イベントファイルが保存されているパスを取得したら、次のようにしてください。
BACKUP DATABASE model TO DISK = 'C:\...path_to_xe_files...\model_trash.bak'
WITH INIT;
これは、問題が何であるかをよりよく理解するはずです-権限である可能性、フォルダーが存在しない可能性(インスタンスの構成が移動された可能性など)、さまざまな可能性があります。しかし、これは正しい方向を示し、より適切なエラーメッセージを表示するはずです。