Nic*_*uet 2 sql-server extended-events sql-server-2014
在某些 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”,传递的参数“文件名”无效。索引 0 处的目标参数无效
错误:25710,严重性:16,状态:1。事件会话“system_health”无法启动。参考当前会话中以前的错误来确定原因,并纠正任何相关的问题。
错误:25709,严重性:16,状态: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';
Run Code Online (Sandbox Code Playgroud)
应该返回一行,您应该能够从网格结果中单击它。这将打开一个带有 XML 文档的新选项卡,它应该如下所示:
<EventFileTarget truncated="0">
<Buffers logged="0" dropped="0" />
<File name="C:\...path_to_xe_files...\system_health_0_131278486394000000.xel" />
</EventFileTarget>
Run Code Online (Sandbox Code Playgroud)
如果文件名不包含路径组件,则可以通过查看系统注册表来确定扩展事件默认文件位置。这段代码应该这样做:
EXEC master.sys.xp_instance_regread
@rootkey = N'HKEY_LOCAL_MACHINE'
, @key = N'SOFTWARE\Microsoft\MSSQLServer\CPE'
, @value_name = N'ErrorDumpDir';
Run Code Online (Sandbox Code Playgroud)
获得保存扩展事件文件的路径后,请尝试执行以下操作:
BACKUP DATABASE model TO DISK = 'C:\...path_to_xe_files...\model_trash.bak'
WITH INIT;
Run Code Online (Sandbox Code Playgroud)
这应该让您更好地了解问题所在 - 可能是权限,可能是文件夹不存在(可能实例的配置已被移动),可能是一大堆事情。但这应该为您指明正确的方向,并为您提供更好的错误消息。
| 归档时间: |
|
| 查看次数: |
2876 次 |
| 最近记录: |