And*_*mar 9 sql-server sql-server-2008-r2 trace
当我查询默认跟踪的配置时,它显示已启用:
exec sp_configure 'default trace enabled';
-->
name minimum maximum config_value run_value
default trace enabled 0 1 1 1
Run Code Online (Sandbox Code Playgroud)
但是当我查询sys.traces路径时,它返回一个空行集:
select * from sys.traces;
Run Code Online (Sandbox Code Playgroud)
什么可以解释没有启用的跟踪?
Aar*_*and 13
我会说你的太空事件和丢失的踪迹之间有很强的相关性。请注意,该sp_configure选项仅告诉您启用了默认跟踪,但这并不意味着它正在运行或甚至存在。请注意,这sys.traces不是表格而是视图:
create view sys.traces as select * from OpenRowset(TABLE SYSTRACES)
Run Code Online (Sandbox Code Playgroud)
什么是TABLE SYSTRACES行集提供?它是如何工作的?它的结果是如何过滤的?你的猜测和我的一样好。痕迹可能仍然存在,但处于一种防止它被此视图暴露的状态。并且它可能处于即使重新启动服务后仍然无法启动的状态。
首先,确保默认跟踪的位置有足够的空间,SQL Server 服务帐户仍然具有足够的写入权限,您不受任何空间配额的限制等。您可以从注册表中获取位置:
HKEY_LOCAL_MACHINE\Software\Microsoft\...YourInstance...\Setup\SQLDataRoot\
Run Code Online (Sandbox Code Playgroud)
一旦您确定 SQL Server 应该能够写入此文件夹,您就可以禁用并重新启用默认跟踪:
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
EXEC sp_configure 'default trace enabled', 0;
GO
RECONFIGURE WITH OVERRIDE;
GO
EXEC sp_configure 'default trace enabled', 1;
GO
RECONFIGURE WITH OVERRIDE;
Run Code Online (Sandbox Code Playgroud)
此时您不需要重新启动 SQL Server 服务,但如果您在sys.traces. 请注意,trace_id您得到的不能保证保持在 1。
| 归档时间: |
|
| 查看次数: |
4298 次 |
| 最近记录: |